Продолжаем цикл «Сектора в алго». Базу мы собрали: девять секторов, 39 бумаг. Теперь разберём первого робота сборника. SectorsSetBollingerMomentum торгует импульсный пробой полос Боллинджера, но только внутри самых сильных секторов рынка.

Робот отвечает на два вопроса: ГДЕ торговать и КОГДА входить.
Где — решает монитор секторов. На каждой бумаге каждого сектора считается RSI. Средний RSI сектора — это его сила прямо сейчас. Сектора сортируются по силе, и торговать разрешено только в топ-N (по умолчанию — в пяти). Слабые сектора робот игнорирует полностью.
Когда — решает импульсный пробой. Внутри разрешённого сектора робот ждёт, когда бумага разгонится: моментум выше порога, цена ушла выше середины канала Боллинджера, но ещё не над верхней полосой. Тогда на верхнюю полосу выставляется стоп-заявка на покупку: сработает — значит, пробой состоялся.
Итого: сильный сектор + разогнавшаяся бумага + подтверждённый пробой = вход в лонг.
Списки разворачиваются автоматически: кнопка на вкладке Auto deploy сама прописывает стандартные бумаги по секторам, в тестере — из выбранного сета данных. Таймфрейм работы — 30 минут.
На каждой бумаге каждого скринера крутятся четыре индикатора:
1) Bollinger (штатно длина 40, отклонение 2.1) — канал входа и выхода. Верхняя полоса — цена активации входа; По нижней полосе идёт трейлинг-стоп.
2) Momentum (штатно период 65) — фильтр импульса: вход разрешён, только если моментум выше порога (по умолчанию 101.1).
3) Envelop (длина 170, отклонение 1.6) — фильтр: если цена ниже верхней линии Envelop, лонг запрещён.
4) RSI (длина 64) — монитор секторов. В торговых условиях не участвует, только рейтинг.
Каждую закрытую свечу робот пересчитывает рейтинг секторов и проходит по всем бумагам. Для входа в лонг должны совпасть все условия:
— сектор бумаги в топ-N рейтинга;
— по бумаге нет позиции и открытых заявок, в секторе нет позиций (жёстко одна позиция на сектор), общий лимит позиций не достигнут;
— моментум выше порога;
— цена выше середины канала Боллинджера, но ниже верхней полосы;
— цена не ниже верхней линии Envelop.
Если всё сошлось, то выставляется стоп-заявка на покупку по цене верхней полосы. Живёт она ровно одну свечу: не сработала — умирает, и по новой свече выставляется заново, если сигнал ещё актуален. Заявки айсберговые: крупный объём разбивается на части, чтобы не двигать стакан.
Выход — трейлинг-стоп по линии Боллинджера (по умолчанию — по нижней полосе). Каждую свечу стоп переставляется по актуальному значению линии, только в сторону прибыли. Пока тренд тянет — сидим, развернулся — стоп выносит.
В неторговые часы (по умолчанию торгуем с 10:00 до 18:00, выходные — мимо) заявки на вход отменяются, а стопы открытых позиций просто спят — утром всё взводится обратно.
Робот лежит в открытом коде OsEngine: папка Robots, подпапка Sectors, файл SectorsSetBollingerMomentum.cs. Рядом — его напарник SectorsSetAlligatorTurtle.cs и старший родственник SectorsKeltner.cs.
Код разбит на смысловые блоки: конструктор и параметры, авто-развёртывание, точки входа в логику, рейтинг секторов, торговая логика, расчёт объёма, монитор. Всё читается сверху вниз, как книга — берите и разбирайте.
Ссылка на исходный код робота на ГитХабе: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Robots/Sectors/SectorsSetBollingerMomentum.cs
Параметры разложены по вкладкам.
Вкладка Base: режим On/Off, неторговые периоды (кнопка с диалогом), объём позиции (по умолчанию 25% депозита на позицию), максимум позиций (4), параметры айсбергов; настройки монитора: длина RSI (64), сколько топ-секторов торгуем (5), фильтр отбора бумаги внутри сектора (Strongest — берём самую сильную по RSI).
Вкладка Indicators: длина и отклонение Боллинджера (40 и 2.1), период и порог моментума (65 и 101.1), линия выхода (Down), длина и отклонение Envelop (170 и 1.6).
Вкладка Auto deploy: номер портфеля, таймфрейм и кнопка развёртывания стандартных списков.
Все стандартные значения взяты не с потолка, а найдены оптимизацией в OsOptimizer на истории 2015–2026 и потом проверены руками на тестере.
Порядок такой. Сначала через OsData скачиваем сет данных (Set_SectorsMoex30Min2015, 30-минутки с 2015 года). В тестере выбираем сет, добавляем робота, на вкладке Auto deploy жмём Deploy tester securities — источники заполнятся сами. Режим — On. Старт.
В окне параметров есть вкладка Monitor: таблица всех бумаг по секторам с RSI, рейтингом и отметкой In top. По ней видно, где робот сейчас «охотится». Кнопка Chart в строке открывает график бумаги одним кликом.
Стандартный прогон: весь набор бумаг, таймфрейм 30 минут, история с января 2015 по сентябрь 2026, комиссия 0.04%, объём 25% депозита на позицию, максимум 4 позиции, топ-5 секторов, фильтр Strongest.

На этом варианте робот сделал +442% за одиннадцать лет, 2325 сделок, максимальная просадка −10%. Кривая капитала ровная, без длинных провалов — и это только один из двух роботов комплекта. В следующей статье разберём второго: SectorsSetAlligatorTurtle, черепаший пробой с Аллигатором Вильямса.
Подписывайтесь, будет интересно!
Удачных алгоритмов!

https://smart-lab.ru/company/os_engine/blog/1024149.php
Скачать OsEngine: https://github.com/AlexWan/OsEngine
Официальная поддержка OsEngine в MAX:https://max
Канал Научный трейдинг в MAX:https://max.ru/
Поддержка OsEngine в Телеграм:https://t.me/osengine_official_support
Канал Научный трейдинг (Bad Quant) в Телеграм:https://t.me/bad_quant