Estratégia de cruzamento da média móvel axial do RSI

Autora:ChaoZhang, Data: 23 de janeiro de 2023 16:45:55
Tags:

img

Resumo

A Estratégia de Crossover de Média Móvel Axial do RSI gera sinais de negociação calculando o indicador RSI e sua linha média móvel simples e observando cruzes douradas e cruzes mortas entre os dois.

Estratégia lógica

A estratégia primeiro calcula o indicador RSI de 14 dias, seguido pela linha média móvel simples de 8 dias do indicador RSI. Um sinal de compra é gerado quando o indicador RSI cruza acima de sua linha média móvel, enquanto um sinal de venda é gerado quando o RSI cruza abaixo de sua linha média móvel.

Ao mesmo tempo, a estratégia adiciona Bandas de Bollinger para determinar se a linha da média móvel axial do RSI está relativamente superlotada, calculado o desvio padrão, evitando assim picos de compra e fundos de venda.

Análise das vantagens

A estratégia de cruzamento da média móvel axial do RSI combina o indicador de tendência RSI e a linha média móvel do indicador que segue a curva, o que pode determinar efetivamente as tendências do mercado e a aleatoriedade. A média aritmética do indicador RSI pode suavizar o impacto das flutuações de preços nos sinais.

As Bandas de Bollinger adicionadas nesta estratégia usam o princípio do desvio padrão para ajustar automaticamente a largura das faixas superior e inferior, evitando efetivamente sinais de negociação errados. Quando as Bandas de Bollinger estreitam, isso indica que a mudança está diminuindo gradualmente, o que é adequado para procurar oportunidades de reversão. Quando as Bandas de Bollinger expandem, indica um período de violenta flutuação do mercado, o que é adequado para rastrear tendências.

Análise de riscos

O maior risco da estratégia de cruzamento da média móvel axial do RSI é o atraso do indicador do RSI e das próprias linhas médias móveis.

Outro risco importante é o desvio dos indicadores quando a tendência do mercado passa de alta para baixa ou vice-versa, enquanto os indicadores RSI e MA não reagem a tempo, resultando em operações perdedoras.

As soluções incluem ajustar adequadamente os parâmetros do RSI, encurtar os períodos de MA, adicionar indicadores de tendência para ajudar no julgamento e alargar adequadamente o intervalo de stop loss.

Orientações de otimização

A estratégia de cruzamento da média móvel axial do RSI pode ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros do RSI: ajustar o comprimento do RSI para equilibrar sensibilidade e estabilidade

  2. Otimizar os parâmetros de MA: ajustar os parâmetros do tipo e do período de MA para otimizar o seguimento da tendência

  3. Adicionar mecanismos de stop loss: definir a perda de movimento ou tempo stop para controlar a perda única

  4. Incorporar indicadores de tendência: adicionar MACD, KDJ, etc. para evitar erros de avaliação da reversão

  5. Verificação em vários prazos: usar prazos mais longos para determinar tendências para evitar ficar preso

Conclusão

A estratégia de cruzamento de média móvel axial do RSI é uma estratégia quantitativa de negociação maturada. Combina as vantagens de vários indicadores técnicos e pode capturar os movimentos do mercado mainstream através do ajuste de parâmetros e otimização multidimensional. O maior risco é o atraso dos indicadores, que precisa ser abordado por stop losses para controlar as perdas. Quando implementado corretamente, essa estratégia pode gerar retornos de investimento relativamente estáveis.


/*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=5
// Copyright (c) 2020-present, Alex Orekhov (everget)
// Corrected Moving Average script may be freely distributed under the terms of the GPL-3.0 license.
strategy('rsisma', shorttitle='rsisma')

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

plot(rsi, "RSI", color=#7E57C2)
plot(rsiMA, "RSI-based MA", color=color.blue)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Upper Bollinger Band", color=color.green)
bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Lower Bollinger Band", color=color.green)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill")


long = ta.crossover(rsi, rsiMA)
short = ta.crossunder(rsi, rsiMA)
if long
    strategy.entry("long", strategy.long)
if short
    strategy.close("long", comment = "long TP")

 
// long1 = close * 9
// long2 = long1 / 100
// long3 = long2 + close


//plot(long3,color=color.blue)
// if short
//     strategy.entry("short", strategy.short)
// if long
//     strategy.close("short", comment = "short TP")




Mais.