Estrategia de la tortuga de doble canal

El autor:¿ Qué pasa?, Fecha: 2024-01-05 16:16:44
Las etiquetas:

img

Resumen general

La estrategia de la tortuga de avance de doble canal es una estrategia de ruptura que genera señales comerciales utilizando el indicador del canal de Donchian. La estrategia establece canales rápidos y lentos al mismo tiempo. El canal rápido se utiliza para establecer precios de stop loss, mientras que el canal lento se utiliza para generar señales de apertura y cierre. Cuando el precio rompe el carril superior del canal lento, vaya largo; cuando el precio rompe el carril inferior, vaya corto.

Principios

La lógica central de la Estrategia de la Tortuga de Avance del Canal Doble se basa en el indicador del Canal de Donchian. El Canal de Donchian consiste en un tren superior, un tren inferior y un tren medio calculados a partir de los precios más altos y más bajos. Esta estrategia crea canales rápidos y lentos simultáneamente, con parámetros establecidos por el usuario y períodos predeterminados de 50 bares para el canal lento y 20 bares para el canal rápido.

Los rieles superiores e inferiores (líneas azules) del canal lento se utilizan para generar señales comerciales. Cuando el precio atraviesa el tren superior, vaya largo; cuando el precio se rompe por debajo del tren inferior, vaya corto. El tren medio (línea roja) del canal rápido se utiliza para detener la pérdida. El precio de stop loss para posiciones largas es el tren medio del canal rápido; el precio de stop loss para posiciones cortas también es el tren medio del canal rápido.

Por lo tanto, el canal lento genera señales mientras que el canal rápido controla los riesgos. El uso de canales dobles asegura tanto la estabilidad de la señal como el control del riesgo.

Además, la estrategia también establece el porcentaje de riesgo y el tamaño de la posición. El porcentaje de riesgo se impone al 2%, y los tamaños de posición se calculan en función del porcentaje de riesgo y la volatilidad del canal. Esto controla efectivamente el riesgo por comercio y el aumento gradual de la posición.

Ventajas

La estrategia de la tortuga de doble canal tiene las siguientes ventajas:

  1. El uso de Donchian Channel para determinar tendencias puede capturar de manera efectiva las tendencias a mediano y largo plazo.

  2. La estrategia también establece el porcentaje de riesgo para limitar directamente la pérdida máxima de la cuenta.

  3. Los grandes parámetros de canal lento requieren un tiempo relativamente largo para formar canales, evitando el comercio excesivo. Mientras que el canal rápido detiene la pérdida y captura correcciones a corto plazo. Los dos se complementan para formar señales comerciales estables.

  4. La estrategia utiliza la volatilidad del canal de Donchian para calcular el tamaño de la posición para el control de la exposición al riesgo.

  5. Visualización intuitiva. Los canales dobles, las líneas de stop loss, el fondo de posición están claramente trazados para una comprensión lógica de la estrategia fácil. Mientras tanto, también se muestran el descenso máximo, la pérdida máxima y otras métricas clave.

Los riesgos

La estrategia de la tortuga de doble canal también tiene algunos riesgos:

  1. Incapaz de utilizar eficazmente los precios intradiarios. Turtle solo abre posiciones en las rupturas de canal, incapaz de usar una situación más precisa para aumentar las posiciones. Esto se puede mejorar mediante la optimización.

  2. Los puntos de stop loss son propensos a la caza. Los puntos de stop loss fijos del tren medio de las tortugas pueden ser fácilmente golpeados en mercados activos. Esto requiere un ajuste dinámico de los parámetros del tren medio.

  3. Los parámetros de doble canal necesitan ajuste fino. La configuración adecuada de parámetros es crucial para señales razonablemente estables. Los parámetros fijos actuales no pueden adaptarse a los cambios del mercado, se deben introducir características adaptativas.

  4. Incapaz de utilizar información de la noche a la mañana y pre-mercado. Actualmente, la estrategia solo juzga las tendencias basadas en datos de mercado en vivo, incapaz de informar las decisiones comerciales con acciones de precios de la noche a la mañana y pre-mercado. Esto se puede abordar mediante el ajuste de datos.

Direcciones de optimización

