La estrategia de cruce de promedio móvil axial del RSI genera señales de negociación calculando el indicador RSI y su línea promedio móvil simple y observando cruces doradas y cruces muertas entre los dos.
La estrategia primero calcula el indicador RSI de 14 días, seguido de la línea de promedio móvil simple de 8 días del indicador RSI.
Al mismo tiempo, la estrategia añade bandas de Bollinger para determinar si la línea de la media móvil axial del RSI está relativamente superpoblada mediante el cálculo de la desviación estándar, evitando así los picos de compra y los fondos de venta.
La estrategia de cruce de promedio móvil axial del RSI combina el indicador de tendencia RSI y la línea de promedio móvil del indicador que sigue la curva, lo que puede determinar eficazmente las tendencias del mercado y la aleatoriedad.
Las bandas de Bollinger añadidas en esta estrategia utilizan el principio de desviación estándar para ajustar automáticamente el ancho de las pistas superior e inferior, evitando efectivamente señales comerciales erróneas. Cuando las bandas de Bollinger se estrechan, indica que el cambio se está desacelerando gradualmente, lo que es adecuado para buscar oportunidades de inversión. Cuando las bandas de Bollinger se expanden, indica un período de violenta fluctuación del mercado, lo que es adecuado para rastrear tendencias.
El mayor riesgo de la estrategia de cruce de promedio móvil axial RSI es el retraso del indicador RSI y las líneas de promedio móvil en sí mismas.
Otro riesgo importante es el error de los indicadores cuando la tendencia del mercado pasa de alcista a bajista o viceversa, mientras que los indicadores RSI y MA no reaccionan a tiempo, lo que resulta en operaciones perdedoras.
Las soluciones incluyen el ajuste adecuado de los parámetros del RSI, la reducción de los períodos de MA, la adición de indicadores de tendencia para ayudar en el juicio y la ampliación adecuada del rango de stop loss.
La estrategia de cruce de la media móvil axial del RSI se puede optimizar en los siguientes aspectos:
Optimizar los parámetros del RSI: ajustar la longitud del RSI para equilibrar la sensibilidad y la estabilidad
Optimización de los parámetros de MA: ajuste de los parámetros de tipo y período de MA para optimizar el seguimiento de tendencias
Añadir mecanismos de stop loss: establecer la pérdida de movimiento o tiempo de stop para controlar la pérdida única
Incorporar indicadores de tendencia: añadir MACD, KDJ, etc. para evitar errores de valoración de la inversión
Verificación de marcos de tiempo múltiples: utilizar marcos de tiempo más largos para determinar tendencias para evitar quedar atrapados
La estrategia de cruce de promedio móvil axial del RSI es una estrategia de trading cuantitativa madura en general. Combina las ventajas de múltiples indicadores técnicos y puede capturar los movimientos del mercado principal a través del ajuste de parámetros y la optimización multidimensional. El mayor riesgo es el retraso de los indicadores, que necesita ser abordado mediante stop losses para controlar las pérdidas. Cuando se implementa correctamente, esta estrategia puede producir retornos de inversión relativamente estables.
/*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")