Блог им. Quantrum

Бэктестинг: следуем за RSI

В прошлый раз мы рассмотрели алгоритм торговли разворотов по сигналам RSI. В этой статье посмотрим, можно ли следовать в направлении движения RSI. Ведь индикатор показывает именно направление изменения цены. Алгоритмы пишем в Quantopian на Python.

В этот раз:

  • Следуем в направлении RSI на одном таймфрейме (день).
  • Следуем в направлении RSI на разных таймфреймах (час, день).
  • Отфильтруем тренд актива средними.

Чуть подробнее об RSI можно прочитать в прошлой статье. Индикатор показывает отношение средних роста и падения цены. Значение выше 50 указывает на рост цены, ниже — на падение.

Бэктестинг: следуем за RSI

На графике показаны периоды, когда мы планируем находиться в позиции.

Предположение

RSI учитывает движение цены и показывает общую тенденцию в прошлом. Обычно тенденция сохраняется некоторое время, на что мы и сделаем ставку.

Сделаем следующее:

  • Откроем длинные позиции, когда RSI пересек 55 снизу вверх и короткие позиции, когда RSI пересек 45 сверху вниз. Закроем длинные ниже 45, а короткие выше 55.
  • Совместим разные таймфреймы. Будем открываться выше 70 на часовом графике и закрываться выше 70 на дневном. Дополнительный сигнал закрытия будет ниже 30 на часовом графике.
  • Проверим, помогут ли нам скользящие средние для улучшения результатов.

В конце статьи исходный код на Python и таблица с результатами.

Условия
  • Торгуем SPY или фондами основных секторов — XLY, XLK, XLI, XLB, XLE, XLP, XLV, XLU, XLF, XLRE.
  • Капитал $100 000.
  • Торгуем с 2004 до 2017 года (13 лет).
  • Торгуем на открытии рынка. Каждый час для часовых сигналов.
  • Периоды индикатора: 10, 14, 20.
  • Направления: только длинные позиции, только короткие, торгуем в обе стороны.
  • Без стопов.
Стратегия следования

Бэктестинг: следуем за RSI

Лучшая доходность получена при торговле только длинными позициями. Лучший период из проверенных — 20 дней. SPY в одиночестве дает скромные результаты, сохраняя довольно низкую просадку.

Проверка сигналов в коде:

Код доступен на Quantrum.me

Лучший результат показала торговля основными секторами. Секторы покупаются на равные доли портфеля, в случае наличия сигналов и условий для удержания. При появлении нового сектора или исключении имеющегося производится балансировка на равные доли.

Секторы показывают просадку в -46%, которую попробуем победить далее.

Бэктестинг: следуем за RSI

Открываемся на часовиках, закрываемся на днях

Бэктестинг: следуем за RSI

На графике торгуем SPY. Лучшие результаты снова только на длинных позициях и 20-ти периодном индикаторе. На уровне 70-ти на часовом графике мы открывали позицию. Закрывали ее на 70-ом уровне на дневном графике или на 30-ом уровне часового графика, если цена развернулась. Просадка на приемлемом уровне в -16%. До 2009 года алгоритм «спал».

Подготовка часовой истории описана в этой статье. Ниже примеры сигналов из кода:

Код доступен на Quantrum.me

Данная стратегия тестируется значительно дольше по сравнению с дневной историей. Это усложняет ее изучение.

Фильтруем вход по SMA(200)

 

Бэктестинг: следуем за RSI
Победителем сегодняшних тестов является алгоритм торговли секторами в длинную по 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
  1. Long — только длинные сделки. Short — только короткие сделки. Или в обоих направлениях.
  2. Период индикатора.
  3. Стратегия открытия на часовых, закрытия на дневных.
 

Код в студию

Код доступен на Quantrum.me

 

Вывод

Результаты подтверждают трендовую природу индикатора. Стратегия следования показывает лучшую доходность в сравнении со стратегией разворотов.

Лучшие результаты оказались при использовании сигналов за 2 недели, RSI(20). Сильное влияние оказывает диапазон просадки значения RSI при удержании позиции. Ниже изменение доходности при торговле секторами, которые были получены при разных уровнях RSI:

  • Открыли на 55, держим выше 45 — +304%
  • Открыли на 55, держим выше 44 — +340%
  • Открыли на 55, держим выше 43 — +322%
  • Открыли на 55, держим выше 42 — +278%
  • Открыли на 55, держим выше 41 — +265%

Уменьшить просадку в стратегиях позволил фильтр по положению скользящих средних, SMA(20) и SMA(200).

При торговле только короткими позициями положительных результатов достичь не удалось. Падение рынка сопровождается высокой волатильностью. Здесь может помочь увеличение диапазона удержания позиций по уровню RSI. Может быть, контроль волатильности самого RSI.

В следующий раз будем тестировать сигналы пересечения разных периодов индикатора RSI. Это будет тоже стратегия следования.

В комментариях напишите ваше мнение о статье. Укажите на недочеты и расскажите о вашем опыте использования RSI.

Александр Румянцев aka «iamraa»
Автор Quantrum.me
Интересуетесь алготрейдингом на Python? Присоединяйтесь к команде. Пишите в личку или на email.

Обучение среднесрочному трейдингу на MindSpace.ru.

★20
7 комментариев
Отличная работа. Спасибо.
avatar
Отличная статья, возьму на заметку…
avatar
Скажите, чем вас привлек Python? Почему бы не воспользоваться специальными средствами разработки и тестирования (TSLab, Amibroker и прочие)? Да, это платно, но наверняка дает значительный выигрыш во времени и удобстве?
avatar
Михаил, не люблю платные сервисы, это вырабатывает зависимость и заставляет работать с черным ящиком. Не люблю виндоус, там слишком много бесконтрольной жизни. Хочу, чтобы мой алгоритм легко жил в облаке, в консоли. Дает выгрыш на старте, но ограничивает в гибкости, окружении и операционной системе.
Александр, ваши статьи для меня глоток свежего воздуха — все четко, понятно и главное просто. Спасибо. Продолжайте в том же духе. 
avatar
Оксана Гафаити, рад, если материал оказался полезен.

теги блога Александр Румянцев

....все тэги



UPDONW
Новый дизайн