В этой статье рассмотрим пример роботов, которые умеют перекладываться из одной серии фьючерсов в другую и поддерживают тестирование на настоящих данных фьючерсов, а не склеек.
Эти роботы — технические примеры. С точки зрения алготрейдинга, они представляют для нас интерес в области логики выбора ближайшего фьючерса и закрытия позиции перед экспирацией.
Исходники внутри проекта
Робот FuturesTrendBollinger
Трендовый робот на индикаторе Боллинджер:
1) Входим в лонг по пробою верхней линии, выходим по пробою нижней. Шорт зеркально.
2) Дополнительно реализованы торговые периоды внутри дня и недели.
3) Закрытие позиции за 3 дня до экспирации.
Робот FuturesTrendPriceChannel
Трендовый робот на индикаторе адаптивный ценовой канал:
1) Входим в лонг по пробою верхней линии, выходим по пробою нижней. Шорт отсутствует, только лонг.
2) Дополнительно реализованы торговые периоды внутри дня и недели.
3) Закрытие позиции за 3 дня до экспирации.
Источник роботов — BotTabScreener
В источник сразу подгружаются все имеющиеся серии фьючерсов. Это происходит и в тестере, и в реале.
Роботы сами выбирают ближайший фьючерс и торгуют на нём.
Роботы сами закрывают позицию по мере приближения экспирации.
Так выглядит окно робота:
Механизм выбора фьючерса для торговли
В роботах есть отдельный метод GetFuturesToTrade, который за это отвечает:
Механизм закрытия позиций перед экспирацией
Внутри метода, отвечающего за закрытие позиции, есть отдельная ветка логики, которая смотрит, сколько дней осталось до экспирации фьючерса, и закрывает позицию, если осталось меньше 3-х дней:
Удачных алгоритмов!

https://smart-lab.ru/company/os_engine/blog/1024149.php
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Канал Научный трейдинг (Bad Quant): https://t.me/bad_quant