FullOrderLog не работает с RevisionManager?

FullOrderLog не работает с RevisionManager?
Atom
8/30/2012
FiNick


Обнаружил, что в примере SampleGUI (версия 4.1.3) в RevisionManager не добавлена таблица TableRegistry.AnonymousOrdersLog, очень странно, учитывая какой обьем данных идет через эту таблицу. Сам добавил, не работает, пример вылетает со странными ошибками. Пробовал в своего робота запилить, та же история.

Tags:


Thanks:


1 2  >
Alexander

Avatar
Date: 8/30/2012
Reply


Может стоит ошибки указать с каким-то логом?
А то догадаться что за странные ошибки повылетали у вас не удалось.
Thanks:

FiNick

Avatar
Date: 8/30/2012
Reply


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.

Предлагаю в примере в код:
Code
if (IsOrderLog.IsChecked == true)
	{
		Trader.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog);
		Trader.CreateDepthFromOrdersLog = true;
	}

добавить строку revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); и посмотреть что получится.
Thanks:

Mikhail Sukhov

Avatar
Date: 8/30/2012
Reply


FiNick
добавить строку revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); и посмотреть что получится.


У меня работает.
Thanks:

FiNick

Avatar
Date: 8/30/2012
Reply


Mikhail Sukhov
FiNick
добавить строку revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); и посмотреть что получится.


У меня работает.


Очень странно. Тогда залей этот вариант SampleGUI на codeplex, я скачаю и еще раз попробую запустить
Thanks:

Mikhail Sukhov

Avatar
Date: 8/30/2012
Reply


FiNick
Mikhail Sukhov
FiNick
добавить строку revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); и посмотреть что получится.


У меня работает.


Очень странно. Тогда залей этот вариант SampleGUI на codeplex, я скачаю и еще раз попробую запустить


Это то, что залито. Добавил всего одну строчку.
Thanks:

FiNick

Avatar
Date: 8/31/2012
Reply


Короче, провожу такой эксперимент:
Добавляю 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, та же фигня.
Такое ощущение, что прога пытается смёржить ордерлог получаемый по сохраненным ревизиям со старыми стаканами (которые у меня не сохраняются?) и потому возникают ошибки.
Thanks:

FiNick

Avatar
Date: 9/4/2012
Reply


Есть идеи?

Может все таки зальем revisionManager.Tables.Add(Trader.TableRegistry.AnonymousOrdersLog); в релизный и trunk пример SampleGUI? Тогда больше народу смогут сказать работает или нет.
Я вот из-за этой проблемы тупо не могу использовать OrderLog (за который 4тыщи в месяц плачу), потому что если в середине дня у меня робот отвалится, то при перезапуске он будет стартовать целый час, пока весь ордер лог с прошлой вечерки подгрузит=(
Более того, из-за подключенного ордерлога мне обычные стаканы не шлются, я теперь вообще без стаканов вынужден играть
Thanks:

Mikhail Sukhov

Avatar
Date: 9/4/2012
Reply


FiNick
Есть идеи?


Неправильно понимаете, что такое ОЛ и как из него получаются стаканы.
Thanks:

FiNick

Avatar
Date: 9/4/2012
Reply


Mikhail Sukhov
FiNick
Есть идеи?


Неправильно понимаете, что такое ОЛ и как из него получаются стаканы.


Да вроде понимаю неплохо. Ордерлог - последовательность постановок/снятий/исполнений ордеров. Эти данные агрегируются в стаканы. Стакан в текущий момент времени может зависеть от ордерлог итемов пришедших еще на прошлой вечерке, потому "нельзя просто так взять и"(с) запихать AnonymousOrdersLog в ревижнменеджер. Нужно как-то запоминать состояние стакана вместе с ревизией, чтобы потом можно было стартовать с последней ревизии и все корректно мёржилось. И, я так понял, это все реализовано, раз у вас все хорошо работает.
Собственно, вопрос номер раз: почему у меня не работает в точности та же программа, что у вас работает?
Вопрос номер два: у меня ли одного не работает, может просто никто больше не проверил?
Отсюда просьба залить изменения в пример, чтобы я и другие смогли проверить.
Thanks:

Garic

Avatar
Date: 9/4/2012
Reply


FiNick
Нужно как-то запоминать состояние стакана вместе с ревизией, чтобы потом можно было стартовать с последней ревизии и все корректно мёржилось. И, я так понял, это все реализовано, раз у вас все хорошо работает.


Не нужно ничего запоминать, оно транслируется раз в 2 минуты. Дока по плазе - "Особенности использования шлюза" -> восстановление и поздний вход.

Не уверен, но помоему такой поздний старт со снапшота не реализован в S#.
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy