La estrategia de ruptura de reversión del RSI es una estrategia que identifica situaciones de sobrecompra y sobreventa utilizando el indicador RSI y toma operaciones contra tendencia cuando los precios rompen la media móvil.
La estrategia se basa principalmente en la siguiente lógica:
Utilice el RSI para juzgar si los precios están sobrecomprados o sobrevendidos. RSI por debajo de 25 se considera sobrevendido; RSI por encima de 80 se considera sobrecomprado.
Utilice la EMA de 200 días para determinar la dirección general de la tendencia. Los precios que se rompen por encima de la EMA se consideran una señal de tendencia alcista y la ruptura por debajo de la EMA una señal de tendencia bajista.
Cuando el RSI muestra una señal de sobreventa y el precio se rompe por encima de la EMA, es una señal de reversión típica, que indica que los precios se recuperan de la zona de sobreventa.
Cuando el RSI muestra una señal de sobrecompra y los precios se rompen por debajo de la EMA, sea corto para una tendencia bajista. También es una señal de inversión, lo que indica que los precios comienzan a retirarse de la zona de sobrecompra.
Al operar inversiones, esperamos atrapar el comienzo de una nueva tendencia antes de que comience.
Específicamente, la regla de entrada es ir largo cuando el RSI < 25 y el precio se rompe por encima de la banda superior; ir corto cuando el RSI > 80 y el precio se rompe por la banda inferior. Salida cuando el precio más alto del día se rompe por debajo del precio más alto del día anterior.
La estrategia de ruptura de reversión del RSI tiene las siguientes ventajas:
Captura de las posibilidades de reversión: la identificación de sobrecompra / sobreventa con el RSI permite captar las reversiones de precios, que es clave para generar alfa.
El comercio con tendencias: la integración de EMA asegura que las operaciones se alineen con las tendencias principales.
Control de riesgos: las operaciones de reversión limitan el período de tenencia de la posición, controlando los riesgos.
Parámetros flexibles: el período RSI y el período EMA pueden ajustarse a los cambios del régimen del mercado, mejorando la adaptabilidad.
Frecuencia de negociación adecuada: Las señales de reversión se producen a frecuencias moderadas, evitando el exceso de negociación mientras permanecen activas.
Simplicidad: Las reglas son sencillas y fáciles de aplicar en el comercio en vivo.
La estrategia también presenta los siguientes riesgos:
Riesgo de reversión fallido: los precios pueden reanudar la tendencia original después de la señal de reversión, lo que conduce a pérdidas.
Riesgo de tendencia incierta: la EMA no funciona bien cuando no existe una tendencia clara.
Riesgo de optimización: los parámetros RSI y EMA tienen un gran impacto en el rendimiento.
Riesgo de sobreajuste: la persecución del rendimiento durante la optimización puede conducir a un sobreajuste.
Riesgo de sobrecomercio: las señales de reversión demasiado frecuentes conducen a una operación excesiva.
La estrategia puede mejorarse aún más en los siguientes aspectos:
Evalúe la calidad de las acciones: Aplique la estrategia solo a las acciones de alta calidad basadas en los fundamentos.
Incorporar otros indicadores: añadir MACD, KD, etc. para confirmar las señales de reversión y mejorar la fiabilidad.
Ajuste dinámico de los parámetros: Adaptar dinámicamente los parámetros RSI y EMA en función de las condiciones cambiantes del mercado.
Optimiza el tiempo de entrada: ajusta las reglas de entrada para esperar la confirmación de la inversión.
Estrategia de obtención de ganancias: Establezca niveles adecuados de obtención de ganancias para evitar devolver ganancias.
Considerar los costes de transacción: evaluar el impacto del deslizamiento y las comisiones.
Considere la volatilidad: concéntrese solo en acciones con alta volatilidad para hacer que la estrategia sea más robusta.
La estrategia de ruptura de la inversión del RSI combina señales de tendencia y inversión para detectar reversiones tempranas y oportunidades importantes. La frecuencia de negociación moderada ayuda al control de riesgos. Las optimizaciones adecuadas en el momento de entrada, la toma de ganancias y las selecciones de parámetros pueden mejorar aún más el rendimiento. Con optimizaciones sólidas, esta estrategia puede ser un enfoque comercial cuantitativo efectivo.
/*backtest start: 2022-10-01 00:00:00 end: 2023-10-07 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © jocker.soad //@version=4 // strategy("My Script", overlay=true, initial_capital=10000, default_qty_value=100) min = input(title="Valor minimo de entrada", defval=25) qtdAtivos = input(title="Quantidade de ações", defval=1) // overBuyLine = hline(80) // overSellLine = hline(min) var comprado = false var valorComprado = 0.0 var qtdDiasComprado = 0 var valorLucro = 0.0 valueRsi = rsi(close, 2) valueSma = sma(close, 200) valueEma = ema(close, 200) lastHighPrice = high[2] buyValidation = valueRsi <= min sellValidation = close >= lastHighPrice // plot(lastHighPrice, trackprice=true, offset=-99999, color=color.olive, linewidth=3, style=plot.style_area) // plot(valueRsi) // plot(valueSma) // plot(valueEma) // plotshape(sellValidation, style=shape.triangledown, color=color.blue) // plotshape(comprado, style=shape.triangledown, color=color.blue) startDate = input(title="Inicio Dia", type=input.integer, defval=1, minval=1, maxval=31) startMonth = input(title="Inicio Mes", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Inicio Ano", type=input.integer, defval=2018, minval=1800, maxval=2100) endDate = input(title="Final Dia", type=input.integer, defval=1, minval=1, maxval=31) endMonth = input(title="Final Mes", type=input.integer, defval=12, minval=1, maxval=12) endYear = input(title="Final Ano", type=input.integer, defval=2020, minval=1800, maxval=2100) inDateRange = true if inDateRange if close >= valueEma if comprado == false and buyValidation qtdDiasComprado := 0 comprado := true valorComprado := close strategy.order("buy", true, qtdAtivos, when=buyValidation) if sellValidation and comprado == true comprado := false valorLucro := valorLucro + (close - valorComprado) valorComprado := 0 strategy.order("sell", false, qtdAtivos, when=sellValidation) if comprado == true and sellValidation == false qtdDiasComprado := qtdDiasComprado + 1 // plot(valorLucro, color=color.lime)