O recurso está a ser carregado... Carregamento...

Estratégia de negociação do Donchian Breakout

Autora:ChaoZhang, Data: 2024-04-29 14:56:35
Tags:

img

Resumo

A estratégia de negociação de ruptura de Donchian é um sistema de negociação baseado no indicador do canal de Donchian. A ideia principal desta estratégia é capturar as tendências do mercado através da quebra das bandas superior e inferior do canal de Donchian, e usar uma relação de recompensa de risco (RR) fixa para obter lucro e parar a perda. Quando o preço quebra acima da faixa superior do canal de Donchian e cria uma nova alta relativa ao período do canal de Donchian, ele vai longo; quando ele quebra abaixo da faixa inferior e cria uma nova baixa, ele vai curto. Ao mesmo tempo, o stop loss é definido na faixa média do canal de Donchian, e o lucro é calculado com base na taxa de recompensa de risco definida.

Princípio da estratégia

  1. Calcular o canal de Donchian: com base no período definido do canal de Donchian (padrão 20), calcular os preços mais altos e mais baixos nesse período como as bandas superior e inferior do canal de Donchian, respectivamente, e calcular o ponto médio das bandas superior e inferior como a banda média do canal de Donchian.
  2. Determine se uma nova alta/baixa é criada: Ao fazer um loop e comparar as bandas superiores e inferiores do canal de Donchian atual com as bandas superiores e inferiores dos períodos anteriores, determine se uma nova alta ou baixa é criada em relação ao período do canal de Donchian.
  3. Entrada de ruptura: Quando o preço de fechamento rompe acima da faixa superior do Donchian azul, entra em uma posição longa; quando rompe abaixo da faixa inferior do Donchian azul, entra em uma posição curta. Ou seja, apenas as rupturas que ocorrem após uma nova alta / baixa ser criada são válidas.
  4. Tomar lucro e stop loss: Ao abrir uma posição, registre o preço de entrada e o preço atual da faixa média do canal de Donchian e calcule a diferença de preço entre os dois.
  5. Posição fechada: quando o preço atinge o preço de take profit ou stop loss, a posição é fechada.

Vantagens da estratégia

  1. Adequado para mercados em tendência: A estratégia de ruptura de Donchian entra em posições atravessando as faixas superior/inferior, seguindo a direção da tendência do mercado, e tem um bom desempenho em mercados em tendência.
  2. Novo filtro alto/baixo: a estratégia filtra alguns sinais de ruído e falsas rupturas, determinando se um novo alto/baixo é criado dentro do período do Canal de Donchian, melhorando a qualidade dos sinais de entrada.
  3. Relatório fixo de remuneração do risco: as posições de take profit e stop loss para cada negociação são baseadas num Relatório fixo de remuneração do risco, tornando o risco controlável e propício à gestão de dinheiro.
  4. Parâmetros simples: Os parâmetros da estratégia são relativamente simples de definir, principalmente o período do canal de Donchian e a relação risco-recompensa, facilitando a otimização e o controle.

Riscos estratégicos

  1. Perda de magnitude: a posição de stop loss da estratégia é a faixa média do Canal de Donchian.
  2. Negociação frequente: se o período do canal de Donchian for demasiado curto, pode levar a abertura e encerramento frequentes de posições, aumentando os custos de transacção.
  3. Reversão da tendência: durante a reversão da tendência, a estratégia pode sofrer várias perdas consecutivas.
  4. Sensibilidade aos parâmetros: o desempenho da estratégia é sensível às configurações dos parâmetros e precisa ser otimizado com base nas diferentes características do mercado e nos ciclos de negociação.

Orientações para a otimização da estratégia

  1. A posição de stop loss dinâmica: ajustar a posição de stop loss em tempo real com base nos movimentos de preços, na volatilidade, etc., por exemplo, utilizando o ATR como referência de stop loss para reduzir o risco de uma única transação.
  2. Filtragem da tendência: adicionar indicadores de julgamento da tendência, como médias móveis e apenas abrir posições quando a direção da tendência estiver clara para melhorar a qualidade do sinal.
  3. Combinar com outros indicadores: Combinar com indicadores de ímpeto como o RSI e o MACD para avaliar de forma abrangente o momento das posições de abertura.
  4. Gerenciamento de posições: ajustar dinamicamente os tamanhos das posições com base na força da tendência do mercado, na volatilidade, etc., para controlar o risco global.
  5. Adaptação de parâmetros: Use aprendizado de máquina e outros métodos para otimizar de forma adaptativa as configurações de parâmetros.

Resumo

A Estratégia de Negociação de Breakout de Donchian é um sistema de negociação de tendência baseado no indicador clássico do Canal de Donchian. Ele abre posições através de breakouts das bandas superior e inferior do Canal de Donchian e julgamentos de novos altos / baixos, com lucro e stop loss com base em uma relação de recompensa de risco fixa. A estratégia tem uma lógica simples e é adequada para mercados de tendência.


/*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)
//---------------------------------------------//

Mais.