Esta estratégia usa os sinais cruzados do indicador RSI e duas linhas EMA para determinar pontos de compra e venda. Um sinal de compra é gerado quando o preço de fechamento cai abaixo da EMA100 e da EMA20, e o valor do RSI está abaixo de 30. Um sinal de venda é gerado quando o preço de fechamento rompe acima da EMA100 e da EMA20, e o valor do RSI está acima de 70. A ideia principal desta estratégia é usar o indicador RSI para julgar as condições de sobrecompra e sobrevenda, combinado com o julgamento da tendência das linhas EMA, a fim de capturar os pontos baixos e altos das flutuações do mercado e realizar operações de compra baixa e alta.
A Estratégia Quantitativa de Sinais Crossover RSI e Dual EMA é uma estratégia quantitativa de negociação simples e prática. Ao combinar o indicador RSI com médias móveis EMA, ele pode capturar melhor os altos e baixos em um mercado flutuante e conduzir arbitragem. No entanto, essa estratégia também tem algumas limitações e riscos, como falha nos mercados de tendência, falta de gestão de posição e medidas de controle de risco, etc. Portanto, na aplicação prática, ela precisa ser adequadamente otimizada e melhorada de acordo com as características do mercado e preferências pessoais para melhorar a robustez e lucratividade da estratégia.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI-EMA100&20 Buy/Sell Signal", overlay=true) // Input parameters rsiLength = input.int(14, "RSI Length") emaCloseLength = input.int(100, "EMA Length (Closing Price)") emaLowLength = input.int(20, "EMA Length (Low Price)") oversoldLevel = input.int(30, "Oversold Level") overboughtLevel = input.int(70, "Overbought Level") // Calculate RSI rsi = ta.rsi(close, rsiLength) // Calculate EMA of closing price emaClose = ta.ema(close, emaCloseLength) // Calculate EMA of low price emaLow = ta.ema(low, emaLowLength) // Determine overbought and oversold conditions isOversold = rsi <= oversoldLevel isOverbought = rsi >= overboughtLevel // Plot RSI and its EMAs plot(rsi, color=color.blue, title="RSI") plot(emaClose, color=color.green, title="EMA 100 (Closing Price)") plot(emaLow, color=color.orange, title="EMA 20 (Low Price)") // Strategy entry condition: Closing price is below both EMAs and RSI is less than or equal to oversold level buySignal = close < emaClose and close < emaLow and isOversold // Plot buy signals plotshape(series=buySignal, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small) // Strategy entry if (buySignal) strategy.entry("Buy", strategy.long) // Strategy exit condition: Price crosses above both EMAs and RSI is greater than or equal to overbought level sellSignal = close > emaClose and close > emaLow and isOverbought // Plot sell signals plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit if (sellSignal) strategy.entry("Sell", strategy.short) // Plot sell signals plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit if (sellSignal) strategy.entry("Sell", strategy.short)