Estratégia de negociação de rompimento Donchian


Data de criação: 2024-04-29 14:56:35 última modificação: 2024-04-29 14:56:35
cópia: 0 Cliques: 701
1
focar em
1617
Seguidores

Estratégia de negociação de rompimento Donchian

Visão geral

A estratégia de negociação de ruptura Donchian é um sistema de negociação baseado em indicadores de canal Donchian. A principal idéia da estratégia é capturar a tendência do mercado através de rupturas de ascensão e descensão do canal Donchian e executar um stop loss com um risco de ganho de risco fixo (RR). Quando o preço quebra o canal Donchian e cria uma nova alta em relação ao ciclo do canal Donchian, abre mais e abre menos e cria uma nova baixa.

Princípio da estratégia

  1. Calcule o canal Donchian: de acordo com o ciclo de canal Donchian definido ((default 20), calcule o preço mais alto e o preço mais baixo no ciclo, respectivamente como o caminho superior e o caminho inferior do canal Donchian, e calcule o ponto médio do caminho superior e inferior como o caminho médio do canal Donchian.
  2. Determine se um novo alto/baixa foi criado: Comparando o ciclo do atual trajeto ascendente e descendente do canal de Donchian com o trajeto ascendente e descendente dos ciclos anteriores, determine se um novo alto ou baixo foi criado em relação ao ciclo do canal de Donchian. Se um novo alto for criado, o trajeto ascendente de Donchian será mostrado em azul; Se um novo baixo for criado, o trajeto descendente de Donchian será mostrado em azul.
  3. Abrir uma posição de ruptura: abrir uma posição de ruptura quando o preço fechar a ruptura do Donchian azul para cima e abrir uma posição de ruptura de ruptura quando a ruptura do Donchian azul para baixo. Ou seja, a ruptura só é válida após a criação de uma nova alta / baixa.
  4. Stop Loss: quando a posição é aberta, o preço de abertura e o preço atual do canal de Donchian são registrados, e o diferencial entre ambos é calculado. A posição de stop loss é definida no canal de Donchian, a posição de stop stop é calculada com base na taxa de ganho de risco definida (default 5x) e o diferencial é calculado.
  5. Posicionamento plano: Posicionamento plano quando o preço toca o preço de parada ou de perda.

Vantagens estratégicas

  1. Apto para mercados de tendência: A estratégia de ruptura Donchian é executada através da abertura de posições de ruptura de subida/subida, de acordo com a direção da tendência do mercado, e se destaca em situações de tendência.
  2. Filtragem de novo alto/novo baixo: estratégia para melhorar a qualidade do sinal de abertura, filtrando parte dos sinais de ruído e falsas rupturas, julgando se cria um ciclo de alto/baixo do canal Donchian.
  3. Risco-benefício fixo: as posições de parada e perda de cada transação são baseadas em um risco-benefício fixo, o risco é controlado e é favorável ao gerenciamento de fundos.
  4. Parâmetros simples: A configuração de parâmetros de estratégia é mais simples, principalmente para o ciclo de canal Donchian e o risco-benefício, sendo mais fácil de otimizar e controlar.

Risco estratégico

  1. Perda de amplitude: a estratégia de parada de perda está no meio do canal Donchian, onde uma única transação pode causar uma perda significativa em um cenário de tendência incerta ou de turbulência.
  2. Negociação frequente: Se o ciclo de configuração do canal Donchian for menor, isso pode levar a uma abertura de posição baixa frequente, aumentando os custos de negociação.
  3. Reversão de tendência: quando a estratégia pode ter várias paradas consecutivas durante a reversão de tendência.
  4. Sensibilidade a parâmetros: a estratégia de desempenho é mais sensível à configuração de parâmetros e precisa de otimização de parâmetros de acordo com diferentes características de mercado e ciclos de mercado.

Direção de otimização da estratégia

  1. Stop loss dinâmico: ajuste de posição de stop loss em tempo real de acordo com a movimentação dos preços, a volatilidade, etc., por exemplo, usando o ATR como referência de stop loss, reduzindo o risco de uma única transação.
  2. Filtragem de tendências: adicionar indicadores de tendências, como a média móvel, e abrir posições somente quando a direção da tendência é clara, melhorando a qualidade do sinal.
  3. Combinação com outros indicadores: como a combinação de RSI, MACD e outros indicadores de dinâmica, para avaliar integralmente a hora de abrir uma posição.
  4. Gerenciamento de posições: ajuste o tamanho das posições de acordo com a intensidade da tendência do mercado, a volatilidade e outros fatores, para controlar o risco geral.
  5. Adaptação de parâmetros: adoção de métodos como aprendizado de máquina, adaptação de configurações de parâmetros de otimização.

Resumir

A estratégia de negociação de ruptura de Donchian é um sistema de negociação de seguimento de tendências baseado nos indicadores clássicos do canal de Donchian. Abrir posições com ruptura do canal de Donchian e o julgamento de novos altos / novos baixos, com stop loss com base na taxa de ganho de risco fixo. A estratégia é lógica simples e adequada para mercados em tendência.

Código-fonte da estratégia
/*backtest
start: 2023-04-23 00:00:00
end: 2024-04-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//---------------------------------------------//
// This source code is subject to the terms of 
// the Mozilla Public License 2.0 at 
// https://mozilla.org/MPL/2.0/
// © Dillon_Grech
//---------------------------------------------//

//---------------------------------------------//
// Simple donchian channel break out strategy
// which only enters trades when price closes
// above donchian upper and creates new high 
// (long) or price closes below donchian lower
// and creates new low, relative to the donchian
// length. This is indicated by the donchian
// upper and lower color (blue). Stop loss is
// located at donchian basis and take profit
// is set at Risk Reward (RR) profit target.
//---------------------------------------------//
//@version=5
strategy("Donchian New High/Low Strategy [Dillon Grech]", overlay=true)

//---------------------------------------------//

//---------------------------------------------//
//INDICATOR 1 - Donchian New High Low Price Close
don_length = input.int(20, minval = 1)
don_lower  = ta.lowest(don_length)
don_upper  = ta.highest(don_length)
don_basis  = math.avg(don_upper, don_lower)

//loop
don_lower_upper  = true
don_higher_lower = true
for i = 0 to don_length - 1
    //Check for higher high over don_length
    if don_upper > don_upper[i]
        don_lower_upper := false
    //Check for lower low over don_length
    if don_lower < don_lower[i]
        don_higher_lower := false

//Plot
c_ora = color.orange
c_blu = color.blue
c_gra = color.gray
color_basis = c_ora
color_upper = don_lower_upper  ? c_blu : c_gra
color_lower = don_higher_lower ? c_blu : c_gra
plot(don_basis,     "Don Basis", color_basis, 2)
u = plot(don_upper, "Don Upper", color_upper, 2)
l = plot(don_lower, "Don Lower", color_lower, 2)

//Conditions
Ind_1_L = ta.crossover(close, don_upper[1]) and 
   don_lower_upper[1]
Ind_1_S = ta.crossunder(close,don_lower[1]) and 
   don_higher_lower[1]
//---------------------------------------------//

//---------------------------------------------//
//ENTRY CONDITIONS
entry_long  = strategy.position_size<=0 and
   Ind_1_L
entry_short = strategy.position_size>=0 and
   Ind_1_S

if(entry_long)
    strategy.entry("Long Entry", strategy.long)
if(entry_short)
    strategy.entry("Short Entry", strategy.short)
//---------------------------------------------/

//---------------------------------------------//
//TAKE PROFIT AND STOP LOSS CONDITIONS
profit_RR = input.float(5.0,"RR Profit Target")

//Store Price on new entry signal
entry_price = strategy.opentrades.entry_price(
   strategy.opentrades-1)

//Store Donchain Channel Basis
entry_don_basis = float(0.0)
if entry_long or entry_short
    entry_don_basis := don_basis
else
    entry_don_basis := entry_don_basis[1]

//Get stop loss distance
stop_distance = math.abs(entry_price -
   entry_don_basis)
stop_L   = entry_price - stop_distance
profit_L = entry_price + stop_distance*profit_RR
stop_S   = entry_price + stop_distance
profit_S = entry_price - stop_distance*profit_RR

//Plot TP and SL
plot(entry_long or entry_short ? na :
   strategy.position_size > 0 ? profit_L : na,
   color=color.lime, style=plot.style_linebr,
   linewidth=2)
plot(entry_long or entry_short ? na :
   strategy.position_size > 0 ? stop_L : na,
   color=color.red,  style=plot.style_linebr,
   linewidth=2)
plot(entry_long or entry_short ? na : 
   strategy.position_size < 0 ? profit_S : na,
   color=color.lime, style=plot.style_linebr,
   linewidth=2)
plot(entry_long or entry_short ? na :
   strategy.position_size < 0 ? stop_S : na,
   color=color.red,  style=plot.style_linebr,
   linewidth=2)

//Exit long trades
strategy.exit(id = 'Exit Long', 
   from_entry ='Long Entry', 
   stop = stop_L, limit = profit_L)
strategy.exit(id = 'Exit Short', 
   from_entry ='Short Entry', 
   stop = stop_S, limit = profit_S)
//---------------------------------------------//