Александр Румянцев
Александр Румянцев личный блог
18 октября 2017, 21:49

Алготрейдинг: о чём расскажет 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.

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

32 Комментария
  • Московский Лоссбой
    18 октября 2017, 22:16
    Может, вам просто чего-то не хватает в жизни? Например, исторических данных?

         Например, тринадцать низов «Нью Йорк Никс» подряд несколько лет назад выдаются. Я бы не построил по ним систему.
          Вы рассмотрели кусочек тренда. А он большой, весь-то...
          Ваша выборка крайне нерепрезентативна.
         
          Как-то так…
  • Ivan  Purikov
    18 октября 2017, 22:29
    Я очень долго rsi использовал и использую… По мне так при достижении 70 нужно на отката rsi* покупать. А вообще лучше эту хрень не использовать. А тупо ждать кризиса в кеш и покупать первые десять акций индекса лет на пять… Рсй может долго гостить ниже 30 и выше 70 это очень сложно найти какие то патерны
      • Ivan  Purikov
        18 октября 2017, 22:47
        Александр Румянцев, зато можно не терять деньги, а использовать инструменты фиксированной доходности… А искать свой подход на небольшой сумме
  • Vadim G.
    18 октября 2017, 23:02
    индикатор в лоб не работает 70/30 но вообще есть наработки. У вас есть код на Питоне crossing above 30 RSI
  • Vadim G.
    18 октября 2017, 23:29
    у Вас есть код? Crossing RSI 30 line from below to above 30
  • Евгений
    19 октября 2017, 00:39
    Первая стадия трейдера — Вера в индикаторы
    Последняя стадия — голый график.

    Когда вы поймёте что не может существовать рабочего индикатора, его существование противоречит сути рынка.
    • Tema ☑️
      19 октября 2017, 11:11
      Евгений, для ручной торговли да, а для алго нужны каие то индикаторы
      • Евгений
        19 октября 2017, 11:53
        Tema, для алготрейдинга нужен хороший анализ фигур, а не ведомые индикаторы, я в своё время тестировал сотни роботов построенных на ведомых индикаторах, и все они на больших промежутках сливали, как правило в них начинали добавлять мартингейл итд.
        На мой взгляд нужно либо писать распознавание фигур, уровней, и алгоритм под это. 
        Либо нужно написать тупого робота который покупает и продаёт с шагом X ниже определённой цены и прекращает сделки выше, с грамотным расчётом ММ, чтобы не было слива, ни при каких условиях.
          • Евгений
            19 октября 2017, 12:16
            Александр Румянцев, Я не отступился от голых графиков, просто график читается фигурами, и их интерпретацией, как набор букв может быть словом а может быть просто набором букв.
            Индикаторы типа RSI просто меняют представление графика но не читают его, и не разбирают.
              • Евгений
                19 октября 2017, 14:37
                Александр Румянцев, 
                Вот вам логика:
                Предположим RSI работает и по нему можно предсказать движение следовательно все трейдеры должны быть в плюсе, что противоречит сути рынка где одни отбирают у других деньги.

                Вы можете долго верить во что хотите но рабочих ведомых индикаторов не существует и не может существовать. В силу того что все трейдеры должны по этому индикатору стать на одну сторону.
                Именно по этой причине рынок ходит волнами, поступает первый прогноз и все выстраиваются в одну сторону, рынок останавливается и начинает разворачиваться, дальше происходит всё по новой.
      • VladMih
        19 октября 2017, 19:23
        Tema, разница в чём? Если без понтов, по сути!
  • можно действовать более консервативно в среднесрочной или долгосрочной торговле — выше 50 только покупки, ниже продажи
  • Sergey Pavlov
    19 октября 2017, 11:08
    Всё бы хорошо, но эти профессионалы под завязку топика как-то смущают:))
      • Sergey Pavlov
        19 октября 2017, 11:29
        Александр Румянцев, всё умеют, всему всех учат:)
          • Sergey Pavlov
            19 октября 2017, 11:40
            Александр Румянцев, предлагаю не рекламировать:)

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн