Блог им. Quantrum

Алготрейдинг: о чём расскажет RSI?

При бэктестингах индикатора RSI заметил разное поведение на разных активах. На некоторых активах сигналы перекупленности и перепроданности по RSI за короткий период (2-5 дней) работают одинаково хорошо в обе стороны, а иногда преобладает только один сигнал. На крупных индексах за последние 10 лет лучше работает сигнал перепроданности⤴.

При поиске ответа на «Почему?» удалось найти решение для определения оптимального периода RSI и лучших порогов. Итак, проанализируем это вместе на Python.

Идикатор RSI по своей природе движется в диапазоне от 0 до 100. Значение выше 50 говорит о том, что цена за период выросла больше, чем упала, и наоборот. Когда цена дорастает до верхнего порогового значения (по умолчанию 70) считается, что актив перекуплен. Пересечение нижнего порога (по умолчанию 30) говорит о перепроданности. При наступлении таких пересечений ожидается разворот цены.

Но разворот случается далеко не всегда. Очень часто актив зависает в зоне перекупленности или перепроданности на недели. На графике видно, что SPY чаще задерживается в зоне перекупленности.

Алготрейдинг: о чём расскажет RSI?

Почитать подробнее об RSI можно здесь. А мы посмотрим, что можно раскопать⛏.

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

Так как RSI зависит от движения цены, значит по пересечениям пороговых значений можно определить:

  • Тренд актива за период.
  • Вероятность разворота при пересечении одного из порогов.
  • Вероятность последовательных пересечений одного порога до возвращения к противоположному.
  • Общее изменение цены при движении от одного порога до другого. Например, от нижнего до верхнего.

Если алгоритм анализа будет работать достаточно быстро, то мы сможем:

  • Подобрать оптимальный период для индикатора и менять его в реальном времени.
  • Подобрать оптимальные пороги для наибольшего количества лучших сигналов и менять их в реальном времени.
  • Исключить опасные сигналы, когда вероятность разворота низка.

Условия

Окружение:

  • Операционная система Linux.
  • Python 3.5.
  • Блокнот Jupyter.
  • Numpy, Pandas, Matplotlib.

Анализируем:

  • SPY, отрегулированный на дивиденды.
  • 2-дневный RSI.
  • Период: с 2012 до 2017 года.

Реализация

Основная идея воплощена в этой маленькой функции кодирования последовательных значений:

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

На вход мы подаем numpy-массив, а на выходе получаем:

  • Массив длин последовательного повторения значения.
  • Массив индексов изменения значения, относительно предыдущего.
  • Массив значений.

Например:

In: rle(np.array([1, 1, 5, 5, 5, 3, 2, 3, 3, 3]))
Out: ([2, 3, 1, 1, 3],
      [0, 2, 5, 6, 7], 
      [1, 5, 3, 2, 3])

Пример анализа SPY

Посмотрим, что нам расскажет график SPY.

Алготрейдинг: о чём расскажет RSI?

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

  • Top — вероятность разворота при достижении верхней границы.
  • Bottom — при достижении нижней.

Уже здесь мы видим, что от нижней границы вероятность разворота цены выше. Что не удивительно во времена бычьего рынка.

Теперь взглянем на продолжительность нахождения значения RSI вне границ каждого порога.

Алготрейдинг: о чём расскажет RSI?
Нахождение за порогами

Слева видно, что большинство пересечений нижней границы продолжается лишь один день. А 75% всех пересечений длятся не более 3-х дней. Пересечение верхнего порога длится в среднем 2 дня. А 75% пересечений длятся не более 4-х дней.

Это может указывать на то, что открывать длинную позицию можно в первый день сигнала и ждать разворот не более 3-х дней. Короткую позицию также можно открывать на первый день, но держать её придется около 4-х дней. А это уже повышает риск.

Теперь посмотрим, сколько может быть повторных пересечений, до перехода на противоположную сторону.

Алготрейдинг: о чём расскажет RSI?
Повторное пересечение порога

На графиках видно, что в 75% случаев повторные пересечения случаются реже 2-х раз подряд. Но опять видно, что два пересечения подряд чаще встречается на верхнем пороге (справа).

В заключение глянем на скорость перехода от порога к порогу.

Алготрейдинг: о чём расскажет RSI?

Видно, что от нижней границы до верхней мы движемся быстрее. В 75% случаев снизу до верху мы доберемся примерно за 5 торговых дней. А путь от верхней границы до нижней может занять почти 8 дней.

Вывод

Данный анализ показывает поведение актива и позволяет принимать решения о торговле по сигналам разворота. Мы видим основной тренд актива и можем рассчитать вероятность разворота цены от одного из порогов. Теперь легко найти оптимальные границы сигналов и период RSI.

Функция работает быстро и может быть использована в реальном времени для изменения настроек при торговле несколькими активами.

В следующей статье проведем бэктестинг RSI(2/5) на нескольких активах, применяя описанный инструментарий.

