Estratégia de acompanhamento de tendência de média móvel RSI


Data de criação: 2023-11-23 17:13:06 última modificação: 2023-11-23 17:13:06
cópia: 0 Cliques: 626
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendência de média móvel RSI

Visão geral

A estratégia de RSI é uma estratégia de negociação automática de ações que utiliza a análise de tendências e o indicador de sobrevenda e sobrevenda. A estratégia usa uma média móvel simples para determinar a direção da tendência do mercado e, em combinação com um indicador relativamente forte (RSI), emite um sinal de negociação para determinar e acompanhar a tendência.

Princípio da estratégia

A estratégia consiste em três partes principais:

  1. Julgamento de tendência: Calcule a média móvel simples de 200 dias para a tendência de longo prazo, calcule a média móvel simples de 30 e 50 dias para a tendência de curto prazo. Quando a média móvel de curto prazo atravessa a média móvel de longo prazo como um sinal otimista e um sinal de baixa, julgue a tendência de curto prazo do mercado.

  2. Julgamento de Overbought/Overbought: Computação do RSI de 14 dias. O RSI acima de 80 é a zona de overbought e abaixo de 20 é a zona de oversold. Quando o RSI cai da zona de overbought ou sobe da zona de oversold, um sinal de negociação é emitido.

  3. Entradas e saídas: quando se julga um sinal de sobrevenda, se a direção do sinal coincidir com a direção do julgamento da tendência, a entrada é mais / vazia. Quando ocorre um cruzamento dourado entre a média móvel de curto e longo prazo, o julgamento da tendência é invertido, e a posição é retirada.

Com esta estratégia, é possível entrar em tempo hábil quando o preço das ações se reverte, enquanto que, combinado com a tendência, o julgamento filtra parte do ruído das negociações, sendo relativamente excelente no controle de retração.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. A combinação de um indicador de tendência e um indicador de sobrevenda e sobrecompra permite filtrar o ruído e identificar os pontos de reversão.
  2. Ao mesmo tempo, considerar a direção da tendência em dois períodos de tempo de curto e longo prazo é mais preciso.
  3. Usando a média móvel como um método de parada, pode-se definir um ponto de parada de acordo com a volatilidade do mercado.
  4. As condições de entrada são rigorosas, o que pode ser eficaz para evitar falsas invasões.

Riscos e soluções

A estratégia também apresenta alguns riscos:

  1. A solução é adicionar mais condições de filtragem para evitar transações sem sentido.
  2. Existe um certo risco de atraso no tempo. A solução é reduzir adequadamente os parâmetros de ciclo das médias móveis.
  3. O efeito do RSI é influenciado pelas ações e mercados. A solução é combinar mais fatores, como a forma da linha K, para determinar o efeito.

Direção de otimização

A estratégia também pode ser melhorada em alguns aspectos:

  1. Adicionar mais condições de filtragem, como volume de troca, forma de linha K, etc., aumenta a eficácia do sinal.
  2. Otimizar o ciclo dos parâmetros das médias móveis e do RSI para que sejam mais adequados às características de diferentes ações.
  3. Estabelecer uma média móvel dinâmica que ajuste automaticamente os parâmetros de acordo com a volatilidade do mercado e as preferências de risco.
  4. O uso de tecnologias mais avançadas, como a aprendizagem de máquina, para avaliar as tendências do mercado e aumentar a precisão de avaliação.

Resumir

A estratégia RSI de acompanhamento de tendências é, em geral, uma estratégia muito prática, mas, combinada com a análise de tendências e o indicador de sobrevenda e sobrevenda, filtra o ruído do mercado até certo ponto, tornando os sinais de negociação mais precisos e eficazes. A estratégia pode se tornar um sistema de negociação de longo prazo, consistentemente lucrativo, através de métodos e parâmetros de otimização contínua.

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

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mattehalen

// INPUT per TIMEFRAME
// 5min     = Legnth = 9, Source = ohlc4,MaxLoss = 1000 TrendMA = 200, ShortMA = 4, LongMA = 10
// 30min    = Legnth = 7, Source = ohlc4,MaxLoss = 1000 TrendMA = 200, ShortMA = 10, LongMA = 20

strategy("Mathias & Christer Timeframe RSI", shorttitle="M&C_RSI",overlay=true, process_orders_on_close = true, default_qty_type =  strategy.percent_of_equity, default_qty_value = 100)
len = input(9, title="Length", type=input.integer)
src = input(ohlc4, title="Source", type=input.source)
//show4h = input(true, title="show 4h", type=input.bool)
maxLoss = input(3000)

rsiCurrent = rsi(src, len)
//rsi4h = security(syminfo.ticker, "240", rsi(src, len))
rsi4h   = rsi(src, len)

//--------------------------------------------------
//MA
trendMAInput = input(200, title="trendMA", type=input.integer)
shortMAInput = input(30, title="shortMA", type=input.integer)
longMAInput = input(50, title="longMA", type=input.integer)

trendMA = ema(close,trendMAInput)
shortMA = ema(close,shortMAInput)
longMA  = ema(close,longMAInput)
plot(trendMA, color=color.black, linewidth=5)
plot(shortMA, color=color.red, linewidth=2)
plot(longMA, color=color.green, linewidth=2)
bgcolor(crossunder(shortMA,longMA) ? color.black : na, transp=10)

//--------------------------------------------------
//RSI
BuySignalBarssince = barssince(rsi4h[1]<rsi4h[0] and rsi4h[1]<20)
BuySignal       = (rsi4h[1]<rsi4h[0] and rsi4h[1]<20 and BuySignalBarssince[1]>10)
BuySignalOut   = crossunder(longMA[1],shortMA[1])
bgcolor(BuySignal ? color.green : na, transp=70)
bgcolor(BuySignalOut ? color.green : na, transp=10)



SellSignalBarssince = barssince(rsi4h[1]>rsi4h[0] and rsi4h[1]>80)
SellSignal      = (rsi4h[1]>rsi4h[0] and rsi4h[1]>80 and SellSignalBarssince[1]>10)
SellSignalOut   = crossunder(shortMA[1],longMA[1])
bgcolor(SellSignal ? color.red : na, transp=70)
bgcolor(SellSignalOut ? color.red : na, transp=10)


if BuySignal
    strategy.close("short", comment = "Exit short")
    strategy.entry("long", true)
    strategy.exit("Max Loss", "long", loss = maxLoss)

if BuySignalOut
    strategy.close("long", comment = "Exit Long")
if SellSignal
    // Enter trade and issue exit order on max loss.
    strategy.close("long", comment = "Exit Long")
    strategy.entry("short", false)
    strategy.exit("Max Loss", "short", loss = maxLoss)
if SellSignalOut
    // Force trade exit.
    strategy.close("short", comment = "Exit short")
    
//--------------------------------------------------
//ATR
MyAtr = atr(10)
AtrFactor = 10
mySLBuy  = close[BuySignalBarssince]
mySLSell = close[SellSignalBarssince]

plotchar(BuySignal, "BuySignal", "⬆", location.belowbar, color.lime,size =size.huge )
plotchar(BuySignalOut, "BuySignalOut", "█", location.belowbar, color.lime,size =size.small)
plotchar(SellSignal, "SellSignal", "⬇", location.abovebar ,color.red,size =size.huge)
plotchar(SellSignalOut, "SellSignalOut", "█", location.abovebar, color.red,size =size.small)