Лог заявок (full order log -> анонимный order log)
Atom Ответить
14.02.2012


Добавил эту поддержку несколько дней назад. Сейчас данные транслируются как заявки и собственные сделки с анонимным портфелем. Появилось желание сделать опцию для построения стаканов из лог заявок. Сделал и это, но не до конца. Стакан строится как-то криво, с захлестами бидов на офферов. Если есть желание у кого-то, милости прощу доделать.

Теги:


Спасибо:




45 Ответов
< 1 2 
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 03.07.2012
Ответить


FiNick Перейти
Версия 4.1.1. Подключаюсь к тестовому контуру.


SampleGUI так же себя ведет?
Автор топика
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 03.07.2012
Ответить


SampleGUI вроде нормально, попробую разобраться. Но гидра глючит
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 03.07.2012
Ответить


FiNick Перейти
SampleGUI вроде нормально, попробую разобраться. Но гидра глючит


У нас она работает на ОЛ.
Автор топика
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 03.07.2012
Ответить


А что вообще делает метод trader.RegisterOrderLog?? Что он есть, что нету, разницы не вижу.

Кстати, написал свою программку, которая собирает OrderLogItems. При попытке сохранить OrderLogItems в хранилище возникает та же ошибка, что и у Гидры: вроде как встречаются ордера с обьемом 0. Попробую их отфильтровать.

Вопрос: разве никто не тестировал гидру на сохранение OrderLogItems? Только у меня эта ошибка?
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 05.07.2012
Ответить


Не получается отфильтровать.
Та же ошибка:
Ошибка | Неправильный объем заявки.
Parameter name: items
Actual value was 0.

Ошибка возникает при попытке сделать storage.GetOrderLogStorage(rFut, dataPath).Save(OLItems). Какой конкретно OrderLogItem ему не нравится не понятно, и что это за параметр items тоже не понятно. Гидра на этом же падает.
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 05.07.2012
Ответить


Заметил вот такую вот ерунду:
из 10000 первых OrderLogItems за сегодня, у 380 через некоторое время Order'а сменили обьем, 344 из них сменили обьем на 0.
Соответственно в итоговом списке, который я собираюсь сохранить на жесткий диск через storage.GetOrderLogStorage.Save оказалась куча ордеров с обьемом 0, и сохранение вылетает с ошибкой!
Тут мне пришла гениальная мысль: может обьем ставится в 0 когда заявку отменяют? Тогда почему сохранение на диск ругается на такие заявки?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 05.07.2012
Ответить


FiNick Перейти
Заметил вот такую вот ерунду:
из 10000 первых OrderLogItems за сегодня, у 380 через некоторое время Order'а сменили обьем, 344 из них сменили обьем на 0.
Соответственно в итоговом списке, который я собираюсь сохранить на жесткий диск через storage.GetOrderLogStorage.Save оказалась куча ордеров с обьемом 0, и сохранение вылетает с ошибкой!
Тут мне пришла гениальная мысль: может обьем ставится в 0 когда заявку отменяют? Тогда почему сохранение на диск ругается на такие заявки?


Объем в ОЛ - это объем операции. Ни регистрация ни снятие ни сведение не может иметь нулевой объем. Что-то у вас в данных, которые приходят... SampleGUI нормально работает с хранилищем?

Автор топика
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 05.07.2012
Ответить


SampleGUI не использует хранилище вроде, если только я сам в коде не напишу.
Тут стакан у SampleGUI совершенно неправильно считается, прикрепил фотку. По мере того, как скачиваются OrderLogItems стакан все больше и больше накапливает ошибку.
stakan.png 58,2KB (0)
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 05.07.2012
Ответить


FiNick Перейти
SampleGUI не использует хранилище вроде, если только я сам в коде не напишу.
Тут стакан у SampleGUI совершенно неправильно считается, прикрепил фотку. По мере того, как скачиваются OrderLogItems стакан все больше и больше накапливает ошибку.


