тайны CandleManager :)
Atom Ответить
12.02.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. Почему при подписке на эти события они возвращают данные не с момента подписки а с начала дня?
То есть ожидая только актуальные свечки я получаю все свечки дня...



Теги:


Спасибо:




2 Ответов
Mikhail Sukhov

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


sklementiev Перейти
Два вопроса
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 Перейти

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


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

sklementiev Перейти

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


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

sklementiev

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


Mikhail Sukhov Перейти
sklementiev Перейти
Два вопроса
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. Итог, два события - появление новой свечки, и обновление старой.


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

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

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

sklementiev Перейти

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


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


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

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

sklementiev Перейти

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


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


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





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


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

loading
clippy