Alexander
|
Дата: 30.08.2012
Может стоит ошибки указать с каким-то логом? А то догадаться что за странные ошибки повылетали у вас не удалось.
|
|
Спасибо:
|
|
|
|
|
FiNick
|
Дата: 30.08.2012
SampleGUI, файл MainWindow.xaml.cs в строке 159 (+-1): Trader.ProcessDataError += error => this.GuiAsync(() => MessageBox.Show(this, error.ToString(), "Ошибка обработки данных")); на этой строке вылетает ошибка "An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll" А иногда тупо падает svchost. Предлагаю в примере в код: Код
if (IsOrderLog.IsChecked == true)
{
Trader.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog);
Trader.CreateDepthFromOrdersLog = true;
}
добавить строку revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); и посмотреть что получится.
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 30.08.2012
FiNick добавить строку revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); и посмотреть что получится. У меня работает.
|
|
Спасибо:
|
|
|
|
|
FiNick
|
Дата: 30.08.2012
Mikhail Sukhov FiNick добавить строку revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); и посмотреть что получится. У меня работает. Очень странно. Тогда залей этот вариант SampleGUI на codeplex, я скачаю и еще раз попробую запустить
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 30.08.2012
FiNick Mikhail Sukhov FiNick добавить строку revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); и посмотреть что получится. У меня работает. Очень странно. Тогда залей этот вариант SampleGUI на codeplex, я скачаю и еще раз попробую запустить Это то, что залито. Добавил всего одну строчку.
|
|
Спасибо:
|
|
|
|
|
FiNick
|
Дата: 31.08.2012
|
|
|
|
Короче, провожу такой эксперимент: Добавляю AnonymousOrdersLog в revisionManager, удаляю файлы ревизий, запускаю, все работает нормально, стакан строится, появляются новые файлы ревизий. Отключаюсь, перезапускаю приложение. Ставлю брейкпоинт на событие Trader.ProcessDataError, подключаюсь, сыпется куча ошибок типа:
Котировка для заданной цены не была найдена. Parameter name: price Actual value was 33157.
а также
Объем котировки Бид 15564 1 меньше требуемого объёма для удаления. Parameter name: volume Actual value was 3.
все это в
at StockSharp.BusinessEntities.MarketDepth.Remove(OrderDirections direction, Decimal price, Decimal volume, DateTime lastChangeTime) at StockSharp.Algo.OrderLogMarketDepthBuilder.Update(OrderLogItem item) at StockSharp.Algo.OrderLogHelper.Update(MarketDepth depth, OrderLogItem item)
UPD. Скачал с codeplex последнюю версию stocksharp-18932, проверил примеры с dev и trunk, та же фигня. Такое ощущение, что прога пытается смёржить ордерлог получаемый по сохраненным ревизиям со старыми стаканами (которые у меня не сохраняются?) и потому возникают ошибки.
|
|
Спасибо:
|
|
|
|
|
FiNick
|
Дата: 04.09.2012
Есть идеи?
Может все таки зальем revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); в релизный и trunk пример SampleGUI? Тогда больше народу смогут сказать работает или нет. Я вот из-за этой проблемы тупо не могу использовать OrderLog (за который 4тыщи в месяц плачу), потому что если в середине дня у меня робот отвалится, то при перезапуске он будет стартовать целый час, пока весь ордер лог с прошлой вечерки подгрузит=( Более того, из-за подключенного ордерлога мне обычные стаканы не шлются, я теперь вообще без стаканов вынужден играть
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 04.09.2012
Неправильно понимаете, что такое ОЛ и как из него получаются стаканы.
|
|
Спасибо:
|
|
|
|
|
FiNick
|
Дата: 04.09.2012
Mikhail Sukhov Неправильно понимаете, что такое ОЛ и как из него получаются стаканы. Да вроде понимаю неплохо. Ордерлог - последовательность постановок/снятий/исполнений ордеров. Эти данные агрегируются в стаканы. Стакан в текущий момент времени может зависеть от ордерлог итемов пришедших еще на прошлой вечерке, потому "нельзя просто так взять и"(с) запихать AnonymousOrdersLog в ревижнменеджер. Нужно как-то запоминать состояние стакана вместе с ревизией, чтобы потом можно было стартовать с последней ревизии и все корректно мёржилось. И, я так понял, это все реализовано, раз у вас все хорошо работает. Собственно, вопрос номер раз: почему у меня не работает в точности та же программа, что у вас работает? Вопрос номер два: у меня ли одного не работает, может просто никто больше не проверил? Отсюда просьба залить изменения в пример, чтобы я и другие смогли проверить.
|
|
Спасибо:
|
|
|
|
|
Garic
|
Дата: 04.09.2012
FiNick Нужно как-то запоминать состояние стакана вместе с ревизией, чтобы потом можно было стартовать с последней ревизии и все корректно мёржилось. И, я так понял, это все реализовано, раз у вас все хорошо работает. Не нужно ничего запоминать, оно транслируется раз в 2 минуты. Дока по плазе - "Особенности использования шлюза" -> восстановление и поздний вход. Не уверен, но помоему такой поздний старт со снапшота не реализован в S#.
|
|
Спасибо:
|
|
|
|