Basado en la estrategia clásica de Larry Connors


Fecha de creación: 2023-10-27 16:32:19 Última modificación: 2023-10-27 16:32:19
Copiar: 1 Número de Visitas: 660
1
Seguir
1617
Seguidores

Basado en la estrategia clásica de Larry Connors

Descripción general

Esta estrategia se basa en la idea de la estrategia clásica de Larry Connors, que utiliza un sistema de doble línea para capturar las oscilaciones de la línea media y corta en el mercado y realizar una estrategia de operación segura en las zonas de sobreventa y sobrecompra.

Principio de estrategia

  1. Utiliza el indicador RSI de 2 ciclos para determinar si las acciones están en la zona de sobreventa.

  2. Utilice la línea media de largo período (de 200 ciclos) para determinar la dirección de la tendencia general. Sólo considere la posición cuando el precio sea superior a la línea media de largo período.

  3. Cuando el precio está por encima de la media de largo plazo y el indicador RSI está por debajo de la línea de venta por encima de la línea de venta por encima de la línea de venta por encima de la línea de venta por encima de la línea de venta por debajo de la línea de venta por debajo de la línea de venta por debajo de la línea de venta por debajo de la línea de venta por debajo de la línea de venta por debajo de la línea de venta por debajo de la línea de venta.

  4. Cuando el alza de los precios rompe la línea media de corto período (< 5 ciclos), el alza se detiene en el precio de mercado.

Además, la política ofrece las siguientes opciones de configuración:

  • Parámetros del RSI: longitud del ciclo, posición de la línea de sobreventa y sobreventa.

  • Parámetros de la línea media: largo y corto ciclo de la línea media.

  • Filtrado de línea media RSI: añade la línea media RSI para evitar que el indicador RSI oscile demasiado.

  • Configuración de la parada de pérdidas: se puede elegir si se añade la parada de pérdidas.

Análisis de las ventajas

  1. El uso de un sistema de doble línea que permite un seguimiento eficaz de las tendencias de la línea media larga.

  2. El RSI evita perder el mejor momento de entrada en una fuerte sacudida.

  3. Se puede configurar con flexibilidad para optimizar diferentes parámetros.

  4. La estrategia de descifrado de rundown no es fácil.

Análisis de riesgos

  1. Las estrategias de doble equilátero son sensibles a los parámetros y necesitan ser optimizadas para obtener el mejor resultado.

  2. La configuración sin pérdidas conlleva el riesgo de pérdidas ampliadas. Se requiere una gestión cuidadosa de los fondos y el control del tamaño de las posiciones individuales.

  3. Puede haber riesgo de pérdidas por falsas rupturas en situaciones de crisis. Se puede considerar optimizar el ciclo de la línea media o agregar otras condiciones como filtros.

  4. El análisis de los riesgos de la adecuación de los datos. La solidez de la estrategia debe ser verificada en varios mercados durante un período de tiempo.

Dirección de optimización

  1. Prueba la combinación de parámetros optimizados para el RSI y la línea media para encontrar el parámetro óptimo.

  2. Prueba diferentes condiciones de filtración de entrada, como el aumento repentino de la transacción, para reducir las señales falsas.

  3. La adición de un tracker de stop loss para controlar las pérdidas individuales. Es necesario evaluar el impacto de la configuración de stop loss en la ganancia general.

  4. Evaluar el impacto de los diferentes períodos de tenencia de posiciones en los beneficios y buscar el período de tenencia óptimo.

  5. Prueba la solidez de la estrategia en períodos de tiempo más largos (por ejemplo, el nivel de la línea de sol).

Resumir

Esta estrategia integra el seguimiento de tendencias de doble línea media y las características de sobrecompra y sobreventa del indicador RSI, un sistema de ruptura típico. A través de la optimización de los parámetros, la administración estricta de fondos y la verificación de la robustez, la estrategia puede ser una herramienta poderosa para el comercio cuantitativo. Sin embargo, los comerciantes deben estar atentos a los problemas de adaptación y continuar ajustando y perfeccionando la estrategia en el entorno de mercado cambiante.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("RSI Strategy", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Starter Parameters

length = input(title="RSI Lenght", defval=2)
overBoughtRSI = input(title="OverBought Level for RSI",  defval=10)
shortLength = input(title="Short MA Length",  defval=5)
longLength = input(title="Long MA Length",  defval=200)

RuleMRSI=input(title="RSI Moving Average Filter", defval= true)
lengthmrsi=input(title="RSI Moving Average Length",  defval=4)
overBoughtMRSI=input(title="OverBought Level for the Moving Average of the RSI",  defval=30)

Rulestop=input(title="Apply Stop Loss", defval=false)
stop_percentual=input(title="% Stop Loss",  defval=10)

//RSI

vrsi = rsi(close, length)

//Moving Averages

longma = sma(close,longLength)
shortma = sma(close,shortLength)
mrsi=sma(vrsi,lengthmrsi)

//Stop Loss

stop_level = strategy.position_avg_price*((100-stop_percentual)/100)

//Backtest Period
testStartYear = input(2009, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true
    
//Strategy

if testPeriod() and (not na(vrsi))
    if  (RuleMRSI==false) and (Rulestop==false)
        if (vrsi<overBoughtRSI) and (close>longma)
            strategy.entry("RsiLE", strategy.long , comment="Open")
        if (close>shortma)
            strategy.close_all()

    if (RuleMRSI==true) and (Rulestop==false)
        if (vrsi<overBoughtRSI) and (close>longma) and (mrsi<overBoughtMRSI)
            strategy.entry("RsiLE", strategy.long , comment="Open")
        if (close>shortma)
            strategy.close_all()

    if (RuleMRSI==false) and (Rulestop==true)
        if (vrsi<overBoughtRSI) and (close>longma)
            strategy.entry("RsiLE", strategy.long , comment="Open")
            strategy.exit("RsiLE", stop = stop_level)
        if (close>shortma)
            strategy.close_all()

    if (RuleMRSI==true) and (Rulestop==true)
        if (vrsi<overBoughtRSI) and (close>longma) and (mrsi<overBoughtMRSI)
            strategy.entry("RsiLE", strategy.long , comment="Open")
            strategy.exit("RsiLE", stop = stop_level)
        if (close>shortma)
            strategy.close_all()