Продолжаем цикл статей «Дивиденды в алготрейдинге».
Сегодня первая практическая статья — разбираем робота DividendCaptureScreener. Это классическая стратегия захвата дивидендов: покупаем акцию перед отсечкой реестра, получаем выплату и выходим.
1) Торговая идея
Робот ищет акции, у которых в ближайшие дни наступает отсечка реестра, и покупает их заранее — пока цена выше скользящей средней. На следующий день после отсечки позиция закрывается. Идея в том, чтобы поймать преддивидендное движение и выплату, не сидя в бумаге долго.

*Важно. Дивиденды у робота зачисляются роботу в ночь закрытия реестра, но зачисление дивидендов в общий портфель эмулятора – через 7 дней. Чтобы нельзя было использовать прибыль раньше, чем она будет зачислена в реальности.
2) Источники робота
BotTabScreener — скринер по множеству бумаг: робот одновременно следит за всем сетом акций и открывает ограниченное число позиций.
WikiMaster — источник данных о дивидендах: даты отсечек, размеры и доходность выплат. Работает и в тестере, и в бою.
3) Индикаторы
SMA — простая скользящая средняя. Фильтр тренда: покупаем только выше неё. Отключается в настройках.
4) Логика робота
Вход в позицию (всё должно совпасть):
1) По бумаге есть дивиденд с отсечкой в ближайшие N дней (по умолчанию 5).
2) Цена закрытия выше SMA (если фильтр включён).
3) Общее число открытых позиций робота меньше лимита MaxPositions.
4) Сейчас не входит в запрещённые периоды торговли.
Выход из позиции:
1) Наступил день, следующий за датой отсечки реестра.
2) Время сессии достигло заданного (по умолчанию 10:05).
Здесь есть важная деталь кода, на которую стоит обратить внимание. Дата реестра запоминается роботом в момент входа в сделку. Зачем? После отсечки метод GetDividendsFuture начинает смотреть уже на следующий дивиденд — и если бы робот проверял дату «на лету», условие выхода никогда бы не сработало. Запоминание этой даты решает эту проблему честно и просто.
5) Исходный код в проекте
Робот лежит в открытом доступе на ГитХабе:
6) Настройки робота
Разбираем параметры по порядку.
1) Regime — режим работы: On / Off / OnlyClosePosition (только закрытие имеющихся позиций).
2) Daysbeforeregistry — за сколько дней до отсечки искать вход. По умолчанию 5.
3) SMAperiod — период скользящей средней. По умолчанию 50.
4) UseSMAfilter — включить или выключить фильтр по SMA.
5) Maxpositions — максимум одновременно открытых позиций. По умолчанию 5.
6) Icebergorderscount — на сколько частей дробить заявку (айсберг-ордера). Полезно на неликвидных бумагах.
7) Exittime — время выхода на следующий день после отсечки. По умолчанию 10:05.
8) Nontradeperiods — запрещённые периоды торговли (утро, обед, вечер) с возможностью включать и настраивать каждый.
9) Volumetype — тип объёма: фиксированный объём или процент от депозита (по умолчанию 20%).
10) Volume — размер объёма.
11) Assetinportfolio — валюта портфеля для расчёта процентного объёма (рубли).
7) Запуск робота в тестере
1) Создайте сет из ликвидных акций MOEX — Сбербанк, Газпром, Лукойл и другие дивидендные бумаги.
2)Таймфрейм — 30 минут. Меньше не надо.
3)Включите выплату дивидендов в тестере. В эмуляторе биржи.
4)Запустите тест на нескольких годах истории, чтобы захватить разные сезоны выплат (весна и лето — самые «дивидендные» месяцы на MOEX).
Начисление дивидендов и их включение в тестере, можно посмотреть здесь:
8) Один из вариантов тестирования
Штатные настройки робота для ТОП 30 акций MOEX за 10 лет:
9) Риски и нюансы
Честно про слабые места стратегии:
1)Дивидендный гэп. После отсечки цена падает примерно на размер дивиденда — выплата сама по себе прибыли не гарантирует. SMA-фильтр и ранний выход нужны именно для борьбы с этим эффектом.
2)Комиссии. Сделки короткие, оборота много — смотрите на свой тариф.
3)Проскальзывание. На неликвидных бумагах пользуйтесь айсберг-ордерами и не лезьте туда, где спред съест выплату.
4)Налоги. С дивидендов удерживается налог — учитывайте это при подсчёте реальной доходности стратегии.
Следующая статья — KeltnerDividendScreener: торгуем тренд, но только в бумагах с хорошей дивидендной историей. Другой взгляд на те же данные. Подписывайтесь!
Удачных алгоритмов!

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