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

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

1. Создаём переменную типа Aindicator в теле класса.
2. Внутри конструктора создаём её таким вот образом. Строка 1 отвечает за то, чтобы класс был создан на фабрике индикаторов. Строка 2 отвечает за то, что мы размещаем этот индикатор на источнике данных.
Для этого надо обратиться к источнику BotTabSimple, который мы создавали ранее. У него есть множество всяких событий, но мы в данном случае подпишемся на событие завершения свечи. Называется оно CandleFinishedEvent:

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

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

Удачных алгоритмов!
P.S.
Os Engine поддержка терминала: https://t.me/osengine_official_support
Обсуждаем в телеграмме: https://t.me/o_s_a_chat
Канал проекта: https://t.me/bad_quant
Комментарии