Продолжаем заниматься улучшением робота, который начали писать в предыдущей статье. Сегодня добавим в него индикатор и добавим торговую логику. После этого он у нас начнёт торговать.
На текущий момент у нас есть робот, который видит OsEngine и в который можно подключить данные:
Шаг 1. Добавляем в бота индикатор.
Для этого нам нужно:
- Создаём переменную типа Aindicator в теле класса.
- Внутри конструктора создаём её таким вот образом. Строка 1 отвечает за то, чтобы класс был создан на фабрике индикаторов. Строка 2 отвечает за то, что мы размещаем этот индикатор на источнике данных.
Шаг 2. Подписываемся на событие завершения свечи.
Для этого надо обратиться к источнику BotTabSimple, который мы создавали ранее. У него есть множество всяких событий, но мы в данном случае подпишемся на событие завершения свечи. Называется оно CandleFinishedEvent:
- Подписываемся на событие завершения свечи.
- Сам обработчик. Сюда будут приходить свечи каждый раз, когда свеча в источнике будет закрываться.
Шаг 3. Делаем логику входа и выхода.
Для этого добавляем в обработчик события завершения свечи этот код:
- Если свечей меньше 10, выходим из логики. Костыль, чтобы не было ошибок.
- Берём массив со всеми открытыми позициями.
- Берём у последней свечи Open и Close.
- Берём у индикатора текущее значение.
- Если позиций нет, то заходим в логику открытия позиции.
- Входить будем, когда Open последней свечи был ниже скользящей, а Close выше. Т.е. произошёл пробой скользящей, и мы закрепились выше.
- Если уже есть какая-то позиция, то заходим в логику её закрытия.
- Если ушли ниже скользящей, это сигнал о закрытии.
- Если последняя позиция не в статусе Open, то ничего не делаем. Мы закрываем только открытые позиции. Это Важно, т.к. по позиции уже могут быть закрывающие ордера. И нам спамить не нужно.
- Вызываем метод закрытия позиции по маркету.
На данном этапе робот в тестере начал торговать:
Удачных алгоритмов!
Пост из серии статей «Быстрый старт в программирование на OsEngine».
Комментарии открыты для друзей!
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