Estratégia de cruzamento de indicador RSI e média móvel


Data de criação: 2023-12-21 11:30:27 última modificação: 2023-12-21 11:30:27
cópia: 0 Cliques: 762
1
focar em
1621
Seguidores

Estratégia de cruzamento de indicador RSI e média móvel

Visão geral

A estratégia de cruzamento do RSI com a média é uma estratégia de negociação quantitativa que combina um indicador relativamente fraco (RSI) e uma média móvel. A estratégia usa o RSI para determinar a situação de sobrecompra e sobrevenda do valor dos valores mobiliários, e combina o RSI com o cruzamento do ouro e o sinal de forca morta de sua média para decidir sobre a criação de posições de otimização ou otimização.

Princípio da estratégia

  1. O RSI é baseado em um aumento ou diminuição de um período de tempo, comparando o aumento médio do fechamento com o declínio médio do fechamento, para determinar se um título está sobrecomprado ou sobrevendido.

  2. Calcule a média móvel do indicador RSI, MA. Utilize a média móvel EMA do índice ou a média móvel simples SMA.

  3. Quando o indicador RSI atravessa sua média móvel, gera um sinal de cruz dourada, fazendo mais; quando o indicador RSI atravessa sua média móvel abaixo, gera um sinal de forquilha, fazendo vazio.

  4. Quando o RSI está acima da linha de sobrecompra, considere que o título está sobrecomprado e faça um curto-circuito; quando o RSI está abaixo da linha de sobrevenda, considere que o título está sobrevendido e faça mais.

Análise de vantagens

  1. A combinação de indicadores com sinais de cruzamento de médias evita a dependência de um único indicador e aumenta a precisão da tomada de decisão.

  2. O indicador RSI é usado para determinar o momento de comprar ou vender, definir a linha de compra ou venda, determinar o momento de abrir posição e parar o prejuízo.

  3. O uso de indicadores cruzados com as médias para fazer mais shorting permite capturar pontos de inflexão no mercado em tempo hábil.

Análise de Riscos

  1. O indicador RSI é propenso a produzir sinais errôneos em situações de turbulência.

  2. A base de julgamento de que o RSI está sobrecomprando e sobrevendendo pode ser ajustada, e uma configuração inadequada pode levar a uma flexibilidade ou rigidez excessiva.

  3. O sistema de linha média é muito sensível a variações anormais de curto prazo, podendo ser bloqueado por um impedimento.

Direção de otimização

  1. Ajustar os parâmetros do RSI para encontrar o melhor parâmetro de comprimento.

  2. Optimizar os parâmetros de média móvel para encontrar o melhor período de média.

  3. Testar diferentes parâmetros de linha de compra e venda para otimizar as oportunidades de criação de posições.

  4. Combinado com outros indicadores, filtra os sinais para evitar transações erradas.

Resumir

O indicador RSI e a estratégia de cruzamento de linha média, combinados com o sinal de cruzamento de linha média móvel, utilizam o RSI para determinar a sobrevenda e a sobrevenda, o que permite determinar com eficácia as áreas de mercado quentes e capturar oportunidades de reversão em pontos-chave. Com a otimização de parâmetros e filtragem de sinais, pode-se melhorar o desempenho da estratégia e reduzir o risco de negociação.

Código-fonte da estratégia
/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//dfurrer45
strategy(title="Relative Strength Index", shorttitle="RSI", overlay=true)
src = close, len = input(13, minval=1, title="Length"), maLen = input(9, minval=1, title="MA Lenght"), exponential = input(false, title="Exponential")

// === BACKTEST RANGE ===
FromMonth = input(defval = 10, title = "From Month", minval = 1)
FromDay   = input(defval = 3, title = "From Day", minval = 1)
FromYear  = input(defval = 2017, title = "From Year", minval = 2014)
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 = 2014)
// ===  BACKTEST END  ===
backtestdaterange = (time > timestamp(FromYear, FromMonth, FromDay, 00, 00))

rsioverbought = input(90, minval=1, title="RSI % start overbought")
rsioversold = input(10, minval=1, title="RSI % start oversold")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
ma = exponential ? ema(rsi, maLen) : sma(rsi, maLen)
rsimacrossup = cross(rsi,ma) and rsi > ma
rsimacrossdown = cross(rsi,ma) and rsi < ma
plotchar(rsimacrossup, char='⇧', location = location.belowbar, color = green, text = "", textcolor = green, size=size.small)
plotchar(rsimacrossdown, char='⇩', location = location.abovebar, color = red, text = "", textcolor = red, size=size.small)
plotchar(rsi > rsioverbought, char='x', location = location.belowbar, color = aqua, text = "", textcolor = red, size=size.small)
plotchar(rsi < rsioversold, char='x', location = location.belowbar, color = aqua, text = "", textcolor = red, size=size.small)


closetrade = rsimacrossup or rsimacrossdown
strategy.close_all(closetrade)
strategy.close_all((rsi > rsioverbought) or (rsi < rsioversold))
strategy.entry("Short Overbought",strategy.short, when=(rsi > rsioverbought) and backtestdaterange)
strategy.entry("Buy Overbought",strategy.long, when=(rsi < rsioversold) and backtestdaterange)
strategy.entry("Long Cross", strategy.long, when=rsimacrossup and backtestdaterange)
strategy.entry("Short Cross", strategy.short, when=rsimacrossdown and backtestdaterange)