Начинаем обзор роботов-скринеров из публичной сборки OsEngine. Начинаем с самого простого, скринера на скользящих средних.
Робот входит в позицию, когда цена актива продержалась выше скользящей средней N свечей. Выходит по трейлинг-стопу.

1. Пример в проекте.
Для начала Вам следует открыть исходный код робота. Внутри проекта это здесь:

2. Создание источника BotTabScreener.
Из «необычного» в скринерах немного отличается создание источника и создание индикаторов:
- Блок кода, в котором мы создаём источник типа Screener. Сохраняем его в поле класса. Подписываемся на событие завершения свечи по какому-то инструменту.
- Так выглядит создание индикатора для источника Screener. Важно! Кол-во параметров, которое вы создаёте для индикатора, должно в точности совпадать с тем, что имеет индикатор внутри себя. В данном случае это длина скользящей и точка, по которой она считается.
3. Параметры робота.

- Regime – режим работы.
- Off – Выключен.
- On – Включен и будет входить в лонг.
- Max poses – максимальное кол-во позиций по разным инструментам одновременно.
- Slippage — проскальзывание для цен ордера в шагах цены инструмента.
- Volume type – режим выбора объёма.
- Contracts – кол-во контрактов инструмента.
- Contract currency – валюта контракта.
- Deposit percent – процент от депозита.
- Volume – значение объёма. Что именно, зависит от предыдущего пункта. В случае Contracts тут указывается объём инструмента. В случае Contract currency здесь указывается кол-во рублей или долларов, которыми нужно войти. В случае с Deposit percent здесь указывается % от общего депозита, которым нужно войти в контракт.
- Asset in portfolio – тут нужно указывать название валюты, которое будет использовано для расчёта объёма, если Вы выбрали тип объёма “Deposit percent”. В тестере оставляем «Prime». На крипте это обычно “USDT”. В АЛОР это «RUB».
- Trail Stop – размер подтягивающегося стоп-ордера.
- Sma length – длина скользящей средней.
4. Логика входа и выхода из позиции.
ЛОНГ
Вход, если N свечей находятся над скользящей средней. Т.е. входим не сразу по пересечению, а дожидаясь пока пройдёт определённое кол-во свечей.
Выход из позиции осуществляется по подтягивающемуся стоп-ордеру.
5. Изменение параметров индикатора из параметров робота.
Из интересного, при смене длины настроек для скользящей средней робот меняет настройки по всем своим источникам. Как это делается, можно посмотреть здесь:
- Подписываемся на событие обновления параметров пользователем.
- Для индикатора на скринере вводим новые параметры.
- Вызываем метод обновления параметров индикаторов во всех источниках скринера.
6. Что с профитом?
Тесты делаются на тех данных, которые мы скачали в начале серии. MOEX TOP. 30 минутный таймфрейм.
Идёт как-то вверх. Прибыльность от 0.15 до 0.4% можно найти.

Ничего выдающегося, если честно, можно использовать как пример исходного кода. Следующие два примера роботов будут показывать результаты сильно лучше.
Удачных алгоритмов!
Оглавление данной серии статей здесь: https://smart-lab.ru/company/os_engine/blog/1131003.php
Комментарии открыты для друзей!

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_suppor
Регистрируйся в АЛОР и получай бонусы: 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
