Estratégia de tendência cruzada da média móvel do RSI

Autora:ChaoZhang, Data: 2023-11-28 17:03:56
Tags:

img

Resumo

A Estratégia de Tendência de Crossover da média móvel do RSI é uma estratégia que usa os sinais de crossover da média móvel do indicador RSI para determinar a tendência e emitir sinais de negociação.

Estratégia lógica

O indicador central desta estratégia é o RSI. Ele calcula tanto a EMA quanto a SMA do RSI. Os sinais de compra são emitidos apenas quando a EMA do RSI está acima da SMA enquanto o preço está acima da EMA. Os sinais de venda são emitidos quando a EMA do RSI cai abaixo da SMA para seguir a tendência.

O indicador RSI pode efetivamente refletir as condições de sobrecompra e sobrevenda no mercado. Quebrar acima de 70 no RSI é considerado como sobrecomprado, enquanto quebrar abaixo de 30 é sobrevendido. Esta estratégia utiliza a EMA e a SMA para descobrir tendências e pontos de virada do indicador RSI. A EMA reage mais rapidamente a mudanças recentes de preços, enquanto a SMA depende mais de dados mais antigos. As duas linhas trabalham juntas.

Quando o RSI EMA começa a subir, ele sinaliza estabilização no mercado. O SMA então verifica a direção. Quando o SMA também começa a subir, ele confirma que o RSI está em uma tendência de alta. A estratégia agora emitirá um sinal de compra dado que o preço está acima do EMA para seguir a tendência.

Análise das vantagens

Esta é uma estratégia de seguimento de tendências, capaz de captar efetivamente oportunidades direcionais a médio e longo prazo.

A estratégia inclui igualmente a EMA de preços para garantir a compra apenas numa tendência de alta dos preços, evitando o risco de mercados de gama e melhorando a rentabilidade.

Análise de riscos

A estratégia depende principalmente do indicador RSI. Sinais falsos de RSI levarão a sinais de estratégia falsos. Além disso, o RSI é mais adequado para identificar níveis de sobrecompra / sobrevenda com algum atraso na captura de tendências de médio e longo prazo.

Também pode haver algum atraso de tempo, especialmente quando o RSI EMA e SMA estão mais limitados a faixa.

Orientações de otimização

  1. O RSI pode ser otimizado selecionando parâmetros mais adequados para aumentar a eficácia.

  2. A lógica de stop loss pode ser adicionada às posições de saída após as perdas atingirem certos níveis para gerir eficazmente o risco.

  3. Os parâmetros podem ser testados e otimizados em diferentes prazos de tempo para que a estratégia possa funcionar de forma estável em mais produtos e períodos.

Resumo

A estratégia de tendência de cruzamento da média móvel do RSI é uma estratégia simples de tendência que usa o RSI para determinar a direção da tendência e cruzar para verificação. Incorpora a EMA de preço para comprar em tendências de alta. A estratégia tem alta estabilidade para a detenção de médio e longo prazo, mas o risco de atraso precisa ser gerenciado.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Created by Sv3nla 5-Jan-2021
strategy(title="Sv3nla RSI EMA SMA Strat", shorttitle="Sv3nla RSI EMA SMA Strat", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === BACKTEST RANGE ===
FromMonth = input(defval = 5, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2015, title = "From Year", minval = 2015)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2022) 
// syminfo.mintick = 0.01$ for BTCUSDT

testPeriod() => true

//INPUTS
rsilen = input(defval = 16, minval=1, title="RSILength")
RSIemaLen = input(defval = 12, minval=1, title="RSI EMA Length")
RSIsmaLen2 = input(defval = 29, minval=1, title="RSI SMA Length2")
length = input(defval = 8, minval=1, title="EMA price Length")

// RSI
RSIsrc = close
RSIup = rma(max(change(RSIsrc), 0), rsilen)
RSIdown = rma(-min(change(RSIsrc), 0), rsilen)
rsi = RSIdown == 0 ? 100 : RSIup == 0 ? 0 : 100 - 100 / (1 + RSIup / RSIdown)
emavalue=ema(rsi,RSIemaLen)
smavalue=sma(rsi,RSIsmaLen2)

//EMA
ema=ema(close,length)

//PLOT
plot(ema(rsi, RSIemaLen), color=color.yellow, linewidth=2, title="EMA", transp=0)
plot(sma(rsi, RSIsmaLen2), color=color.aqua, linewidth=2, title="SMA", transp=0)

//ORDERS
if (testPeriod())
    strategy.entry("long",strategy.long, comment="RSIEMA", when=(emavalue > smavalue and close>ema))
    strategy.close(id="long", when=(emavalue < smavalue))

// Colour background when in a trade and 50 horizontal line
backgroundColour = (strategy.position_size > 0) ? color.green : na    
bgcolor(color=backgroundColour, transp=85)
hline(50, color=color.yellow)

Mais.