Estrategia de escape basada en el comercio de tortugas

El autor:¿ Qué pasa?, Fecha: 2023-10-17 17:22:34
Las etiquetas:

img

Resumen general

Esta estrategia se basa en el famoso sistema de comercio de tortugas, utilizando el canal Donchian para identificar las rupturas y ATR para establecer el stop loss para seguir la tendencia. La ventaja es la fuerte capacidad de control de descenso al limitar efectivamente la pérdida de una sola operación. Sin embargo, la adaptabilidad a través de diferentes instrumentos comerciales es débil y necesita ajuste de parámetros. En general, como una versión introductoria del sistema de comercio de tortugas, esta estrategia se puede utilizar para validar la efectividad de las reglas de comercio de tortugas y también servir como una estrategia comercial cuantitativa básica.

Principios

La estrategia se basa principalmente en dos indicadores: el Canal de Donchian y el ATR.

El canal Donchian está construido por el más alto y el más bajo. La longitud predeterminada del canal es de 20 días, trazada con el más alto y el más bajo de 20 días. La señal de compra se genera cuando el precio se rompe por encima de la banda superior y la señal de venta cuando el precio se rompe por debajo de la banda inferior.

El ATR mide la volatilidad del mercado y se utiliza para establecer el stop loss. El período ATR predeterminado es de 20 días.

La lógica de negociación específica es:

  1. Ir largo cuando el precio se rompe por encima de la banda superior.

  2. Establecer el stop loss al precio más bajo al momento de la entrada menos 2N ATR.

  3. Cierre la posición larga cuando el precio se rompe por debajo de la banda inferior.

  4. Ir corto cuando el precio se rompe por debajo de la banda inferior.

  5. Establecer el stop loss al precio más alto en la entrada más 2N ATR.

  6. Cierre la posición corta cuando el precio se rompe por encima de la banda superior.

En resumen, la estrategia identifica la dirección de la tendencia y las señales de entrada con el canal Donchian, y controla el riesgo con el stop loss basado en ATR, para seguir las tendencias.

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. Una fuerte capacidad de control de descenso.

  2. Capacidad para seguir las tendencias. Donchian Channel puede identificar eficazmente las rupturas y cambios de tendencia.

  3. Aplicable para instrumentos de alta volatilidad: el ATR tiene en cuenta la volatilidad del mercado al establecer el stop loss.

  4. Lógica simple y clara, fácil de entender e implementar.

  5. Flexibilidad para optimizar con el lenguaje Python.

Análisis de riesgos

Algunos riesgos de esta estrategia a tener en cuenta:

  1. Los parámetros del canal necesitan una optimización para diferentes instrumentos y plazos.

  2. El riesgo consecutivo de pérdida de detención: pueden producirse múltiples detonantes de pérdida de detención en condiciones de mercado volátiles.

  3. El parámetro ATR requiere backtesting. ATR afecta directamente el stop loss y debe ajustarse en función de la volatilidad.

  4. Potencialmente demasiada frecuencia de negociación, puede ocurrir demasiadas señales bajo el mercado de rango.

  5. La estrategia se centra en el stop loss y no puede capturar completamente las ganancias de tendencia.

  6. Las diferencias de precio pueden desencadenar directamente la pérdida de parada.

Direcciones de optimización

La estrategia puede mejorarse en los siguientes aspectos:

  1. Optimizar los parámetros del canal para diferentes instrumentos.

  2. Añadir filtros para evitar demasiadas señales bajo el mercado de rango limitado.

  3. Optimizar el parámetro del período ATR y el impacto del ensayo en el stop loss.

  4. Añadir entrada piramidal para aumentar el tamaño de la posición para maximizar las ganancias de tendencia.

  5. Incorporar otros indicadores como MACD, KD para evitar señales falsas.

  6. Ajustar el stop loss en función de los costos de deslizamiento y comisión.

  7. Prueba la adaptabilidad en diferentes instrumentos y optimiza los parámetros.

Resumen de las actividades

Como una versión introductoria del sistema de Turtle Trading, esta estrategia tiene una lógica simple y clara, una fuerte capacidad de control de descenso y puede validar eficazmente los principios de Turtle Trading.


/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Based on Turtle traders strategy: buy/sell on Donchian breakouts and stop loss on ATR 2x
// initial version considerations :
//// 1. Does not consider filter for avoiding new entries after winning trades (filtering rule from Turtle Strategy on 20 day breakout strategy) 
//// 2. Does not consider pyramiding (aditional entries after 1N price movements)

strategy("Turtle trading strategy (Donchian/ATR)", overlay=true)

enter_period = input(20, minval=1, title="Enter Channel")
exit_period = input(10, minval=1, title="Exit Channel")
offset_bar = input(0,minval=0, title ="Offset Bars")
direction = input("Long",options=["Long","Short"],title="Direction")
max_length = max(enter_period,exit_period)
atrmult = input(2,title="ATR multiplier (Stop Loss)")
atrperiod = input(20,title="ATR Period")

closed_pos = false
dir_long = direction == "Long"? true : false
atr = atr(atrperiod)
upper = dir_long ? highest(enter_period): highest(exit_period)
lower = dir_long ? lowest(exit_period): lowest(enter_period)
atrupper = close + atr
atrlower = close - atr
plotted_atr = dir_long ? atrlower : atrupper

//basis = avg(upper, lower)

l = plot(lower, style=line, linewidth=3, color=lime, offset=1)
u = plot(upper, style=line, linewidth=3, color=lime, offset=1)
a = plot(plotted_atr, style=line,linewidth=2,color=red,offset=1)
//plot(basis, color=yellow, style=line, linewidth=1, title="Mid-Line Average")
//break upper Donchian (with 1 candle offset) (buy signal)
break_up = (close >= upper[1])
//break lower Donchian (with 1 candle offset) (sell signal)
break_down = (close <= lower[1])
stop_loss = dir_long ? (close<=plotted_atr[1]) : (close>=plotted_atr[1])

if break_up and dir_long
    strategy.entry("buy", strategy.long, 1)
    closed_pos :=false
if (break_down or stop_loss) and dir_long
    strategy.close("buy")
    
if break_down and not dir_long
    strategy.entry("sell", strategy.short, 1)
    closed_pos :=false
if (break_up or stop_loss) and not dir_long
    strategy.close("sell")
    closed_pos :=true
    
losing_trade = strategy.equity[0]<strategy.equity[1]
//plotshape(losing_trade,text="Losing!")    
plotshape(stop_loss,style=dir_long?shape.labeldown:shape.labelup,text="Stop!")
//plot(strategy.equity)


    



Más.