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.
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.
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.
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.
A estratégia de cruzamento da média móvel axial do RSI pode ser otimizada nos seguintes aspectos:
Otimizar os parâmetros do RSI: ajustar o comprimento do RSI para equilibrar sensibilidade e estabilidade
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
Adicionar mecanismos de stop loss: definir a perda de movimento ou tempo stop para controlar a perda única
Incorporar indicadores de tendência: adicionar MACD, KDJ, etc. para evitar erros de avaliação da reversão
Verificação em vários prazos: usar prazos mais longos para determinar tendências para evitar ficar preso
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")