Estratégia de crossover longo-curto usando médias móveis duplas e indicadores RSI


Data de criação: 2024-02-01 11:48:51 última modificação: 2024-02-01 11:48:51
cópia: 0 Cliques: 730
1
focar em
1617
Seguidores

Estratégia de crossover longo-curto usando médias móveis duplas e indicadores RSI

Esta estratégia usa uma combinação de duas médias móveis e um indicador RSI para construir uma estratégia de negociação de cruzamento de vários espaços. Esta estratégia pode capturar tendências de linha média e longa, enquanto usa indicadores de linha curta para evitar oscilações desnecessárias.

Princípio da estratégia

Esta estratégia usa dois conjuntos de médias móveis, as médias móveis rápidas (EMA 59 e EMA 82) e as médias móveis lentas (EMA 96 e EMA 95): faça mais quando o preço atravessa a média móvel rápida de baixo para cima; faça menos quando o preço atravessa a média móvel rápida de cima para baixo. Ao mesmo tempo, a região de compra e venda do RSI é usada para confirmar sinais de negociação e parar.

Especificamente, quando o EMA rápido se eleva para cima, o EMA lento se rompe, gerando um sinal de cabeça vazia. Nesse caso, se o RSI estiver abaixo de 30 (área de oversold), uma entrada de cabeça vazia é feita.

A vantagem do uso de médias móveis duplas é que é possível identificar melhor as mudanças na tendência da linha média e longa. O indicador RSI pode filtrar o ruído de negociação causado por algumas falsas rupturas.

Vantagens estratégicas

  • Usando médias móveis duplas para capturar tendências de linha média e longa
  • RSI Filtração de Ruído
  • Combinação de acompanhamento de tendências e inversão de tendências
  • A lógica da transação é simples e clara.

Análise de Riscos

  • Os sinais de negociação gerados pelas médias móveis podem ser enganados em mercados com grandes turbulências
  • O RSI também pode falhar em certos mercados
  • A configuração do ponto de parada deve ser feita com cautela, evitando ser demasiado relaxada ou apressada.

Direção de otimização da estratégia

  • Combinações de médias móveis com períodos mais longos
  • Tente ajustes de parâmetros diferentes, como a variação do intervalo de baixa e baixa do RSI
  • Adição de condições de filtragem adicionais, como indicadores de volume de transação
  • Optimizar a estratégia de stop loss, combinando o stop loss dinâmico com indicadores como o ATR

Resumir

Esta estratégia integra a tendência de uma média móvel dupla que segue a inversão de negociação com o indicador RSI. A EMA dupla segue a direção da tendência da linha média longa, e o RSI é usado para confirmar a eficácia do sinal de negociação e o stop loss. Esta é uma estratégia simples e prática de cruzamento multi-espaço que pode ser adaptada a diferentes condições de mercado por meio de ajustes e otimização de parâmetros.

Código-fonte da estratégia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Swing Hull/rsi/EMA Strategy", overlay=true,default_qty_type=strategy.cash,default_qty_value=10000,scale=true,initial_capital=10000,currency=currency.USD)

//A Swing trading strategy that use a combination of indicators, rsi for target, hull for overall direction enad ema for entering the martket.
// hull ma copied from syrowof HullMA who copied from mohamed982 :) thanks both
// Performance 

n=input(title="period",defval=500)

n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)



// RSi and Moving averages

length = input( 14 )
overSold = input( 70)
overBought = input( 30)
point = 0.0001
dev= 2

fastLength = input(59)
fastLengthL = input(82)
slowLength = input(96)
slowLengthL = input(95)
price = close

mafast = ema(price, fastLength)
mafastL= ema(price, fastLengthL)
maslow = ema(price, slowLength)
maslowL = ema(price, slowLengthL)
vrsi = rsi(price, length)
cShort =  (crossunder(vrsi, overBought))

condDown = n2 >= n1
condUp = condDown != true
closeLong =  (crossover(vrsi, overSold))
closeShort = cShort 


// Strategy Logic
longCondition = n1> n2
shortCondition = longCondition != true

col =condUp ? lime : condDown ? red : yellow
plot(n1,color=col,linewidth=3)


if (not na(vrsi))
    if shortCondition    
        if (price[0] < maslow[0] and price[1] > mafast[1]) //cross entry
            strategy.entry("SYS-SHORT", strategy.short, comment="short")
strategy.close("SYS-SHORT", when=closeShort) //output logic

if (not na(vrsi))
    if longCondition // swing condition          
        if (price[0] < mafast[0] and price[1] > mafast[1]) //cross entry
            strategy.entry("SYS-LONG", strategy.long, comment="long")
strategy.close("SYS-LONG", when=closeLong) //output logic


// Stop Loss 


sl = input(75)
Stop = sl * 10
Q = 100


strategy.exit("Out Long", "SYS-LONG", qty_percent=Q, loss=Stop)
strategy.exit("Out Short", "SYS-SHORT", qty_percent=Q, loss=Stop)



//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)