
A estratégia de ruptura do canal Donchian duplo é uma estratégia de ruptura baseada no canal Donchian. Utiliza os dois canais Donchian, rápido e lento, para construir sinais de negociação de ativos e ativos.
A estratégia de ruptura do canal Donchian duplo baseia-se em dois parâmetros:Ciclo do canal Donchian lentoeCiclo do canal Donchian rápidoA estratégia começa por calcular os trilhos superiores e inferiores dos dois canais Donchian.
O sinal de entrada é:Preços se aceleramE tambémMaior volatilidade do que a baixaO sinal de entrada em voo livre é:Preços despencamE tambémMaior volatilidade do que a baixa。
O sinal de parada de liquidação multi-cabeça é o retorno do preçoA quebra da rota.O sinal de parada de liquidação em branco é o retorno do preço.Abertura da via.。
A estratégia foi definida ao mesmo tempo- Não, não.Condições de saída. A configuração padrão é até 2% de desconto, ou seja, quando a mudança de preço atinge 2%, a metade da posição é cancelada.
A estratégia de invasão do canal Donchian duplo tem as seguintes vantagens:
O uso de um design de canal duplo permite capturar sinais de tendência de linhas mais longas e mais curtas, permitindo uma entrada mais precisa.
As condições de volatilidade evitam a frequência de transações no mercado horizontal.
A configuração de stop-loss e stop-loss é abrangente e pode bloquear parte dos lucros e reduzir os prejuízos.
A lógica da estratégia é simples, clara, fácil de entender e de implementar.
Parâmetros personalizáveis para diferentes variedades e preferências comerciais.
A estratégia de quebrar o canal duplo de Donchian também tem riscos:
O design de dois canais é mais sensível e propenso a erros de sinalização. O alcance do canal pode ser expandido adequadamente ou os parâmetros de taxa de flutuação podem ser ajustados para reduzir erros de sinalização.
A suspensão de perda pode ser desencadeada com muita frequência. Pode-se definir um limite máximo de negociação ou ampliar o limite de perda.
A paralisação de proporção fixa não pode maximizar o lucro. Pode-se considerar o rastreamento dinâmico da paralisação ou a intervenção manual para determinar o preço da paralisação.
A situação do disco real fora da detecção pode não corresponder às expectativas, deve ser verificada com antecedência e, se necessário, ajustar os parâmetros.
A estratégia de ruptura do canal Donchian duplo pode ser otimizada de várias maneiras:
Teste mais combinações de parâmetros de ciclo para encontrar o melhor parâmetro.
Tente diferentes métodos de cálculo da taxa de flutuação, como o ATR, para encontrar o parâmetro mais estável.
O limite de posições abertas é definido para evitar que a reversão no final da tendência cause perdas.
Tente rastrear o stop loss de forma dinâmica para obter lucros mais elevados.
Combinação de outros indicadores para filtrar os sinais de entrada, aumentando a precisão da decisão. Por exemplo, combinação de indicadores de tráfego.
Otimizar estratégias de gestão de fundos, como a quota fixa, a fórmula de Kelly, etc., para controlar melhor a relação risco-receita.
A estratégia de ruptura do canal Donchian duplo é, em geral, uma excelente estratégia de acompanhamento de tendências. Ela possui a capacidade de identificar tendências e a capacidade de defesa contra reversões.
/*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)