RSI Momentum Долгая краткосрочная стратегия

Автор:Чао Чжан, Дата: 2023-10-26 17:05:40
Тэги:

img

Обзор

Стратегия RSI Momentum Long Short - это типичная стратегия импульса, основанная на индикаторе Larry Connors RSI, использующая сигналы перекупленности и перепродажи от RSI для определения входов и выходов.

Логика стратегии

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

Дополнительные фильтры скользящих средних добавляются - только для длинных сигналов, когда 5-дневный MA превышает 200-дневный MA, и коротких сигналов, когда 5-дневный MA ниже 200-дневного MA. Это помогает отфильтровать ложные сигналы от краткосрочных отскоков.

Также вводятся механизмы получения прибыли. Существующие длинные позиции будут закрыты, когда RSI пересекает линию перекупленности 90. Существующие короткие позиции будут закрыты, когда RSI пересекает линию перепроданности 10. Это блокирует прибыль и избегает увеличения потерь.

Преимущества стратегии

  1. Использование РСИ для определения уровня перекупленности/перепроданности позволяет выявить моменты переворота цен.

  2. Добавление фильтров MA уменьшает ложные сигналы от краткосрочного шума.

  3. Механика получения прибыли помогает контролировать риски и ограничивать потери.

  4. Простые и понятные правила, которые легко понять и применить.

  5. RSI является широко используемым и практичным индикатором, подходящим для многих инструментов.

Риски стратегии

  1. Перекупленный/перепроданный показатель RSI не всегда может привести к реверсии.

  2. Фильтры MA также могут отфильтровать хорошие торговые возможности.

  3. Неправильные настройки для получения прибыли слишком рано отказываются от тенденций.

  4. Такие параметры, как обратный отсчет RSI, уровни перекупа/перепродажи, настройки MA требуют настройки.

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

Возможности для расширения

  1. Испытывайте RSI с различными периодами обратной связи.

  2. Добавьте другие индикаторы, такие как KDJ, MACD, чтобы дополнить RSI.

  3. Корректировать уровень перекупленности/перепроданности на основе рыночных режимов.

  4. Уровень рентабельности прибыли, основанный на периоде хранения.

  5. Включайте стратегии стоп-лосса, основанные на максимальном проценте потерь.

  6. Оптимизируйте систему MA, используйте динамический стоп-потеря.

Заключение

RSI Momentum Long Short Strategy использует RSI для выявления уровня перекупленности/перепроданности, фильтрованного по правилам получения прибыли. Стратегия проста и практична, заслуживает дальнейшего тестирования и улучшения для адаптации к различным рынкам.


/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//authour: SudeepBisht
//@version=3
//Based on Larry Connors RSI-2 Strategy - Lower RSI
strategy("SB_CM_RSI_2_Strategy_Version 2.0", overlay=true)

src = close
entry= input(defval=0,title="Entry area")
entry:=nz(entry[1])
overBought=input(90)
overSold=input(10)
//RSI CODE
up = rma(max(change(src), 0), 2)
down = rma(-min(change(src), 0), 2)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//Criteria for Moving Avg rules
ma5 = sma(close,5)
ma200= sma(close, 200)

//Rule for RSI Color
col = close > ma200 and close < ma5 and rsi < 10 ? lime : close < ma200 and close > ma5 and rsi > 90 ? red : silver
chk= col==red?-1:col==lime?1:0

if (not na(rsi))
    if (crossover(rsi, overSold))
        if(chk[1]==1)
            strategy.entry("RsiLE", strategy.long, comment="RsiLE")
            entry:=1
    if (crossunder(rsi, overBought))
        if(chk[1]==-1)
            strategy.entry("RsiSE", strategy.short, comment="RsiSE")
            entry:=-1
        
if (not na(rsi))
    if (crossover(rsi, overSold) and entry==-1)
        strategy.close_all()
        //strategy.entry("RsiLE", strategy.long, comment="RsiLE")
        entry:=0
    if (crossunder(rsi, overBought) and entry==1)
        strategy.close_all()
        //strategy.entry("RsiSE", strategy.short, comment="RsiSE")
        entry:=0
        


Больше