A estratégia de ruptura do canal duplo de Donchian é uma estratégia de negociação de ruptura baseada nos canais de Donchian. Ele usa canais de Donchian rápidos e lentos para construir sinais de negociação longos e curtos. Quando o preço atravessa o canal lento, abra posições longas ou curtas. Quando o preço atravessa o canal rápido, feche as posições.
A estratégia de ruptura do canal duplo de Donchian baseia-se em dois parâmetros:Período do Canal Donchiano LentoePeríodo do Canal Donchiano RápidoA estratégia calcula primeiro as bandas superior e inferior dos dois canais de Donchian.
O sinal de entrada longo é umruptura acima da faixa superiorcomvolatilidade superior ao limiarO sinal de entrada curto é umDesagregação abaixo da faixa inferiorcomvolatilidade superior ao limiar.
O sinal de saída de stop loss longo é umDesagregação abaixo da faixa inferiorO sinal de saída de stop loss curto é umruptura acima da faixa superior.
A estratégia estabelece igualmentetirar lucroA taxa de lucro por defeito é de 2%, ou seja, a posição de lucro metade quando o movimento do preço atinge 2%.
A estratégia de ruptura do canal duplo de Donchian tem as seguintes vantagens:
O design de canal duplo pode capturar sinais de tendência de prazos mais longos e mais curtos, permitindo entradas mais precisas.
A condição de volatilidade evita a troca frequente em mercados de intervalo.
As configurações abrangentes de take profit e stop loss bloqueiam lucros parciais e reduzem perdas.
Uma lógica estratégica simples e clara, fácil de compreender e implementar.
Parâmetros personalizáveis adequados a diferentes produtos e preferências comerciais.
A estratégia de fuga do canal duplo de Donchian também tem alguns riscos:
O design de canal duplo é sensível e pode gerar sinais falsos.
Em mercados voláteis, o stop loss pode ser ativado com muita frequência.
Considerar a intervenção dinâmica ou manual para o preço ideal de lucro.
O desempenho comercial real pode diferir das expectativas do backtest.
A estratégia de ruptura do canal duplo de Donchian pode ser otimizada em vários aspectos:
Teste mais combinações de períodos para encontrar parâmetros ideais.
Tente diferentes medidas de volatilidade como ATR para encontrar a métrica mais estável.
Definir um limite no número de entradas para evitar perdas no final das tendências.
Tente dinâmico obter lucro para maior lucro de comércio único.
Incorporar outros indicadores para filtrar as entradas e melhorar a precisão, por exemplo, volume.
Otimizar os modelos de gestão de fundos, como o dimensionamento de posições fracionárias fixas, para um melhor controlo dos riscos.
Em conclusão, a Estratégia de Breakout de Canal Dual Donchian é uma excelente estratégia de tendência. Combina a identificação de tendências e as capacidades de proteção contra reversão. Com otimização de parâmetros e refinamento de regras, pode ser lucrativa na maioria dos produtos e condições de mercado. A estratégia é simples e prática, vale a pena aprender e aplicar para traders quantitativos.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 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) // Donchian Channels slowLen = input.int(50, title="Slow Donchian", group = "Conditions") fastLen = input.int(30, title="Fast Donchian", group = "Conditions") // Volatility Calculated as a percentage volatility = input.int(3, title="Volatility (%)", group = "Conditions") // Long positions long = input.bool(true, "Long Position On/Off", group = "Strategy") longProfitPerc = input.float(2, title="Long TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01 // Short positions short = input.bool(true, "Short Position On/Off", group = "Strategy") shortProfitPerc = input.float(2, title="Short TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01 // First take profit point for positions TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)", group = "Strategy") // Slow Donchian Calculated ubSlow = ta.highest(high, slowLen)[1] lbSlow = ta.lowest(low, slowLen)[1] // Fast Donchian Calculated ubFast = ta.highest(high, fastLen)[1] lbFast = ta.lowest(low, fastLen)[1] // Plot Donchian Channel for entries 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") // This calculation, the strategy does not open position in the horizontal market. fark = (ubSlow - lbSlow) / lbSlow * 100 // Take profit levels longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) // Code long trading conditions longCondition = ta.crossover(close, ubSlow) and fark > volatility if longCondition and long == true strategy.entry("Long", strategy.long) // Code short trading conditions shortCondition = ta.crossunder(close, lbSlow) and fark > volatility if shortCondition and short == true strategy.entry("Short", strategy.short) // Determine long trading conditions if strategy.position_size > 0 and ta.crossunder(close, lbFast) strategy.close_all("Close All") // Determine short trading conditions if strategy.position_size < 0 and ta.crossover(close, ubFast) strategy.close_all("Close All") // Take Profit Long if strategy.position_size > 0 strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice) // Take Profit Short if strategy.position_size < 0 strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)