Sprite
|
Дата: 09.10.2020
А ещё такие тики стокшарп не умеет рисовать в разных свечках.
|
|
Спасибо:
|
|
|
|
|
Sprite
|
Дата: 09.10.2020
...разумеется если это не таймфрейм свечки...
|
|
Спасибо:
|
|
|
|
|
Greenn
|
Дата: 09.10.2020
sprite ...разумеется если это не таймфрейм свечки... Есть ли решение такой ситуации?
|
|
Спасибо:
|
|
|
|
|
Sprite
|
Дата: 10.10.2020
|
|
|
|
Greenn Есть ли решение такой ситуации? То что пропускаются тики - не знаю, у меня вообще бардак с тиками какой-то. Транзак коннектор, когда сразу после торговой сессии соединяется и заливает данные в локальное хранилище для истории - иногда дублирует тики, иногда пропускает, я забил и вручную их фильтрую. В реалтайме (во время сессии) не отслеживал. А вот когда тики с одинаковым или очень близким временем надо делить на разные свечи - я добавляю к каждой такой следующей свече 1 тик к дате закрытия от предыдущей (DateTime.AddTicks(Int64)), если алгоритм построения свечи предполагает отрисовку нескольких свечек в очень короткий промежуток времени - то делаю это с каждой. Такое часто бывает во время открытия сессии (я рисую свечки по алгоритму который в ATAS называется RangeXV, это типа Range но с небольшим изменением в логике). На графике это выглядит как куча свечек с одинаковым временем в одну секунду и длительность каждой не видна, но хоть так. На картинке - открытие вечерки на фортс, все свечки в одной секунде. Ответов уже давно не жду и вопросов не задаю ((( У вас же, судя по активности на форуме - активная фаза разработки/изучения/исследования платформы. Желаю удачи!
|
|
Спасибо:
|
|
|
|
|
Sprite
|
Дата: 10.10.2020
картинка почему-то не прилепилась к предыдущему посту
|
|
Спасибо:
|
|
|
|
|
Greenn
|
Дата: 10.10.2020
sprite картинка почему-то не прилепилась к предыдущему посту Не вижу, что Вы написали(
|
|
Спасибо:
|
|
|
|
|
Greenn
|
Дата: 10.10.2020
|
|
|
|
sprite Greenn Есть ли решение такой ситуации? То что пропускаются тики - не знаю, у меня вообще бардак с тиками какой-то. Транзак коннектор, когда сразу после торговой сессии соединяется и заливает данные в локальное хранилище для истории - иногда дублирует тики, иногда пропускает, я забил и вручную их фильтрую. В реалтайме (во время сессии) не отслеживал. А вот когда тики с одинаковым или очень близким временем надо делить на разные свечи - я добавляю к каждой такой следующей свече 1 тик к дате закрытия от предыдущей (DateTime.AddTicks(Int64)), если алгоритм построения свечи предполагает отрисовку нескольких свечек в очень короткий промежуток времени - то делаю это с каждой. Такое часто бывает во время открытия сессии (я рисую свечки по алгоритму который в ATAS называется RangeXV, это типа Range но с небольшим изменением в логике). На графике это выглядит как куча свечек с одинаковым временем в одну секунду и длительность каждой не видна, но хоть так. На картинке - открытие вечерки на фортс, все свечки в одной секунде. Ответов уже давно не жду и вопросов не задаю ((( У вас же, судя по активности на форуме - активная фаза разработки/изучения/исследования платформы. Желаю удачи! Через окно "Ответить" все таки увидел) Благодарю за ответ
|
|
Спасибо:
|
|
|
|
|
Sprite
|
Дата: 10.10.2020
Не за что. Поясню для размышления с тиками по российскому срочному рынку - я выкачиваю их стокшарп коннектором сразу же после закрытия сессии, параллельно выкачиваю их с сайта финама без стокшарповского кода, затем сравниваю по номерам и сращиваю, удаляя из выкачанных стокшарпом дубликаты. Всё это потому что финам не выкладывает значение открытого интереса, так бы я стокшарповский коннектор для этого вообще не использовал. В итоге получается более менее правдивый микс. Такая вот карусель (((
|
|
Спасибо:
|
|
|
|
|
Greenn
|
Дата: 10.10.2020
sprite Не за что. Поясню для размышления с тиками по российскому срочному рынку - я выкачиваю их стокшарп коннектором сразу же после закрытия сессии, параллельно выкачиваю их с сайта финама без стокшарповского кода, затем сравниваю по номерам и сращиваю, удаляя из выкачанных стокшарпом дубликаты. Всё это потому что финам не выкладывает значение открытого интереса, так бы я стокшарповский коннектор для этого вообще не использовал. В итоге получается более менее правдивый микс. Такая вот карусель ((( Не поделитесь кусочком кода, как Вы выкачиваете используя коннектор? Хотя бы примерно, чтобы иметь представление)
|
|
Спасибо:
|
|
|
|
|
Sprite
|
Дата: 10.10.2020
|
|
|
|
Вкратце логика такая:
Подписываемся на сообщения, сохраняем их в локальную коллекцию _connector.NewMessage += (message) => { if (message is ExecutionMessage executionMessage) { _executionMessages.Add(executionMessage); } };
Подписываемся на тики. Если указать конечную дату то тики получены не будут, возможно это только для Transaq так как сервер хранит тики только за день, возможно такая логика для всех коннекторов. Документация мягко говоря очень скудная: _connector.SubscribeTrades(_security, _from);
После того как тики получены сохраняем их в заранее определенное хранилище (Логику выявления что тиков на сегодня больше не будет постить не буду, но смысл такой - коннектор не знает что больше тиков не будет и продолжает слушать. Я через таймаут в пару минут от последнего тика просто считаю что тики поступать больше не будут, разумеется это не работает на малоликвидных инструментах и надо изобретать что-то другое.) _storageRegistry.GetTickMessageStorage(_securityId).Save(_executionMessages);
По идее авторов библиотеки достаточно было бы при инициализации коннектора указать StorageRegistry, но я устал с этим бороться, так как после каждого нового релиза можно ожидать или изменение сигнатур или логику работы или ситуацию когда вообще непонятно почему не работает. А задавать вопросы авторам и ждать от них ответы - скоро сами поймете, где ваше место.
|
|
|
|