Версия с транка так же ведет себя?
Автор топика
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 05.07.2012
Ответить


Да, с транка также.
Кстати, если к тестовому серверу коннектиться, то вроде стакан правильно строится (и dev, и trunk). У меня версия исходников stocksharp-18055

А нет, вру, на тестовом также стакан глючит, но меньше
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 05.07.2012
Ответить


SampleGUI с Release 4.1.1 версии, вроде не вижу ошибок в стакане.
Я себе в робота запихал самые последние библиотеки 4.1.2, а они походу глючные. Завтра откачу до релиз 4.1.1 и посмотрю что там.
Спасибо:

Maxim

Фотография
Дата: 17.07.2012
Ответить


День добрый.


1)
Уважаемые, что получилось в итоге?
Быстрее формировать стакан из лога или получать обычным способом?
Или самому надо тестировать? RollEyes


2)
И второй вопрос.
Откуда лучше брать BestBid и BestAsk?
Под лучше, я имею ввиду где меньшая задержка от биржы.
Насколько я понимаю, сейчас есть три варианта (например, для фьючерсов):

а) через поток FORTS_FUTAGGR5_REPL.
Правильно ли я понимаю, что этому потоку соответствует MarketDepth.BestAsk и MarketDepth.BestBid?

б) через поток FORTS_FUTCOMMON_REPL
Правильно ли я понимаю, что этому потоку соответствует Security.BestBid и Security.BestAsk?

в) через формирование стакана из ОрдерЛога.
Правильно ли я понимаю, что в этом случае аналогично варианту а) надо использовать MarketDepth.BestAsk и MarketDepth.BestBid?
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 19.07.2012
Ответить


Уважаемые коллеги,

Обращаем Ваше внимание на изменение в порядке предоставления услуги "полный журнал заявок".

С 17.04.2012 начата передача анонимного лога заявок в отдельном потоке FORTS_ORDLOG_REPL с таблицами orders_log, multileg_orders_log, sys_events, так же следует обратить внимание на объединение данных по фьючерсным и опционным заявкам в одной таблице.

С 20.07.2012 отключается передача полного анонимного журнала заявок в потоках FORTS_FUTTRADE_REPL и FORTS_OPTTRADE_REPL, таблицы orders_log, multileg_orders_log.

Начиная с 23.07.2012 в данных таблицах останутся только Ваши собственные заявки.
Всем пользователям данной услуги необходимо убедится в том, что к 20.07.2012 вы получаете полный журнал заявок из нового потока FORTS_ORDLOG_REPL, обратная совместимость не сохраняется!


Что делать??
Спасибо:

Alexander

Фотография
Дата: 19.07.2012
Ответить


FiNick Перейти
Уважаемые коллеги,

Обращаем Ваше внимание на изменение в порядке предоставления услуги "полный журнал заявок".

С 17.04.2012 начата передача анонимного лога заявок в отдельном потоке FORTS_ORDLOG_REPL с таблицами orders_log, multileg_orders_log, sys_events, так же следует обратить внимание на объединение данных по фьючерсным и опционным заявкам в одной таблице.

С 20.07.2012 отключается передача полного анонимного журнала заявок в потоках FORTS_FUTTRADE_REPL и FORTS_OPTTRADE_REPL, таблицы orders_log, multileg_orders_log.

Начиная с 23.07.2012 в данных таблицах останутся только Ваши собственные заявки.
Всем пользователям данной услуги необходимо убедится в том, что к 20.07.2012 вы получаете полный журнал заявок из нового потока FORTS_ORDLOG_REPL, обратная совместимость не сохраняется!


Что делать??



Переходить полностью на StockSharp если вы этого ещё не сделали.
Поток FORTS_ORDLOG_REPL мы поддержали уже давно, когда другие об этом даже и не думали.
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 19.07.2012
Ответить


