SetUpdateCallback - как определить что начали приходить Не исторические данные., SetUpdateCallback - как определить что начали приходить Не исторические данные.
Подскажите пожалуйста, вот я вызываю SetUpdateCallback - предположим по Газпрому по дневному интервалу и в колбек начинают приходить данные, но сначала приходят исторические данные, а не реальные онлайн изменения цены сделки. И вот вопрос: а как мне тогда определить, что данные которые начали приходить в колбек - уже реальные изменения цены купли/продажи - чтобы я на них реагировал, а не исторические данные ?
Использовать счетчик свечей не предлагать - так как он естественно работать не будет: потому что ну пришел индекс последней Дневной свечи к примеру 100 датированная сегодняшним днем, начала пришли за половину дня исторические данные, а потом начали приходить онлайн изменения - НО индекс свечи все равно будет тот же - так как день еще не прошел.
Saturn написал: Подскажите пожалуйста, вот я вызываю SetUpdateCallback - предположим по Газпрому по дневному интервалу и в колбек начинают приходить данные, но сначала приходят исторические данные, а не реальные онлайн изменения цены сделки. И вот вопрос: а как мне тогда определить, что данные которые начали приходить в колбек - уже реальные изменения цены купли/продажи - чтобы я на них реагировал, а не исторические данные ?
Использовать счетчик свечей не предлагать - так как он естественно работать не будет: потому что ну пришел индекс последней Дневной свечи к примеру 100 датированная сегодняшним днем, начала пришли за половину дня исторические данные, а потом начали приходить онлайн изменения - НО индекс свечи все равно будет тот же - так как день еще не прошел.
Saturn написал: Подскажите пожалуйста, вот я вызываю SetUpdateCallback - предположим по Газпрому по дневному интервалу и в колбек начинают приходить данные, но сначала приходят исторические данные, а не реальные онлайн изменения цены сделки. И вот вопрос: а как мне тогда определить, что данные которые начали приходить в колбек - уже реальные изменения цены купли/продажи - чтобы я на них реагировал, а не исторические данные ?
Использовать счетчик свечей не предлагать - так как он естественно работать не будет: потому что ну пришел индекс последней Дневной свечи к примеру 100 датированная сегодняшним днем, начала пришли за половину дня исторические данные, а потом начали приходить онлайн изменения - НО индекс свечи все равно будет тот же - так как день еще не прошел.
используйте OnParam или OnAllTrade
Не хочу, у меня уже настроено все под SetUpdateCallback - вот только единственная проблема есть описанная. С OnParam или OnAllTrade - есть еще большая проблема - потому что там нужно самому формировать данные в интервалы, а это вообще капец неудобно, потому что нужно учитывать ночные переходы времени, выходные, праздники - геморрой короче один только.
Saturn написал: Подскажите пожалуйста, вот я вызываю SetUpdateCallback - предположим по Газпрому по дневному интервалу и в колбек начинают приходить данные, но сначала приходят исторические данные, а не реальные онлайн изменения цены сделки. И вот вопрос: а как мне тогда определить, что данные которые начали приходить в колбек - уже реальные изменения цены купли/продажи - чтобы я на них реагировал, а не исторические данные ?
Использовать счетчик свечей не предлагать - так как он естественно работать не будет: потому что ну пришел индекс последней Дневной свечи к примеру 100 датированная сегодняшним днем, начала пришли за половину дня исторические данные, а потом начали приходить онлайн изменения - НО индекс свечи все равно будет тот же - так как день еще не прошел.
используйте OnParam или OnAllTrade
Не хочу, у меня уже настроено все под SetUpdateCallback - вот только единственная проблема есть описанная. С OnParam или OnAllTrade - есть еще большая проблема - потому что там нужно самому формировать данные в интервалы, а это вообще капец неудобно, потому что нужно учитывать ночные переходы времени, выходные, праздники - геморрой короче один только.
Вы не поняли. OnParam или OnAllTrade использовать для определения, что приходят реальные данные, а не исторические.
Придумал :) По Volume. Первоначально заполняется при вызове SetUpdateCallback - заполнятся таблица CreateDataSource, я беру размер таблицы и Volume из последней свечи это таблицы и сохраняю в отельную переменную. После того, как начали вызывается колбеки SetUpdateCallback - проверяю в каждом вызове:
- размер таблицы - если размер таблицы совпадает, то проверяю Volume, если Volume совпадает, значит новых данных еще нет. -Если размер таблицы совпадает, но Volume нет, то в данной колбеке - были первые новые данные. - ну и если размер таблицы Не совпадает, то точно пришли новые данные и даже уже новая свеча.
nikolz написал: еще проще сравнивать время свечи и текущее время компа.
Тоже не вариант, так как свечи могут приходить немного с опозданием и в итоге на границе времени интервала - эти свечи будут отбрасывается.
Вы ошибаетесь. В любом случае свечи истории - это свечи прошедших торговых дней. и как минимум не могут быть в предыдущем отсчете.
В чем же я ошибаюсь то :) Это факт - онлайн свечи могут приходить с примерно с 3 секундной задержкой. Вчерашний пример который я заметил на тестировании: 3 минутная свеча:
-время пришедшей свечи в callback 20:00, время сервера 20:01:34 (пока все нормально, треxминтная свеча укладывается в диапазон сервера с 20:00:00 - 20:02:59, поэтому эта свеча считается онлайн) -время пришедшей свечи в callback 20:00, время сервера 20:02:47 (пока все нормально, треxминтная свеча укладывается в диапазон сервера с 20:00:00 - 20:02:59, поэтому эта свеча считается онлайн) -время пришедшей свечи в callback 20:00, время сервера 20:03:02 (ТОЛЬКО ЧТО Пришедшая свеча все еще находится в 3 минутном диапазоне с 20:00:00 - 20:02:59 ,НО время сервера уже вышло из этого диапазона, то есть Квик или сервер брокера прислал запоздавшую сделку на несколько секунд, и если сравнивать это временем сервера, то получается, что эта сделка относится к исторической свече, хотя по факту - эта последняя онлайн сделка присланная с сервера)
Так что повторю без всяких ошибок: К сожалению Тоже не вариант, так как свечи могут приходить немного с опозданием и в итоге на границе времени интервала - эти свечи будут отбрасывается.
nikolz написал: еще проще сравнивать время свечи и текущее время компа.
Тоже не вариант, так как свечи могут приходить немного с опозданием и в итоге на границе времени интервала - эти свечи будут отбрасывается.
Вы ошибаетесь. В любом случае свечи истории - это свечи прошедших торговых дней. и как минимум не могут быть в предыдущем отсчете.
В чем же я ошибаюсь то :) Это факт - онлайн свечи могут приходить с примерно с 3 секундной задержкой. Вчерашний пример который я заметил на тестировании: 3 минутная свеча:
-время пришедшей свечи в callback 20:00, время сервера 20:01:34 (пока все нормально, треxминтная свеча укладывается в диапазон сервера с 20:00:00 - 20:02:59, поэтому эта свеча считается онлайн) -время пришедшей свечи в callback 20:00, время сервера 20:02:47 (пока все нормально, треxминтная свеча укладывается в диапазон сервера с 20:00:00 - 20:02:59, поэтому эта свеча считается онлайн) -время пришедшей свечи в callback 20:00, время сервера 20:03:02 (ТОЛЬКО ЧТО Пришедшая свеча все еще находится в 3 минутном диапазоне с 20:00:00 - 20:02:59 ,НО время сервера уже вышло из этого диапазона, то есть Квик или сервер брокера прислал запоздавшую сделку на несколько секунд, и если сравнивать это временем сервера, то получается, что эта сделка относится к исторической свече, хотя по факту - эта последняя онлайн сделка присланная с сервера)
Так что повторю без всяких ошибок: К сожалению Тоже не вариант, так как свечи могут приходить немного с опозданием и в итоге на границе времени интервала - эти свечи будут отбрасывается.
Поясняю. Запоздалыми свечи не бывают. сервер не может прислать Вам предыдущую свечу, если он Вам уже присылает текущую свечу. Запоздалыми бывают обезличенные сделки, когда Вы их либо начинаете принимать либо допринимаете после разрыва. И это происходит лишь тогда, когда этих сделок очень много. Относительно свечей такого быть не может в принципе. Сервер всего хранит 3000 свечей и он их Вам будет посылать, если Вы все стерли в архиве или подписались на совершенно новый инструмент или новый тайм, которого у вас не было раньше. ---------------------------- В остальных случаях. Все свечи истории уже есть в вашем архиве, либо их относительно мало и они догрузятся одним несколькими пакетами буквально за секунды. ------------------------ Перейдем к Вашим примерам: ---------------------- -время пришедшей свечи в callback 20:00, время сервера 20:01:34 (пока все нормально, треxминтная свеча укладывается в диапазон сервера с 20:00:00 - 20:02:59, поэтому эта свеча считается онлайн) -время пришедшей свечи в callback 20:00, время сервера 20:02:47 (пока все нормально, треxминтная свеча укладывается в диапазон сервера с 20:00:00 - 20:02:59, поэтому эта свеча считается онлайн) -время пришедшей свечи в callback 20:00, время сервера 20:03:02 (ТОЛЬКО ЧТО Пришедшая свеча все еще находится в 3 минутном диапазоне с 20:00:00 - 20:02:59 ,НО время сервера уже вышло из этого диапазона, то есть Квик или сервер брокера прислал запоздавшую сделку на несколько секунд, и если сравнивать это временем сервера, то получается, что эта сделка относится к исторической свече, хотя по факту - эта последняя онлайн сделка присланная с сервера) ------------------ Вы ошибаетесь. Это не время пришедшей свечи. Это время пришедшей сделки. Если свеча в момент пришедшей сделки не закрыта, то это текущая свеча, вне зависимости от времени сервера. Но если Вы проверяете время сделки, а с временем текущей свечи. Собственно параметр Size и позволяет определить есть новая свеча или это текущая.
Вы ошибаетесь. Это не время пришедшей свечи. Это время пришедшей сделки. Если свеча в момент пришедшей сделки не закрыта, то это текущая свеча, вне зависимости от времени сервера. Но если Вы проверяете время сделки, а с временем текущей свечи. Собственно параметр Size и позволяет определить есть новая свеча или это текущая.
Да Вы батенька фантазер. Про вас даже песня есть "фантазер ты меня называла" :)
Я еще не допустил не одной ошибки, а Вы только и делаете, что пишите ошибающуюся чушь. :)
Еще раз повторю приходит время свечи, разуйте глаза, если они у вас заклеились - " 20:00" - это время трехминутной свечи. Вы Квик вчера первый раз что ли открыли ?
Поэтому я и написал, что "Тоже не вариант, так как свечи могут приходить немного с опозданием и в итоге на границе времени интервала - эти свечи будут отбрасывается." на предложение "еще проще сравнивать время свечи и текущее время компа."