
La estrategia de ruptura de doble tangential channel es una estrategia de negociación cuantitativa basada en el tangential channel. La estrategia utiliza una combinación de tangential channel rápido y tangential channel lento para lograr operaciones de ruptura de alto rendimiento con bajo riesgo.
La estrategia se basa principalmente en dos canales de dongxian, que incluyen un canal de dongxian lento con un ciclo más largo y un canal de dongxian rápido con un ciclo más corto.
El ciclo de la vía lenta de Dongxian es más largo y elimina el ruido del mercado, y sus señales de ruptura tienen una mayor fiabilidad. Cuando el precio rompa la vía lenta, haga una entrada adicional; Cuando el precio rompa la vía lenta, haga una entrada en blanco.
El corto ciclo de la corredura rápida de Dongxian permite una respuesta rápida a los cambios de precio a corto plazo. Cuando el precio vuelve a romper esta corredura, indica que la tendencia se ha invertido y se necesita un alto o una parada inmediata.
Además, se establecen condiciones de volatilidad como filtro de entrada para la estrategia. La entrada se activa solo cuando la fluctuación de los precios supera el porcentaje de brecha previamente establecido. Esto evita la entrada frecuente en la compilación horizontal.
Se pueden reducir estos riesgos mediante medidas como la optimización de parámetros, la configuración razonable de puntos de parada y la atención a los eventos importantes.
La estrategia de ruptura del canal de doble tangente es una estrategia de seguimiento de tendencias relativamente estable y confiable en su conjunto. Al mismo tiempo, tiene las ventajas de la captura de tendencias y el control de riesgos, y es un módulo básico adecuado para una variedad de estrategias de negociación de acciones.
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan
//@version=5
strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity)
slowLen = input.int(50, title="Slow Donchian")
fastLen = input.int(30, title="Fast Donchian")
volatility = input.int(3, title="Volatility (%)")
longProfitPerc = input.float(2, title="Long TP1 (%)", minval=0.0, step=0.1) * 0.01
shortProfitPerc = input.float(2, title="Short TP1 (%)", minval=0.0, step=0.1) * 0.01
TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)")
ubSlow = ta.highest(close, slowLen)[1]
lbSlow = ta.lowest(close, slowLen)[1]
ubFast = ta.highest(close, fastLen)[1]
lbFast = ta.lowest(close, fastLen)[1]
plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband")
plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband")
plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband")
plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband")
fark = (ubSlow - lbSlow) / lbSlow * 100
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
longCondition = ta.crossover(close, ubSlow) and fark > volatility
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = ta.crossunder(close, lbSlow) and fark > volatility
if (shortCondition)
strategy.entry("Short", strategy.short)
if strategy.position_size > 0 and ta.crossunder(close, lbFast)
strategy.close("Long", "Close All")
if strategy.position_size < 0 and ta.crossover(close, ubFast)
strategy.close("Short", "Close All")
// Take Profit
if strategy.position_size > 0
strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice)
if strategy.position_size < 0
strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)