В комментариях напишите, какие ещё можно сделать выводы на полученных наблюдениях? Что можно улучшить? Также пишите, если нужен блокнот с анализом и графиками.

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

☝Это можно использовать для внутридневной торговли. А научиться торговать внутри дня можно у профессионалов.
 

★15
32 комментария
Может, вам просто чего-то не хватает в жизни? Например, исторических данных?

     Например, тринадцать низов «Нью Йорк Никс» подряд несколько лет назад выдаются. Я бы не построил по ним систему.
      Вы рассмотрели кусочек тренда. А он большой, весь-то...
      Ваша выборка крайне нерепрезентативна.
     
      Как-то так…
Московский Лоссбой, благодарю. Это размышления и не более. 
Я очень долго rsi использовал и использую… По мне так при достижении 70 нужно на отката rsi* покупать. А вообще лучше эту хрень не использовать. А тупо ждать кризиса в кеш и покупать первые десять акций индекса лет на пять… Рсй может долго гостить ниже 30 и выше 70 это очень сложно найти какие то патерны
avatar
avanes5555, согласен. Мне помогает в сочетании с трендом. Сидеть и ждать — слишком абстрактно. 
Александр Румянцев, зато можно не терять деньги, а использовать инструменты фиксированной доходности… А искать свой подход на небольшой сумме
avatar
avanes5555, кто ж спорит? Так и надо делать!
индикатор в лоб не работает 70/30 но вообще есть наработки. У вас есть код на Питоне crossing above 30 RSI
avatar
Вадим Карпов, не понимаю где комментарий, а где вопрос. Уточните.
у Вас есть код? Crossing RSI 30 line from below to above 30
avatar
Вадим Карпов, да, в истории моих постов есть обзор стратегии торговли по разворотам RSI. Можно найти на моем блоге введя RSI или посмотреть ленту на SL. 
Первая стадия трейдера — Вера в индикаторы
Последняя стадия — голый график.

Когда вы поймёте что не может существовать рабочего индикатора, его существование противоречит сути рынка.
avatar
Евгений, один индикатор — возможно. Но я вижу рабочие совокупности. Видимо стадию ограниченного понимания я пропустил и попал сразу на рабочие алгоритмы. А это всего лишь описание возможного подхода к анализу. 
Евгений, для ручной торговли да, а для алго нужны каие то индикаторы
avatar
Tema, для алготрейдинга нужен хороший анализ фигур, а не ведомые индикаторы, я в своё время тестировал сотни роботов построенных на ведомых индикаторах, и все они на больших промежутках сливали, как правило в них начинали добавлять мартингейл итд.
На мой взгляд нужно либо писать распознавание фигур, уровней, и алгоритм под это. 
Либо нужно написать тупого робота который покупает и продаёт с шагом X ниже определённой цены и прекращает сделки выше, с грамотным расчётом ММ, чтобы не было слива, ни при каких условиях.
avatar
Евгений, алгоритм анализа фигур тоже можно назвать индикатором. Я рад, что вы отступились от пропаганды голых графиков.
Александр Румянцев, Я не отступился от голых графиков, просто график читается фигурами, и их интерпретацией, как набор букв может быть словом а может быть просто набором букв.
Индикаторы типа RSI просто меняют представление графика но не читают его, и не разбирают.
avatar

Евгений, в распозновании образа заложена логика. Также логика заложена и в любом индикаторе. Вот только для того, чтобы интерпретировать, что читает тот или иной индикатор, надо понять заложенную логику. 

А если не разбираться, тогда всё можно похоронить. Ибо всё что не понятно, всё зло. 

Торговля по RSI в одиночестве с авторскими рекомендациями зло. А вот его понятая идея — добро.

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

Вы можете долго верить во что хотите но рабочих ведомых индикаторов не существует и не может существовать. В силу того что все трейдеры должны по этому индикатору стать на одну сторону.
Именно по этой причине рынок ходит волнами, поступает первый прогноз и все выстраиваются в одну сторону, рынок останавливается и начинает разворачиваться, дальше происходит всё по новой.
avatar
Евгений, вы верите в эффективный рынок?
Tema, разница в чём? Если без понтов, по сути!
avatar
можно действовать более консервативно в среднесрочной или долгосрочной торговле — выше 50 только покупки, ниже продажи
NakedTrader, согласен. Писал об этом в одной из своих статей о бэктестах. 
Всё бы хорошо, но эти профессионалы под завязку топика как-то смущают:))
avatar
Sergey Pavlov, дайте аргументы против UT?
Александр Румянцев, всё умеют, всему всех учат:)
avatar
Sergey Pavlov, а лучше подскажите альтернативу. Кто по вашему мнению действительно хорош и у кого стоит учиться? Критикуя предлагайте.
Александр Румянцев, предлагаю не рекламировать:)
avatar
Sergey Pavlov, почему? Есть те, кто ищет. Поисковики завалены фейком и спириными. Надо направлять страждущих, не так ли?

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

....все тэги



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