Количественная торговая стратегия Triple Relative Strength Index

RSI SMA
Дата создания: 2024-05-15 10:23:08 Последнее изменение: 2024-05-15 10:23:08
Копировать: 0 Количество просмотров: 841
1
Подписаться
1617
Подписчики

Количественная торговая стратегия Triple Relative Strength Index

Обзор

Эта стратегия использует относительно сильный индекс RSI для определения перепродажи на рынке в сочетании с ценой выше 200-дневной простой скользящей средней (SMA) в качестве условия для фильтрации тенденции, чтобы решить, стоит ли входить в сделку. Эта стратегия использует три RSI, чтобы совместно создать условия для открытия позиции, только если краткосрочный RSI меньше 35 и в течение трех последовательных циклов имеет тенденцию к снижению, а третий цикл RSI меньше 60 и текущий закрытие на цене выше 200-дневной SMA.

Стратегический принцип

  1. Расчет RSI на заданный период
  2. Позиция должна быть открыта в соответствии со следующими условиями:
    • Нынешний RSI меньше 35
    • Нынешний RSI меньше RSI предыдущего цикла, RSI предыдущего цикла меньше RSI предыдущих двух циклов, RSI предыдущих двух циклов меньше RSI предыдущих трех циклов
    • Первые три цикла RSI меньше 60
    • Нынешняя цена закрытия больше 200-дневной SMA
  3. Если вы выполняете все четыре условия, вы делаете больше.
  4. Если RSI превысит 50, то придерживаясь позиции, вы можете сбросить позицию.
  5. Повторите шаги 2-4 и совершите следующую сделку.

Стратегические преимущества

  1. Положитесь в зоне перепродажи, чтобы поймать рыночный поворот.
  2. Совместная построение сигналов открытия позиции с помощью тройного RSI снижает вероятность ложного сигнала и повышает надежность сигнала
  3. Присоединение цены выше 200-дневной средней линии в качестве трендового условия, чтобы избежать торговли в нисходящем тренде
  4. Условия для свертывания сделки были простыми и понятными, чтобы вовремя получить прибыль.
  5. Стратегическая логика ясна, легко понятна и реализуется

Стратегический риск

  1. RSI проявляет задержку сигналов и может пропустить оптимальный момент для открытия позиции
  2. Условия для открытия позиции относительно жесткие, частота торгов низкая, возможно, часть рынка будет пропущена.
  3. В результате, на рынке появилась тенденция к уменьшению цен на акции, что привело к резкому снижению цен на акции.
  4. Стратегия может зафиксировать только односторонние взлеты, но не может зафиксировать падение после поворота тенденции.

Направление оптимизации стратегии

  1. Можно рассмотреть возможность добавления движущегося или фиксированного стоп-ущерба, чтобы контролировать риски по одной сделке.
  2. Изучение RSI в сочетании с другими вспомогательными показателями для повышения надежности и своевременности сигналов открытия позиций
  3. Оптимизация условий открытия позиций, повышение частоты торговли при сохранении надежности сигнала
  4. Внедрение управления позициями, динамическая корректировка позиций в зависимости от интенсивности и волатильности рыночных тенденций
  5. Рассматривать комбинацию короткой и средней линий, разрабатывать варианты стратегий, адаптированные к различным рыночным условиям

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-05-15 00:00:00
end: 2024-05-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@author Honestcowboy
//
strategy("Triple RSI [Honestcowboy]" )

  
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> User Inputs <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

rsiLengthInput = input.int(5, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> VARIABLE CALCULATIONS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> CONDITIONALS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

rule1   = rsi<35
rule2   = rsi<rsi[1] and rsi[1]<rsi[2] and rsi[2]<rsi[3]
rule3   = rsi[3]<60
rule4   = close>ta.sma(close, 200)

longCondition = rule1 and rule2 and rule3 and rule4
closeCondition = rsi>50

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> GRAPHICAL DISPLAY <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

hline(30, title="Long Condition Line")
hline(50, title="Exit Condition Line")
plot(rsi)
plotshape(longCondition ? rsi-3 : na, title="Long Condition", style=shape.triangleup, color=color.lime, location=location.absolute)
plotshape(closeCondition and rsi[1]<50? rsi+3 : na, title="Exit Condition", style=shape.triangledown, color=#e60000, location=location.absolute)

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> AUTOMATION AND BACKTESTING <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

if longCondition and strategy.position_size==0
    strategy.entry("LONG", strategy.long)
if closeCondition
    strategy.close("LONG")