Блог им. Quantrum
В прошлый раз мы рассмотрели алгоритм торговли разворотов по сигналам RSI. В этой статье посмотрим, можно ли следовать в направлении движения RSI. Ведь индикатор показывает именно направление изменения цены. Алгоритмы пишем в Quantopian на Python.
В этот раз:
Чуть подробнее об RSI можно прочитать в прошлой статье. Индикатор показывает отношение средних роста и падения цены. Значение выше 50 указывает на рост цены, ниже — на падение.
На графике показаны периоды, когда мы планируем находиться в позиции.
ПредположениеRSI учитывает движение цены и показывает общую тенденцию в прошлом. Обычно тенденция сохраняется некоторое время, на что мы и сделаем ставку.
Сделаем следующее:
В конце статьи исходный код на Python и таблица с результатами.
УсловияЛучшая доходность получена при торговле только длинными позициями. Лучший период из проверенных — 20 дней. SPY в одиночестве дает скромные результаты, сохраняя довольно низкую просадку.
Проверка сигналов в коде:
Код доступен на Quantrum.me
Лучший результат показала торговля основными секторами. Секторы покупаются на равные доли портфеля, в случае наличия сигналов и условий для удержания. При появлении нового сектора или исключении имеющегося производится балансировка на равные доли.
Секторы показывают просадку в -46%, которую попробуем победить далее.
На графике торгуем SPY. Лучшие результаты снова только на длинных позициях и 20-ти периодном индикаторе. На уровне 70-ти на часовом графике мы открывали позицию. Закрывали ее на 70-ом уровне на дневном графике или на 30-ом уровне часового графика, если цена развернулась. Просадка на приемлемом уровне в -16%. До 2009 года алгоритм «спал».
Подготовка часовой истории описана в этой статье. Ниже примеры сигналов из кода:
Код доступен на Quantrum.me
Данная стратегия тестируется значительно дольше по сравнению с дневной историей. Это усложняет ее изучение.
Победителем сегодняшних тестов является алгоритм торговли секторами в длинную по 20-дневному RSI. Дополнительно тренд активов фильтруется пересечением SMA(20) и SMA(200). Алгоритм обгоняет SPY по стратегии «Купи и держи«, имея уровень просадки в -27%.
Выдержки из кода:
Код доступен на Quantrum.me
Стратегия | Доход | Просадка | Кол-во сделок | Alpha | Beta |
---|---|---|---|---|---|
SPY, Long*, 10** | +19% | -37% | 133/113 | -0.01 | 0.34 |
SPY, Short, 10 | -46% | -49% | 154/154 | -0.01 | -0.44 |
SPY, Long&Short, 10 | -10% | -52% | 272/197 | -0.02 | 0.22 |
SPY, Long, 14 | +50% | -30% | 100/74 | 0.01 | 0.31 |
SPY, Short, 14 | -49% | -50% | 162/162 | -0.00 | -0.42 |
SPY, Long&Short, 14 | -7% | -54% | 205/155 | -0.02 | 0.19 |
Sectors, Long, 14 | +223% | -45% | 860/898 | 0.04 | 0.60 |
SPY, Long, 20 | +102% | -15% | 71/44 | 0.03 | 0.30 |
SPY, Short, 20 | -47% | -49% | 123/123 | -0.00 | -0.42 |
SPY, Long&Short, 20 | +28% | -42% | 93/108 | 0.07 | -0.33 |
Sectors, Long, 20 | +269% | -46% | 927/1011 | 0.06 | 0.58 |
Разные таймфреймы | |||||
SPY, Long, H/D***, 14 | +44% | -44% | 153/139 | 0.00 | 0.30 |
SPY, Short, H/D, 14 | -22% | -28% | 356/358 | -0.01 | -0.06 |
SPY, Long&Short, H/D, 14 | -33% | -53% | 176/379 | 0.01 | -0.22 |
SPY, Long, H/D, 20 | +155% | -16% | 71/58 | 0.05 | 0.24 |
Sectors, Long, H/D, 20 | +6% | -59% | 946/1317 | -0.03 | 0.50 |
Фильтр по SMA20 и SMA200 | |||||
SPY, Long, SMA20x200, 14 | +43% | -21% | 64/44 | 0.01 | 0.21 |
Sectors, Long, SMA20x200, 14 | +208% | -21% | 918/1001 | 0.06 | 0.41 |
Sectors, Long&Short, SMA20x200, 14 | +133% | -41% | 1167/1294 | 0.12 | -0.32 |
SPY, Long, SMA20x200, 20 | +53% | -19% | 57/40 | 0.02 | 0.20 |
Sectors, Long, SMA20x200, 20 | +304% | -27% | 714/809 | 0.08 | 0.44 |
Sectors, Long&Short, SMA20x200, 20 | +228% | -49% | 1078/1159 | 0.08 | 0.24 |
Код доступен на Quantrum.me
Результаты подтверждают трендовую природу индикатора. Стратегия следования показывает лучшую доходность в сравнении со стратегией разворотов.
Лучшие результаты оказались при использовании сигналов за 2 недели, RSI(20). Сильное влияние оказывает диапазон просадки значения RSI при удержании позиции. Ниже изменение доходности при торговле секторами, которые были получены при разных уровнях RSI:
Уменьшить просадку в стратегиях позволил фильтр по положению скользящих средних, SMA(20) и SMA(200).
При торговле только короткими позициями положительных результатов достичь не удалось. Падение рынка сопровождается высокой волатильностью. Здесь может помочь увеличение диапазона удержания позиций по уровню RSI. Может быть, контроль волатильности самого RSI.
В следующий раз будем тестировать сигналы пересечения разных периодов индикатора RSI. Это будет тоже стратегия следования.
В комментариях напишите ваше мнение о статье. Укажите на недочеты и расскажите о вашем опыте использования RSI.
Александр Румянцев aka «iamraa»
Автор Quantrum.me
Интересуетесь алготрейдингом на Python? Присоединяйтесь к команде. Пишите в личку или на email.
Обучение среднесрочному трейдингу на MindSpace.ru.