
Друзья мои, всем привет!
С сегодняшнего дня мы начинаем новый цикл статей — «Дивиденды в алготрейдинге». В нём мы разберём три робота, которые торгуют вокруг дивидендных выплат. Все три уже встроены в OsEngine, исходный код открыт и лежит на ГитХабе — берите, изучайте, улучшайте.
Но прежде чем открывать код, давайте разберёмся с базой. В этой статье — основные понятия и определения, без которых дальше будет непонятно. А в конце — оглавление всего сборника.
Поехали!
1) Что такое дивиденды
Дивиденды — это часть прибыли компании, которую она распределяет между акционерами. Купили акцию — получили право на свою долю выплаты.
Дивидендная доходность — это размер дивиденда, выраженный в процентах от цены акции. Например, акция стоит 100 рублей, дивиденд — 5 рублей. Доходность — 5%. Именно этот показатель наши роботы используют как фильтр: хорошие дивиденды от плохих отличаются в первую очередь доходностью.
Зачем это алготрейдеру? Затем, что дивидендные выплаты — это регулярные, заранее известные события. А всё регулярное и заранее известное можно превратить в торговую логику и протестировать на истории.
2) Дата отсечки реестра
Дата отсечки реестра (registryclosedate) — ключевое понятие всего сборника. Это день, в который компания фиксирует список акционеров, имеющих право на дивиденды. Попали в реестр — получили выплату. Не попали — нет.
Всё, что делают наши роботы, крутится вокруг этой даты: один покупает перед отсечкой, другой отсекает бумаги со слабой историей выплат.
3) Режим Т+1 на MOEX
Важный механический момент. На Московской бирже акции торгуются в режиме Т+1: расчёты по сделке происходят на следующий рабочий день после её заключения.
Что это значит на практике. Чтобы попасть в реестр на дату отсечки, акцию нужно купить минимум за один рабочий день до неё. Купили в день отсечки — в реестр вы уже не попадаете: ваши расчёты пройдут позже.
Роботы в сборнике уже знают в какой день надо покупать.
4) Дивидендный гэп
Дивидендный гэп — это падение цены акции после отсечки реестра, примерно на размер дивиденда.
Логика простая. До отсечки в цене акции «сидит» право на выплату. После отсечки право уходит тем, кто успел в реестр, и цена сбрасывает эту стоимость. Дивиденд 5 рублей — гэп около 5 рублей.
Из этого следует главная неприятность стратегии «купи перед отсечкой, получи дивиденд»: выплату-то вы получите, но цена упадёт примерно на ту же величину. Как с этим бороться — разбираем в статье №2. Спойлер: фильтры по тренду и точный момент выхода решают многое.
5) «Хорошие» и «плохие» дивиденды
В этом сборнике мы постоянно будем делить бумаги на две группы:
Дивидендно сильные — акции, которые стабильно платят с доходностью выше порога (в наших роботах по умолчанию это 2% и выше). Такие бумаги имеют поддержку покупателей — дивидендная история притягивает капитал.
Дивидендно слабые — акции с доходностью ниже порога или вовсе без выплат. Поддержки от дивидендных инвесторов у них нет, и в момент слабости рынка они падают охотнее.
Робот из статьи #3 торгует тренд только в сильных. Робот из статьи #4 шортит слабых. Симметрично и красиво.
6) Откуда роботы знают про дивиденды
Теперь про техническую сторону.
Данные о дивидендах в платформу подтягивает OsEngineWiki — встроенный модуль, который хранит даты и размеры выплат по бумагам. Роботу доступны два взгляда на эти данные:
GetDividendsFuture — ближайшая будущая выплата: дата отсечки, размер дивиденда, доходность. Нужна стратегиям, которые готовятся к событию заранее (как наш захватчик).
GetDividendsPast — фактическая выплата, которая уже состоялась: фиксируется в день отсечки и остаётся в истории. Нужна стратегиям-фильтрам («платила ли бумага хорошие дивиденды недавно?»).
И самое важное: Wiki подключается и к тестеру, и к оптимизатору. Это значит, что дивидендные стратегии в OsEngine честно тестируются на истории — робот в прошлом «знает» только то, что было известно на тот момент.
7) Тестер и оптимизатор OsEngine поддерживает начисление дивидендов
И в тестере, и оптимизаторе реализовано начисление дивидендов. Схожее с тем как это работает в реальности на MOEX.
Если робот удерживает акцию в ночь через день отсечение реестра, то ему положены дивиденды.
Они начисляются на счёт робота сразу, а в общий портфель через неделю. Чтобы сумма не участвовала в новых сделках, пока не поступит на счёт.
Оглавление сборника
Четыре статьи. От простого к сложному, от покупок к шортам:
Статья №1. Введение и оглавление — вы здесь. Понятия, механика, данные.
Статья №2. DividendCaptureScreener— захват дивидендов. Классическая стратегия: покупаем акцию за несколько дней до отсечки реестра, продаём сразу после. Плюс SMA-фильтр против дивидендного гэпа.
Статья №3. KeltnerDividendScreener— тренд в дивидендно сильных. Покупаем пробой канала Кельтнера, но только в бумагах, которые недавно платили хорошие дивиденды. Дивиденды здесь — фильтр качества.
Статья №4. ShortBadDividends— шорт дивидендно слабых. Зеркальная стратегия: шортим пробой вниз в бумагах со слабыми выплатами. Нет дивидендной поддержки — есть куда падать.
Удачных алгоритмов!

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