Support
|
Date: 11/13/2017
Добрый день,
Свечи строится в вашем случае из локальных данных и потока сделок. Инструмент же обновляется только из потока сделок. Синхронизации между двумя этими действиями нет. Это необхожимо делать в программе.
|
|
Thanks:
|
|
|
|
|
Evgeny
|
Date: 11/13/2017
Скажите, пожалуйста: 1. Из какого потока данных создаются в моем случае свечи? 2. На основе какого потока данных срабатывает в моем случае правило Security.WhenNewTrade ? Спасибо.
|
|
Thanks:
|
|
|
|
|
Support
|
Date: 11/14/2017
Свечи в вашем случае сначала получаются готовые, затем обновляются тиковыми данными. Инструмент обновляется только тиковыми данными.
|
|
Thanks:
|
|
|
|
|
Evgeny
|
Date: 11/14/2017
>>>Свечи в вашем случае сначала получаются готовые, затем обновляются тиковыми данными.
Это не так. У меня все свечи, в том числе исторические, строятся из тиков. В хранилище свечей вообще нет.
>>>Инструмент обновляется только тиковыми данными.
Ответьте, пожалуйста, на вторую часть предыдущего вопроса: на основе какого потока данных срабатывает правило Security.WhenNewTrade ? На основе обновления инструмента или на основе данных тиковых сделок?
И еще: под обновлением инструмента Вы понимаете подписку Connector.RegisterSecurity() ?
|
|
Thanks:
|
|
|
|
|
Support
|
Date: 11/14/2017
Свечи строятся в вашем случае из тиков хранилища + поступающих из Квик.
Инструмент обновляется только по таблице текущих параметров.
|
|
Thanks:
|
|
|
|
|
Evgeny
|
Date: 11/14/2017
Причем тут обновление инструмента? Судя по коду правило Security.WhenNewTrade срабатывает при появлении новой тиковой сделки (то есть того же самого источника данных, что и при построении свечей), либо при включенном параметре CreateTradesFromOrdersLog (в моем случае он отключен).
То есть рассинхронизация происходит не между разными потоками данных, а в рамках одного и того же потока данных. Вы также не считаете это ошибкой?
|
|
Thanks:
|
|
|
|
|
Support
|
Date: 11/15/2017
Ваш измененный пример строит свечи из истории + реальных данных. В Security.WhenNewTrade только реальные. Поэтому это разные потоки данных.
|
|
Thanks:
|
|
|
|
|
Evgeny
|
Date: 11/15/2017
Support Ваш измененный пример строит свечи из истории + реальных данных. В Security.WhenNewTrade только реальные. Поэтому это разные потоки данных. Коллеги, ну как же так. Вы хотя бы посмотрите внимательно мое первоначальное сообщение об ошибке (не говоря уже о том, чтобы его воспроизвести самостоятельно по тому примеру, который я прислал). Я же сразу написал, что проблема возникает пока свечи строятся из хранимых тиков. То есть рассинхронизация построенных свечей из хранимых тиков с событием Security.WhenNewTrade, сгенерированным на основе тех же хранимых тиков. Когда все выходит в онлайн - все нормализуется и рассинхронизации не возникает. Вы могли сразу мне ответить, что не считаете описанный мной случай ошибкой и все. Вместо этого Вы в третьем сообщении придумываете причину, почему не считаете это ошибкой, которая к моему примеру не имеет никакого отношения.
|
|
|
|
|
Support
|
Date: 11/16/2017
Evgeny Коллеги, ну как же так. Вы хотя бы посмотрите внимательно мое первоначальное сообщение об ошибке (не говоря уже о том, чтобы его воспроизвести самостоятельно по тому примеру, который я прислал). Я же сразу написал, что проблема возникает пока свечи строятся из хранимых тиков. То есть рассинхронизация построенных свечей из хранимых тиков с событием Security.WhenNewTrade, сгенерированным на основе тех же хранимых тиков. Когда все выходит в онлайн - все нормализуется и рассинхронизации не возникает.
Да, именно это и было в нашем ответе. Рассинхронизация идет из-за истории. Она может быть получена и в реальном времени, и считана с диска. Например, в середине дня вы запускаете построение свечей с начала дня. Конечно же в самом начале свечи будут идти со временем на несколько часов меньше, чем тещие тики в Security.WhenNewTrade. Затем данные синхронизуются.
|
|
Thanks:
|
|
|
|
|
Evgeny
|
Date: 11/17/2017
|
|
|
|
К сожалению, опять не сходится. Посмотрите сами на разницу в описанной мной проблеме и на Ваше объяснение. Вот мой пример из поста выше: Quote:например, срабатывает правило CandleManager.WhenCandlesFinished при закрытии свечи с 10 до 11 часов, а после этого еще продолжают срабатывать правила Security.WhenNewTrade с тиками с 10 до 11 часов. Причем такая расснихронизация по хранимым тикам может достигать нескольких дней. Срабатывает правило завершения свечи где-нибудь в середине дня 03.08.2017, а в это время еще продолжают срабатывать правила новых сделок за 02.08.2017. А вот Ваш пояснение: Quote:Например, в середине дня вы запускаете построение свечей с начала дня. Конечно же в самом начале свечи будут идти со временем на несколько часов меньше, чем тещие тики в Security.WhenNewTrade Заметьте, что все с точностью до наоборот. Запаздывают не свечи, как Вы пишите, а запаздывают сделки. Причем все это только при построении на основе данных тиков, которые только хранятся. Никакого отношения к текущему дню проблема не имеет. То есть если сегодня 17.11, то при загрузке данных, например, за 13.11 правила завершения свечей за 13.11 срабатывают гораздо быстрее, чем правила поступление новой сделки за то же самое 13.11.
|
|
Thanks:
|
|
|
|