Дивиденды в алготрейдинге №2: DividendCaptureScreener — захват дивидендов

Дивиденды в алготрейдинге №2: DividendCaptureScreener — захват дивидендов

Продолжаем цикл статей «Дивиденды в алготрейдинге». 

 

Сегодня первая практическая статья — разбираем робота DividendCaptureScreener. Это классическая стратегия захвата дивидендов: покупаем акцию перед отсечкой реестра, получаем выплату и выходим.

 

1) Торговая идея

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

*Важно. Дивиденды у робота зачисляются роботу в ночь закрытия реестра, но зачисление дивидендов в общий портфель эмулятора – через 7 дней. Чтобы нельзя было использовать прибыль раньше, чем она будет зачислена в реальности.

 

2) Источники робота

BotTabScreener — скринер по множеству бумаг: робот одновременно следит за всем сетом акций и открывает ограниченное число позиций.

WikiMaster — источник данных о дивидендах: даты отсечек, размеры и доходность выплат. Работает и в тестере, и в бою.

 

3) Индикаторы

SMA — простая скользящая средняя. Фильтр тренда: покупаем только выше неё. Отключается в настройках.

 

4) Логика робота

Вход в позицию (всё должно совпасть):

1) По бумаге есть дивиденд с отсечкой в ближайшие N дней (по умолчанию 5).
2) Цена закрытия выше SMA (если фильтр включён).
3) Общее число открытых позиций робота меньше лимита MaxPositions.
4) Сейчас не входит в запрещённые периоды торговли.

Выход из позиции:

1) Наступил день, следующий за датой отсечки реестра.
2) Время сессии достигло заданного (по умолчанию 10:05).

Здесь есть важная деталь кода, на которую стоит обратить внимание. Дата реестра запоминается роботом в момент входа в сделку. Зачем? После отсечки метод GetDividendsFuture начинает смотреть уже на следующий дивиденд — и если бы робот проверял дату «на лету», условие выхода никогда бы не сработало. Запоминание этой даты решает эту проблему честно и просто.

 

5) Исходный код в проекте

Робот лежит в открытом доступе на ГитХабе:

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Robots/Dividends/DividendCaptureScreener.cs

 

6) Настройки робота

Разбираем параметры по порядку.

1) Regime — режим работы: On / Off / OnlyClosePosition (только закрытие имеющихся позиций).
2) Days before registry — за сколько дней до отсечки искать вход. По умолчанию 5.
3) SMA period — период скользящей средней. По умолчанию 50.
4) Use SMA filter — включить или выключить фильтр по SMA.
5) Max positions — максимум одновременно открытых позиций. По умолчанию 5.
6) Iceberg orders count — на сколько частей дробить заявку (айсберг-ордера). Полезно на неликвидных бумагах.
7) Exit time — время выхода на следующий день после отсечки. По умолчанию 10:05.
8) Non trade periods — запрещённые периоды торговли (утро, обед, вечер) с возможностью включать и настраивать каждый.
9) Volume type — тип объёма: фиксированный объём или процент от депозита (по умолчанию 20%).
10) Volume — размер объёма.
11) Asset in portfolio — валюта портфеля для расчёта процентного объёма (рубли).

 

7) Запуск робота в тестере

1) Создайте сет из ликвидных акций MOEX — Сбербанк, Газпром, Лукойл и другие дивидендные бумаги.
2) Таймфрейм — 30 минут. Меньше не надо.
3) Включите выплату дивидендов в тестере. В эмуляторе биржи.
4) Запустите тест на нескольких годах истории, чтобы захватить разные сезоны выплат (весна и лето — самые «дивидендные» месяцы на MOEX).

 

Начисление дивидендов и их включение в тестере, можно посмотреть здесь:

 

8) Один из вариантов тестирования

Штатные настройки робота для ТОП 30 акций MOEX за 10 лет:

 

9) Риски и нюансы

Честно про слабые места стратегии:

1) Дивидендный гэп. После отсечки цена падает примерно на размер дивиденда — выплата сама по себе прибыли не гарантирует. SMA-фильтр и ранний выход нужны именно для борьбы с этим эффектом.
2) Комиссии. Сделки короткие, оборота много — смотрите на свой тариф.
3) Проскальзывание. На неликвидных бумагах пользуйтесь айсберг-ордерами и не лезьте туда, где спред съест выплату.
4) Налоги. С дивидендов удерживается налог — учитывайте это при подсчёте реальной доходности стратегии.

 

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

 

Удачных алгоритмов!

Скачать 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

https://www.tbank.ru/invest/

18:26
94

Комментарии

Нет комментариев. Ваш будет первым!