Слой создания свечей в OsEngine. Обзор серии Tick. Как она устроена. Свечи #20

04.07.2024 palmax

Слой создания свечей в OsEngine. Обзор серии Tick. Как она устроена. Свечи #20

Продолжаем разбираться со слоем создания свечек. Заключительная статья. Сегодня рассмотрим серию Tick сверху вниз и разберёмся с тем, как она работает. Этого должно быть достаточно, чтобы на основе этого делать свои серии.

 

1. Где находится серия Tick?

 

 

2. Параметры и метод OnStateChange.

 

  1. Единственный параметр данной серии свечек – TradeCount. Это параметр для целочисленного значения, регулирующий кол-во трейдов, после набора которых свеча закрывается.
  2. Параметр TradeCount создаётся в методе OnStateChange, когда метод вызывается со статусом Configure (т.е. при создании серии). Вам точно также надо будет создавать все параметры здесь.
  3. Когда метод OnStateChange вызывается со статусом ParametersChange, т.е. при смене значения параметра, свечи внутри серии очищаются.
  4. Если данный метод вызывается со статусом Dispose, не происходит ничего. Однако в Вашей серии вы можете здесь очищать какие-нибудь данные, если Вы их накапливаете.

 

3. Метод UpDateCandle. Параметры метода.

В этот метод поступают данные с рынка. От самого старого трейда до самых свежих в порядке их появления в коннекторе.

Именно в нём нужно собирать свечи, аккуратно их складывая в массив CandlesAll.

Что входит в этот метод:

 

  1. time — Время данных.
  2. price — Цена трейда или цена центра стакана. В зависимости от того, из каких данных формируется свеча.
  3. volume — Объём трейда.
  4. canPushUp — Нужно ли высылать наверх данные об изменении цены. Если приходит FALSE, вызывать события обновления свечи не следует. Это означает, что идёт предварительная прогрузка серии на старте.
  5. side – сторона сделки. Buy / Sell. Это нужно для некоторых типов свечей. Например, Delta.

 

4. Метод UpDateCandle. Формирование свечей.

При формировании любых серий свечей можно условно разбить логику на три различных этапа:

 

  1. Данные пришли в первый раз, и нужно сформировать первую свечку.
  2. Уже какие-то свечи есть, и мы понимаем по какому-то признаку, что свечу нужно закрыть. В данном случае, признак закрытия – превышение кол-ва трейдов внутри свечи.
  3. Данные пришли внутри свечи. Нужно обновить её OHLC.

Рассмотрим три эти ситуации подробнее.

Этап 1. Данные пришли в первый раз.

 

  1. Создаём новый массив для хранения свечек.
  2. Ровняем стартовое время для первой свечи.
  3. Создаём свечку. Указываем её OHLCV, время и статус Started. Добавляем в массив.
  4. Высылаем наверх, если разрешено.
  5. Устанавливаем текущее кол-во трейдов в формирующейся свече. Это нужно только для свечей типа Tick.

 

Этап 2. Свечу пора закрывать.

 

  1. Устанавливаем для свечи статус Finished и высылаем наверх, если разрешено.
  2. Обрезаем стартовое время для новой свечи.
  3. Создаём свечку. Указываем её OHLCV, время и статус Started. Добавляем в массив.
  4. Высылаем наверх, если разрешено.
  5. Устанавливаем текущее кол-во трейдов в формирующейся свече. Это нужно только для свечей типа Tick. Выходим из метода.

 

Этап 3. Данные внутри свечи.

  1. Добавляем 1 к кол-ву трейдов в формирующейся свече. Это нужно только для свечей типа Tick. Выходим из метода.
  2. Обновляем OHLCV для текущей формирующейся свечи.
  3. Высылаем наверх, если разрешено.

Удачных алгоритмов!

Комментарии открыты для друзей!

Пост из серии «Свечи и преобразование ленты сделок».

OsEngine: https://github.com/AlexWan/OsEngine
FAQ: https://o-s-a.net/os-engine-faq
Поддержка OsEngine: https://t.me/osengine_official_support

Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php