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.
La lógica central de esta estrategia es la siguiente:
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.
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.
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.
Después de abrir una posición, la banda media del canal rápido se utiliza como stop loss.
Cierre la posición cuando haya una señal opuesta a la señal de apertura durante el período de retención.
Las ventajas de esta estrategia son:
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.
Los usuarios pueden ajustar los parámetros basados en productos comerciales y plazos para adaptarse a diferentes entornos de mercado.
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.
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.
Entre los riesgos a los que se enfrenta esta estrategia figuran:
Más stop loss cuando la tendencia no está clara.
Cuando la tendencia se invierte, las ganancias flotantes en la dirección de la tendencia anterior se convertirán en pérdidas.
Los parámetros incorrectos conducen a un exceso de agresividad o exceso de conservadurismo.
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.
Las estrategias pueden mejorarse en los siguientes aspectos:
Añadir filtros para señales de entrada para evitar captar señales de inversión de tendencia.
Optimizar parámetros como los períodos de canal y el tamaño de la posición para adaptarse mejor a diferentes instrumentos comerciales.
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.
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.
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)