Обнаружил, что в примере SampleGUI (версия 4.1.3) в RevisionManager не добавлена таблица TableRegistry.AnonymousOrdersLog, очень странно, учитывая какой обьем данных идет через эту таблицу. Сам добавил, не работает, пример вылетает со странными ошибками. Пробовал в своего робота запилить, та же история.
Kommentare (16)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Может стоит ошибки указать с каким-то логом? А то догадаться что за странные ошибки повылетали у вас не удалось.
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.
Предлагаю в примере в код:
добавить строку revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); и посмотреть что получится.
У меня работает.
Очень странно. Тогда залей этот вариант SampleGUI на codeplex, я скачаю и еще раз попробую запустить
Это то, что залито. Добавил всего одну строчку.
Короче, провожу такой эксперимент: Добавляю 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, та же фигня. Такое ощущение, что прога пытается смёржить ордерлог получаемый по сохраненным ревизиям со старыми стаканами (которые у меня не сохраняются?) и потому возникают ошибки.
Есть идеи?
Может все таки зальем revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); в релизный и trunk пример SampleGUI? Тогда больше народу смогут сказать работает или нет. Я вот из-за этой проблемы тупо не могу использовать OrderLog (за который 4тыщи в месяц плачу), потому что если в середине дня у меня робот отвалится, то при перезапуске он будет стартовать целый час, пока весь ордер лог с прошлой вечерки подгрузит=( Более того, из-за подключенного ордерлога мне обычные стаканы не шлются, я теперь вообще без стаканов вынужден играть
Неправильно понимаете, что такое ОЛ и как из него получаются стаканы.
Да вроде понимаю неплохо. Ордерлог - последовательность постановок/снятий/исполнений ордеров. Эти данные агрегируются в стаканы. Стакан в текущий момент времени может зависеть от ордерлог итемов пришедших еще на прошлой вечерке, потому "нельзя просто так взять и"(с) запихать AnonymousOrdersLog в ревижнменеджер. Нужно как-то запоминать состояние стакана вместе с ревизией, чтобы потом можно было стартовать с последней ревизии и все корректно мёржилось. И, я так понял, это все реализовано, раз у вас все хорошо работает. Собственно, вопрос номер раз: почему у меня не работает в точности та же программа, что у вас работает? Вопрос номер два: у меня ли одного не работает, может просто никто больше не проверил? Отсюда просьба залить изменения в пример, чтобы я и другие смогли проверить.
Не нужно ничего запоминать, оно транслируется раз в 2 минуты. Дока по плазе - "Особенности использования шлюза" -> восстановление и поздний вход.
Не уверен, но помоему такой поздний старт со снапшота не реализован в S#.
Не сделано. Пока решаем более приоритетные задачи. Но в планах стоит.
То есть сейчас быстро стартовать с подключенным ордер логом нельзя? У меня вот "медленный" старт под конец дня около 1-1.5 часа занимает, при чем GUI подвисает на все это время, это ппц
Запрограммируйте так, чтоб не подвисал. Или вы принципиально все расчёты делаете в гуёвом треде?
Ок, будем ждать)