тайны CandleManager :)
Atom
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

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

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

Теги:


Спасибо:


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

Фотография
Дата: 13.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. Итог, два события - появление новой свечки, и обновление старой.

Хм, означает ли это что Квик получает тики не отсортированные по оси времени? То есть за тиком в новом тайфрейме приходит тик в старом? Сомневаюсь, что окно все сделки (источник данных для 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