Рассказываю про свечи в терминале:
1. терминал получает историю в трех базовых таймфреймах: 1-минутный, 1-секундный и 1-часовой свечах с сервера. Все остальные таймфреймы терминал расчитывает путем агрегации базовых тамфреймов. Это что касается исторических данных.
2. текущие торговые свечи (для роботов, графиков, индикаторов и тд и тп) формируются путем агрегации потока обезличенных биржевых сделок, которые Альфа Директ получает с биржевого шлюза и транслирует через парочку-другую серверов всем подключенным клиентам.
Нет нужды говорить, что агрегация сделок в терминале реализована - максимально через ..., но у разработчиков оооочень важное задание быстрые клавиши прикрутить
Итого, как формируется дневная свеча в терминале по шагам:
1. стартует торговая сессия
2. совершается первая сделка на бирже
3. если ничего косячного не произошло, сделка пролетает с сервера биржи через шлюзы, концентраторы, маршрутизаторы, сервера Альфа Директа (порядка десяти ip адресов) на сервер реальных биржевых данных Альфа Директа
4. сервер реальных биржевых данных рассылает броадкастом эту сделку всем терминалам, подписанным на сделки ПО ЭТОМУ ИНСТРУМЕНТУ.
Подписка (переподписка) осуществляется автоматически при запуске окна графика, стакана, котировок...
5. сообщения о сделке через магистрального интернет провайдера Альфа Директа, а потом еще и через местных провайдеров доставляются в в сокет терминала (это в итоге тоже поряжка 10 адресов ))).
6. терминал перекладывает сообщение через несколько очередей, списков и хэш таблиц в объект агрегатора сделок
7.1 секундный агрегатор сделок "соображает" (о том, как, чуть ниже), что это первая сделка по инструменту за день и тарааам формирует первую секундную свечку (если нужны секунды)
7.2 минутный агрегатор сделок "соображает" (о том, как, чуть ниже), что это первая сделка по инструменту за день и тарааам формирует первую минутную свечку (если нужны минуты)
7.3 часовой агрегатор сделок "соображает" (о том, как, чуть ниже), что это первая сделка по инструменту за день и тарааам формирует первую часовую свечку (если нужны часовики)
8. производные агрегаторы "соображают" (о том, как, чуть ниже), что в базовых что-то произошло и создают свои свечки
9. график, НАКОНЕЦ ТО получают свежую свечку и отрисовывает ее
10. далее, приходят новые сделки (проходятся пп 3-6), они рассовываются по агрегаторам, те что-то там пересчитывают, периодически сообщают графикам и последняя свеча на графике живет своей жизнью
11. НАСТАЛО время понять как свеча формируется полностью, когда соответствующие агрегаторы получают сделку, у которой время отличается от текущей собираемой свечи на время таймфрейма, таааарааам, агрегаторы "понимают", что время вышло и выдают роботам и индикаторам их положенную свечу, а сами агрегаторы создают себе новую свечу и копят ее.
Ну и дневной индикатор сработает в этой схеме в аккурат УТРОМ СЛЕДУЮЩЕГО дня.
Ну и пропуск первой свечной сделки с новым временем внутри таймфрейма, что бывает, может очень серьезно нарушить время реакции всей системы в целом, и свеча в терминале будет выглядеть совсем не так как на бирже.
Вот теперь удачных торгов и спокойных снов.