Я и так "полностью на StockSharp"=) Вы хотите сказать, что StockSharp уже давно получает полный ордер лог из потока FORTS_ORDLOG_REPL, потому никаких изменений в программу вносить не надо?
Спасибо:

Alexander

Фотография
Дата: 19.07.2012
Ответить


Да
Спасибо:

Maxim

Фотография
Дата: 20.07.2012
Ответить


Maxim Перейти
День добрый.


1)
Уважаемые, что получилось в итоге?
Быстрее формировать стакан из лога или получать обычным способом?
Или самому надо тестировать? RollEyes


2)
И второй вопрос.
Откуда лучше брать BestBid и BestAsk?
Под лучше, я имею ввиду где меньшая задержка от биржы.
Насколько я понимаю, сейчас есть три варианта (например, для фьючерсов):

а) через поток FORTS_FUTAGGR5_REPL.
Правильно ли я понимаю, что этому потоку соответствует MarketDepth.BestAsk и MarketDepth.BestBid?

б) через поток FORTS_FUTCOMMON_REPL
Правильно ли я понимаю, что этому потоку соответствует Security.BestBid и Security.BestAsk?

в) через формирование стакана из ОрдерЛога.
Правильно ли я понимаю, что в этом случае аналогично варианту а) надо использовать MarketDepth.BestAsk и MarketDepth.BestBid?


Михаил, Алекс, можете ответить на вопросы? Smile
Или кто другой может знает?



Спасибо:

Alexander

Фотография
Дата: 20.07.2012
Ответить


1) Я не сравнивал. По моим предположениям - чётко что одно быстрее другого не будет. Когда как
2) security.BestBid \ security.BestAsk
или marketdepth.BestBid \ marketDepth.BestAsk

они обновляются вместе
Спасибо:

Liberal

Фотография
Дата: 05.08.2012
Ответить


Формирую стакан по Order Log (trader.CreateDepthFromOrdersLog = true). В стратегию добавляют событие Security.WhenNewOrderLogItems(). Первая обработка события соответствует первой поступившей строке Order Log. Стакан должен быть еще не сформирован. Тем не менее Security.GetMarketDepth().Bids и Security.GetMarketDepth().Asks показывают множество значений. Вопрос, откуда они берутся? Может быть, начальное состояние стакана генерируется случайно, а дальше идет его обновление по Order Log? Или, может быть, первые несколько событий не срабатывают, и за это время формируется стакан?

Для контроля я попробовал не формировать стакан из лога (trader.CreateDepthFromOrdersLog = false), и тогда при первом вызове события Security.WhenNewOrderLogItems(), получаю, как это и должно быть ночью на выходных, пустой стакан.
Спасибо:

FlashPlayer

Фотография
Дата: 09.01.2013
Ответить


Доброго дня! Помогите пожалуйста разобраться с одной проблемой. Подключаюсь к тестовому серверу с помощью Плазы 2. Запускаю SampleGui последней редакции 4.1.6. Начинаю получать сделки, инструменты, стаканы по ним, могу отправить заявку, снять ее и даже сделать сделку, НО совершенно никак не реагирует программа на событие Trader.NewOrderLogItems += items => items.ForEach(_ordersLogWindow.AddOperation); То есть можно поставить там брейкпоинт, но на него мы никогда не упадем. Я пишу именно про СемплГуи, так как попытался сначала сам подписаться в своем проекте на получение ОЛ, но у меня ничего не получилось - подумал, что делаю что-то не так, но и в вашем примере к сожалению это не работает тоже. Потом я подумал, что все дело в тестовом сервере, но потом наткнулся на эту тему - тут как раз выше человек пишет, что СемплГуи даже версии 4.1.1 у него работает на тестовом сервере, хотя эта версия у меня тоже не реагирует на события нового ордерлогайтима. Помогите пожалуйста разобраться - что может быть не так? И только у меня одного не работает получение изменений ордерлога на тестовом? Может быть все таки проблема в самом тестовом сервере и оттуда просто не транслируется данная информация? Спасибо.
Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy