В прошлый раз мы проверили трендовую природу индикатора RSI. Нами были получены интересные результаты, особенно при торговле основными секторами. В этот раз мы продолжим двигаться в направлении изменения индикатора RSI, но будем использовать сигнал разворота тенденции.
Рассмотрим пересечение индикаторов RSI разных периодов. Алгоритмы пишем в Quantopian на Python.
В этот раз:
Индикатор RSI показывает отношение средних роста и падения цены. Подробнее о RSI можно прочитать в первой статье. Мы же будем проверять сигналы разворота тенденции движения цены. Как известно, короткий период индикатора быстрее реагирует на изменение цены, а длинный — медленнее. Пересечение этих двух периодов позволит нам получить сигнал разворота, чуть раньше.
На графике показаны периоды, когда мы планируем находиться в позиции. Быстрый индикатор часто пересекает медленный, и для сокращения количества транзакций мы добавим диапазон индикатора RSI для удержания позиции после открытия.
RSI учитывает движение цены и показывает общую тенденцию в прошлом. Быстрый индикатор RSI с меньшим периодом реагирует быстрее и раньше разворачивается относительно медленного индикатора с бо́льшим периодом. На основании этого мы получим сигнал о смене тенденции раньше.
Сделаем следующее:
В конце статьи исходный код на Python и таблица с результатами.
В первую очередь попробуем реагировать раньше толпы и будем получать сигналы при пересечении 13-дневного и 65-дневного периодов RSI. SPY при этих настройках проявляет себя плохо. Особенно в периоды отсутствия ярко выраженных трендов. Алгоритм находится в открытых позициях 61% времени (за весь период капитал вложен в SPY только 61% времени, примерно 8 из 13 лет).
Код проверки сигналов:
Код доступен на Quantrum.me
Торговля основными секторами позволяет заработать и опередить SPY по стратегии "Купи и держи". При бэктесте лучшие результаты показал алгоритм с диапазоном удержания ±12 от медленного RSI. Опережающая доходность есть только при торговле в длинную. Стратегии с короткими позициями показывают отрицательную доходность, и я их в результаты не добавлял. При тестировании алгоритм находится в открытых позициях 91% времени.
Стандартный 14-дневный и 70-дневный периоды показывают в сегодняшних тестах лучшую доходность при умеренной просадке в -24%. Алгоритм в открытых позициях 91% процент времени. И снова лучшими были тесты с диапазоном удержания ±12 от медленного RSI. Предположу, что можно подобрать более удачную величину диапазона. Попробуйте.
Увеличенные периоды до 20 и 100 дней положительно отразились на доходности торговли одиноким фондом SPY. Уменьшив количество сделок в сравнении с 13х65 и увеличив время в позиции до 63%.
Торговля равными долями секторов снова вырвалась вперед. Удалось снизить просадку до -21%. Видно, что стратегия плохо себя ведет в периоды боковика и коррекций с 2015 года. Капитал работает 94% времени, что очень хорошо. Есть явный период простоя в районе 2009 года.
Фильтрация трендов с помощью скользящих средних SMA(20) и SMA(200) лишь ухудшила наши результаты. Само по себе пересечение разных периодов прекрасно фильтрует направление основной тенденции цены. Лучшие показатели доходности при фильтрации сохранились на максимальных периодах RSI(20x100).
Стратегия | Доход | Просадка | Кол-во сделок | Alpha | Beta |
---|---|---|---|---|---|
SPY, Long*, 13×65/10** | +13% | -20% | 88/66*** | -0.01 | 0.23 |
SPY, Long, 13×65/12 | +45% | -21% | 70/49 | 0.01 | 0.25 |
SPY, Long&Short, 13×65/10 | +18% | -29% | 120/105 | 0.04 | -0.23 |
Sectors, Long, 13×65/10 | +271% | -29% | 1003/1083 | 0.07 | 0.44 |
Sectors, Long, 13×65/12 | +273% | -25% | 946/1016 | 0.07 | 0.46 |
Sectors, Long&Short, 13×65/10 | +69% | -39% | 1285/1413 | 0.09 | -0.33 |
RSI(14×70) | |||||
SPY, Long, 14×70/10 | +54% | -21% | 77/55 | 0.01 | 0.24 |
SPY, Long, 14×70/12 | +60% | -21% | 69/44 | 0.02 | 0.26 |
SPY, Long&Short, 14×70/10 | +75% | -25% | 103/87 | 0.07 | -0.19 |
SPY, Long, 14×70/10, SMA20x200 | +40% | -19% | 72/52 | 0.01 | 0.20 |
SPY, Long&Short, 14×70/10, SMA20x200 | +59% | -26% | 89/83 | 0.07 | -0.22 |
Sectors, Long, 14×70/10 | +277% | -23% | 951/1042 | 0.07 | 0.47 |
Sectors, Long, 14×70/12 | +305% | -24% | 905/988 | 0.07 | 0.48 |
Sectors, Long&Short, 14×70/10 | +95% | -40% | 1209/1348 | 0.10 | -0.32 |
Sectors, Long, 14×70/10, SMA20x200 | +239% | -25% | 910/997 | 0.06 | 0.44 |
Sectors, Long&Short, 14×70/10, SMA20x200 | +104% | -34% | 1165/1293 | 0.10 | -0.30 |
RSI(20×100) | |||||
SPY, Long, 20×100/10 | +69% | -20% | 53/33 | 0.02 | 0.26 |
SPY, Long, 20×100/12 | +46% | -23% | 48/28 | 0.01 | 0.29 |
SPY, Long&Short, 20×100/10 | +77% | -31% | 68/54 | 0.07 | -0.18 |
SPY, Long, 20×100/10, SMA20x200 | +48% | -16% | 48/31 | 0.01 | 0.21 |
SPY, Long&Short, 20×100/10, SMA20x200 | +84% | -27% | 61/49 | 0.08 | -0.22 |
Sectors, Long, 20×100/10 | +290% | -24% | 736/837 | 0.07 | 0.50 |
Sectors, Long, 20×100/12 | +261% | -21% | 703/782 | 0.06 | 0.49 |
Sectors, Long&Short, 20×100/10 | +137% | -34% | 894/1048 | 0.10 | -0.23 |
Sectors, Long, 20×100/10, SMA20x200 | +250% | -27% | 668/783 | 0.06 | 0.46 |
Sectors, Long&Short, 20×100/10, SMA20x200 | +230% | -31% | 830/989 | 0.13 | -0.27 |
Поделитесь статьей для доступа к репозиторию с исходным кодом. Вопросы по коду пишите в комментариях.
Код доступен на Quantrum.me
Опять не удалось получить доходности при торговле в короткую. Тесты убыточны с большими просадками. Максимальная доходность схожа с предыдущей стратегией следования за индикатором RSI. Сегодняшние тесты показывают чуть меньшую просадку.
Результаты может улучшить оптимизация алгоритма и точный подбор периодов индикаторов и диапазона удержания. Торговля основными секторами является лучшим решением для данной стратегии.
В следующий раз мы протестируем сигналы разворотов по RSI для коротких периодов (2/5 дней).
В комментариях напишите ваше мнение о стратегии. Что можно улучшить? Где есть ошибки?
Обучение внутредневному трейдингу в United Traders.Александр Румянцев aka «i.am.raa»
Автор Quantrum.me
Интересуетесь алготрейдингом на Python? Присоединяйтесь к команде. Пишите в личку или на email.
Результаты это, конечно же, хорошо, а вот есть у вас запущенные алгоритмы на реальных счетах?