Дивиденды в алготрейдинге №3: KeltnerDividendScreener

Третья статья цикла «Дивиденды в алготрейдинге».
В ней разбираем робота KeltnerDividendScreener — трендовую стратегию, в которой дивиденды работают фильтром качества бумаг.
1) Торговая идея
Робот покупает пробой верхней границы канала Кельтнера, но только в тех акциях, которые платили ранее дивиденды с доходностью выше порога.
Логика такая: стабильные хорошие выплаты — признак здоровой компании, а тренды в таких бумагах надёжнее. Робот торгует только в Long.
Дивиденды тоже иногда получаем:
*Важно. Дивиденды у робота зачисляются роботу в ночь закрытия реестра, но зачисление дивидендов в общий портфель эмулятора происходит через 7 дней для того, чтобы нельзя было использовать прибыль раньше, чем она будет зачислена в реальности.
2) Источники робота
BotTabScreener — скринер по множеству бумаг с лимитом открытых позиций.
WikiMaster — данные о прошлых выплатах через метод GetDividendsPast: робот смотрит, что бумага платила в последние N дней.
3) Индикаторы
KeltnerChannel — канал Кельтнера: средняя линия (EMA) плюс-минус ATR с множителем. Пробой границ канала — сигнал тренда.
4) Логика робота
Вход в Long (всё должно совпасть):
1) Свеча закрылась выше верхней линии канала Кельтнера — пробой вверх.
2) За последние N дней (по умолчанию 30) у бумаги была выплата с доходностью выше порога (по умолчанию 2%).
3) Открытых позиций меньше лимита MaxPositions.
4) Сейчас не входит в запрещённые периоды торговли.
Выход из позиции:
1) Свеча закрылась ниже нижней линии канала Кельтнера — тренд сломался.
Обратите внимание: здесь, в отличие от робота-захватчика из статьи #2, используются прошлые выплаты. Мы не готовимся к конкретной отсечке — мы отбираем бумаги по дивидендной истории. Это ставка на поведение компании, а не на одно событие.
5) Исходный код в проекте
Робот в открытом доступе на ГитХабе:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Robots/Dividends/KeltnerDividendScreener.cs
Куда смотреть в коде: метод IsDividendFilterPassed — дивидендный фильтр, методы входа и выхода по линиям канала.
6) Настройки робота
1) Regime — режим работы: On / Off / OnlyClosePosition.
2) EMA period — период средней линии канала. По умолчанию 300.
3) ATR period — период ATR для ширины канала. По умолчанию 20.
4) Multiplier — множитель ATR. По умолчанию 4.0.
5) Lookback days — глубина поиска прошлых выплат, дней. По умолчанию 30.
6) Min dividend yield % — минимальная доходность выплаты для прохождения фильтра. По умолчанию 2%.
7) Max positions — максимум одновременных позиций.
8) Iceberg orders count — дробление заявки.
9) Non trade periods — запрещённые периоды торговли.
10) Volume type / Volume / Asset in portfolio — управление объёмом позиции.
7) Запуск робота в тестере
1) Сет — ликвидные акции MOEX.
2) Таймфрейм — 30 минут.
3) Wiki подключит историю выплат автоматически — фильтр будет работать и на прошлых данных.
4) Тестируйте на длинных участках: трендовым стратегиям нужны разные фазы рынка.
8) Один из вариантов тестирования
Удачных алгоритмов!
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
https://www.tbank.ru/invest/
Это отрывок статьи. Полную версию читайте на сайте источника по ссылке ниже.
Источник: Smart-Lab