Las principales direcciones de optimización para la Estrategia de la Tortuga de Avance de Doble Canal son:

  1. Utilice los precios intradiarios para ajustar las posiciones. Las posiciones se pueden ajustar en función de la distancia del precio del canal en lugar de simplemente largo / corto.

  2. Cambiar las paradas fijas del tren central a cálculos dinámicos para evitar la caza de pérdidas fijas.

  3. Optimización adaptativa de parámetros de canal: permite que los parámetros del canal se ajusten automáticamente en función de las condiciones del mercado en lugar de valores fijos manuales.

  4. Incorporar información sobre el día a día y antes del mercado: no se deben tener en cuenta sólo los precios en vivo, sino también los precios sobre el día y antes del mercado al juzgar las tendencias para obtener condiciones de mercado más completas.

  5. Combinar varias acciones e índices. Aplicar la estrategia a múltiples acciones, con oportunidades de arbitraje entre acciones e índices para mejorar el alfa.

Conclusión

En conclusión, la Estrategia de la Tortuga de Avance de Doble Canal es una estrategia general estable y eficiente con control de riesgos incrustado. El uso dual de canales rápidos y lentos asegura tanto la estabilidad de la señal como la gestión de riesgos. Además, el fondo de posición, la extracción máxima y el tamaño de posición también hacen que esta estrategia sea fácilmente manejable y optimizable. En general, esta es una estrategia cuantitativa de alta calidad que vale la pena investigar y aplicar a fondo.


/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2020

//@version=4
strategy("Noro's RiskTurtle Strategy", shorttitle = "RiskTurtle str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1)

//Settings
needlong  = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
risk      = input(2, minval = 0.1, maxval = 99, title = "Risk size, %")
fast      = input(20, minval = 1, title = "Fast channel (for stop-loss)")
slow      = input(50, minval = 1, title = "Slow channel (for entries)")
showof    = input(true, defval = true, title = "Show offset")
showll    = input(true, defval = true, title = "Show lines")
showdd    = input(true, defval = true, title = "Show label (drawdown)")
showbg    = input(true, defval = true, title = "Show background")
fromyear  = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear    = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth   = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday   = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today     = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Donchian price channel fast
hf = highest(high, fast)
lf = lowest(low, fast)
center = (hf + lf) / 2

//Donchian price chennal slow
hs = highest(high, slow)
ls = lowest(low, slow)

//Lines
colorpc = showll ? color.blue : na
colorsl = showll ? color.red : na
offset = showof ? 1 : 0
plot(hs, offset = offset, color = colorpc, title = "Slow channel high")
plot(ls, offset = offset, color = colorpc, title = "Slow channel low")
plot(center, offset = offset, color = colorsl, title = "Fast channel stop-loss")

//Background
size = strategy.position_size
colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(colorbg, transp = 70)

//Var
loss = 0.0
maxloss = 0.0
equity = 0.0
truetime = true

//Lot size
risksize = -1 * risk
risklong = ((center / hs) - 1) * 100
coeflong = abs(risksize / risklong)
lotlong = (strategy.equity / close) * coeflong
riskshort = ((center / ls) - 1) * 100
coefshort = abs(risksize / riskshort)
lotshort = (strategy.equity / close) * coefshort

//Orders
strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and hs > 0 and truetime)
strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and ls > 0 and truetime)
strategy.exit("LongExit", "Long", stop = center, when = needlong and strategy.position_size > 0)
strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")
    
if showdd

    //Drawdown
    max = 0.0
    max := max(strategy.equity, nz(max[1]))
    dd = (strategy.equity / max - 1) * 100
    min = 100.0
    min := min(dd, nz(min[1]))
    
    //Max loss size
    equity := strategy.position_size == 0 ? strategy.equity : equity[1]
    loss := equity < equity[1] ? ((equity / equity[1]) - 1) * 100 : 0
    maxloss := min(nz(maxloss[1]), loss)
    
    //Label
    min := round(min * 100) / 100
    maxloss := round(maxloss * 100) / 100
    labeltext = "Drawdown: " + tostring(min) + "%" + "\nMax.loss " + tostring(maxloss) + "%"
    var label la = na
    label.delete(la)
    tc = min > -100 ? color.white : color.red
    osx = timenow + round(change(time)*10)
    osy = highest(100)
    // la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)

Más.