Изображение блога
OS_Engine_team
OS_Engine_team Блог компании Os_Engine
03 августа 2024, 13:29

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3

Продолжаем заниматься улучшением робота, который начали писать в предыдущей статье. Сегодня добавим в него индикатор и добавим торговую логику. После этого он у нас начнёт торговать.

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3 

На текущий момент у нас есть робот, который видит OsEngine и в который можно подключить данные:

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3 

 

Шаг 1. Добавляем в бота индикатор.

Для этого нам нужно:

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3

  1. Создаём переменную типа Aindicator в теле класса.
  2. Внутри конструктора создаём её таким вот образом. Строка 1 отвечает за то, чтобы класс был создан на фабрике индикаторов. Строка 2 отвечает за то, что мы размещаем этот индикатор на источнике данных.

 

Шаг 2.  Подписываемся на событие завершения свечи.

Для этого надо обратиться к источнику BotTabSimple, который мы создавали ранее. У него есть множество всяких событий, но мы в данном случае подпишемся на событие завершения свечи. Называется оно CandleFinishedEvent:

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3 

  1. Подписываемся на событие завершения свечи.
  2. Сам обработчик. Сюда будут приходить свечи каждый раз, когда свеча в источнике будет закрываться.

 

Шаг 3. Делаем логику входа и выхода.

Для этого добавляем в обработчик события завершения свечи этот код:

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3

  1. Если свечей меньше 10, выходим из логики. Костыль, чтобы не было ошибок.
  2. Берём массив со всеми открытыми позициями.
  3. Берём у последней свечи Open и Close.
  4. Берём у индикатора текущее значение.
  5. Если позиций нет, то заходим в логику открытия позиции.
  6. Входить будем, когда Open последней свечи был ниже скользящей, а Close выше. Т.е. произошёл пробой скользящей, и мы закрепились выше.
  7. Если уже есть какая-то позиция, то заходим в логику её закрытия.
  8. Если ушли ниже скользящей, это сигнал о закрытии.
  9. Если последняя позиция не в статусе Open, то ничего не делаем. Мы закрываем только открытые позиции. Это Важно, т.к. по позиции уже могут быть закрывающие ордера. И нам спамить не нужно.
  10. Вызываем метод закрытия позиции по маркету.

На данном этапе робот в тестере начал торговать:

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3

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

Пост из серии статей «Быстрый старт в программирование на OsEngine».

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

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка 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

Добавляем роботу индикатор и торговую логику. Быстрый старт в программировании OsEngine #3

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн