тайны CandleManager :)
Atom Reply
2/12/2011


Два вопроса
1. Почему иногда события свечек вызываются в следующем порядке
2011-02-11 23:00:00.4416 Info OnNewCandles 11.02.2011 23:00:00 (время свечи)
2011-02-11 23:00:00.4416 Info OnCandlesChanged 11.02.2011 22:45:00
2011-02-11 23:00:00.4416 Info OnCandlesFinished 11.02.2011 22:45:00

то есть нет гарантии что после появления новой свечи старая неизменна?

2. Почему при подписке на эти события они возвращают данные не с момента подписки а с начала дня?
То есть ожидая только актуальные свечки я получаю все свечки дня...



Tags:


Thanks:




2 Answers
Mikhail Sukhov

Avatar
Date: 2/12/2011
Reply


sklementiev Go to
Два вопроса
1. Почему иногда события свечек вызываются в следующем порядке
2011-02-11 23:00:00.4416 Info OnNewCandles 11.02.2011 23:00:00 (время свечи)
2011-02-11 23:00:00.4416 Info OnCandlesChanged 11.02.2011 22:45:00
2011-02-11 23:00:00.4416 Info OnCandlesFinished 11.02.2011 22:45:00

то есть нет гарантии что после появления новой свечи старая неизменна?


Типичная ситуация, пришли тики за 2 тайм-фрейма. Они обрабатываются CandleManager. Итог, два события - появление новой свечки, и обновление старой.

sklementiev Go to

2. Почему при подписке на эти события они возвращают данные не с момента подписки а с начала дня?


Так работает QuikTrader, Квик + ДДЕ.

sklementiev Go to

То есть ожидая только актуальные свечки я получаю все свечки дня...


Именно так. Поэтому и ввел интерфейс ICandleSource.
Thanks:

sklementiev

Avatar
Date: 2/13/2011
Reply


Mikhail Sukhov Go to
sklementiev Go to
Два вопроса
1. Почему иногда события свечек вызываются в следующем порядке
2011-02-11 23:00:00.4416 Info OnNewCandles 11.02.2011 23:00:00 (время свечи)
2011-02-11 23:00:00.4416 Info OnCandlesChanged 11.02.2011 22:45:00
2011-02-11 23:00:00.4416 Info OnCandlesFinished 11.02.2011 22:45:00

то есть нет гарантии что после появления новой свечи старая неизменна?


Quote:
Типичная ситуация, пришли тики за 2 тайм-фрейма. Они обрабатываются CandleManager. Итог, два события - появление новой свечки, и обновление старой.


Хм, означает ли это что Квик получает тики не отсортированные по оси времени? То есть за тиком в новом тайфрейме приходит тик в старом? Сомневаюсь, что окно все сделки (источник данных для CandleManager) собержит такие данные. Поправь меня если я неправ

Вообще, для меня текущий порядок вызовов этих событий достаточно странный - сначала OnNewCandles затем OnCandlesFinished
По моему, естественный порядок для пользователя должен быть несколко иной, ведь для нас события по оси времени линейны... старая свеча закончилась, новая началась

10:59.59 - последник тик старого таймфрейма OnCandlesChanged(старая свеча)
11:00.01 - первый тик нового таймфрейма, OnCandlesFinished(старая свеча), OnNewCandles(новая "плоская" свеча O=H=L=C)
11:00.03 - тик нового таймфрейма, OnCandlesChanged(текушая свеча)

sklementiev Go to

2. Почему при подписке на эти события они возвращают данные не с момента подписки а с начала дня?


Quote:
Так работает QuikTrader, Квик + ДДЕ.


Я это понимаю, ты просто строишь свечи на основе тех данный, которые есть в окне все сделки. Однако это особенность реализации
Для пользователя смотрящего на API и читающего документацию это тайна
Мне кажется, естественно предполагать, что эти события будут генерить данные актуальный свечей с момента подписки на событие
тем более,что для получения прошлый свечек у тебя есть прекрасный метод GetTimeFrameCandles :)

Вообщем к чему я это все - любое поведение компонентов библиотеки должно быть либо однозначно предсказуемо либо однозначно документировано

sklementiev Go to

То есть ожидая только актуальные свечки я получаю все свечки дня...


Quote:
Именно так. Поэтому и ввел интерфейс ICandleSource.


Не совсем понял, при чем здесь это, сорри





Topic starter
Thanks:


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

loading
clippy