Estrategia de comercio de tortugas basada en los canales de Donchian

El autor:¿ Qué pasa?, Fecha: 2024-02-26 14:35:02
Las etiquetas:

img

Resumen general

La estrategia de trading de la tortuga Tang Anqi es una versión muy simplificada de la estrategia de trading original de la tortuga. Es muy diferente de la estrategia original de la tortuga. La estrategia utiliza dos canales Donchian, un canal rápido y un canal lento. Los períodos de canal son establecidos por el usuario, con valores predeterminados de 20 barras para el canal rápido y 50 barras para el canal lento. La estrategia utiliza las bandas superior e inferior del canal lento para entrar en operaciones y la banda media del canal rápido para establecer stop loss.

Estrategia lógica

La lógica central de esta estrategia es la siguiente:

  1. Cálcule el canal de Donchian rápido: la banda superior es la más alta sobre las barras rápidas pasadas, la banda inferior es la más baja, y la banda media es el promedio de las bandas superior e inferior.

  2. Calcule el canal de Donchian lento: la banda superior es la más alta alta sobre las barras lentas pasadas, la banda inferior es la más baja baja.

  3. Cuando no hay posición, una señal larga se activa cuando el precio toca la banda superior del canal lento, y una señal corta se activa cuando el precio toca la banda inferior del canal lento.

  4. Después de abrir una posición, la banda media del canal rápido se utiliza como stop loss.

  5. Cierre la posición cuando haya una señal opuesta a la señal de apertura durante el período de retención.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. Las reglas simples son fáciles de implementar, los canales de Donchian y los movimientos de stop loss son fáciles de entender, adecuados para principiantes.

  2. Los usuarios pueden ajustar los parámetros basados en productos comerciales y plazos para adaptarse a diferentes entornos de mercado.

  3. Pocas señales de negociación contradictorias, sólo se basa en las rupturas de precios de las bandas de canales, evita señales falsas de indicadores comunes.

  4. Gestión automática de stop loss: el stop loss móvil basado en la banda media del canal rápido puede limitar las pérdidas en operaciones individuales.

Análisis de riesgos

Entre los riesgos a los que se enfrenta esta estrategia figuran:

  1. Más stop loss cuando la tendencia no está clara.

  2. Cuando la tendencia se invierte, las ganancias flotantes en la dirección de la tendencia anterior se convertirán en pérdidas.

  3. Los parámetros incorrectos conducen a un exceso de agresividad o exceso de conservadurismo.

  4. La estabilidad del servidor es importante para evitar excepciones que conducen al fracaso en el comercio automatizado.

Para reducir los riesgos anteriores, se pueden optimizar los parámetros, limitar adecuadamente el tamaño de las posiciones y añadir módulos de gestión de riesgos.

Direcciones de optimización

Las estrategias pueden mejorarse en los siguientes aspectos:

  1. Añadir filtros para señales de entrada para evitar captar señales de inversión de tendencia.

  2. Optimizar parámetros como los períodos de canal y el tamaño de la posición para adaptarse mejor a diferentes instrumentos comerciales.

  3. Añadir módulos de gestión de riesgos como los límites máximos de extracción y los límites diarios de pérdidas para evitar pérdidas excesivas en eventos extremos.

  4. Mejorar las estrategias de stop loss, por ejemplo, adoptar un stop loss de seguimiento para hacer que las paradas sean más adaptables a las tendencias del mercado.

Conclusión

En resumen, la Estrategia de Trading de la Tortuga Tang Anqi es un sistema simple de seguimiento de tendencias. Sus ventajas se encuentran en su facilidad de comprensión y automatización. Pero también conlleva ciertos riesgos, y se necesitan más optimizaciones en los parámetros y la gestión de riesgos para hacerlo más práctico. Con medidas como el ajuste de parámetros, la adición de filtros y módulos de control de riesgos, la estrategia puede lograr mejores resultados en el comercio en vivo.


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-15 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2020

//@version=4
strategy("Noro's SimpleTurtle Strategy", shorttitle = "SimpleTurtle 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")
sizelong  = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot long, %")
sizeshort = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot short, %")
fast      = input(20, minval=1)
slow      = input(50, minval=1)
showof    = input(true, defval = true, title = "Show offset")
showll    = input(true, defval = true, title = "Show lines")
showdd    = input(false, 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)
plot(ls, offset = offset, color = colorpc)
plot(center, offset = offset, color = colorsl)

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

//Orders
truetime = true
lotlong = 0.0
lotshort = 0.0
lotlong := size != size[1] ? strategy.equity / close * sizelong / 100 : lotlong[1]
lotshort := size != size[1] ? strategy.equity / close * sizeshort / 100 : lotshort[1]

//Orders
strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and truetime)
strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and truetime)
strategy.exit("Long", stop = center, when = needlong and strategy.position_size > 0)
strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0)
if true
    strategy.close_all()
    strategy.cancel("fast L")
    strategy.cancel("fast S")
    strategy.cancel("slow L")
    strategy.cancel("slow S")
    
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]))
    
    //Label
    min := round(min * 100) / 100
    labeltext = "Drawdown: " + tostring(min) + "%"
    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.