![Negociação usando canais Donchian](https://c.mql5.com/i/articles/overlay.png)
Negociação usando canais Donchian
Conteúdo
Introdução
O canal Donchian é um indicador técnico desenvolvido no início de 1970. Então ele era chamado Canal de média, mas foi mais tarde renomeado em homenagem ao seu criador, Richard Donchian. Este indicador determina o grau de volatilidade do mercado com base numa determinada faixa de preço, aplicando máximos e mínimos recentes. Visualmente o canal Donchian consiste em duas linhas em cujo interior ocorrem flutuações de preço. Os sinais para comprar ou vender consistem em saídas do preço fora dos limites inferior ou superior do canal, respectivamente. Ao plotar o canal, o autor recomenda o uso da faixa de preço de 20 (o número estimado de dias úteis por mês) e o timeframe D1.
Princípio de funcionamento e aplicação do canal Donchian
Como decidi não reinventar a roda, não fiz mais uma implementação informática deste indicador, pelo contrário, usei como base uma modificação dele que carateriza o estilo de negociação segundo este sistema, isto é, Donchian Channels System. Na figura 1, nas velas azuis e rosas, podem ser visualizados facilmente os locais onde ocorre o rompimento dos limites do canal, ou seja, os lugares onde sugerido entrar no mercado.
Fig.1. Princípio de funcionamento e pontos de entrada no mercado do canal Donchian
Preste atenção nas zonas vermelhas marcadas no gráfico. Pois, trata-se da principal desvantagem do canal Donchian, isto é, fugas falsas após as quais o preço novamente volta para sua faixa. Portanto, sem confirmação adicional seria temerário entrar no mercado segundo o canal Donchian. Para apresentar mais claramente a essência do indicador, examinemos os parâmetros e implementação da modificação utilizada:
//+----------------------------------------------+ //| Parâmetros de entrada do indicador | //+----------------------------------------------+ input uint DonchianPeriod=20; // Período de média input Applied_Extrem Extremes=HIGH_LOW; // Tipo de extremos input uint Shift=2; // Deslocamento horizontal nas barras //+----------------------------------------------+
- Período de média — faixa de preço utilizada.
- Tipo de extremos — tipos de valores de preços que serão utilizados nos cálculos. Por padrão, é usada a definição clássica para valores de mínimos e máximos de velas.
- Deslocamento horizontal nas barras — em quantas barras será movido o canal.
Aqui vale a pena prestar atenção aos tipos de extremos, já que, na modificação que escolhi, é possível usar não só os valores High e Low. A seguir apresentadas as variantes e a implementação informática:
//+----------------------------------------------+ //| Declaração de enumeração | //+----------------------------------------------+ enum Applied_Extrem //Tipo de extremos { HIGH_LOW, HIGH_LOW_OPEN, HIGH_LOW_CLOSE, OPEN_HIGH_LOW, CLOSE_HIGH_LOW };
- HIGH_LOW — implementação clássica de High e Low de velas.
- HIGH_LOW_OPEN — nesta interpretação, para a construção da borda superior do canal, é utilizada a média entre o máximo do preço de abertura e os máximos das velas, numa determinada faixa de preços. Para a borda inferior, são usados os mínimos.
- HIGH_LOW_CLOSE — para a construção da borda superior do canal, o valor médio entre o máximo do preço de fechamento e os máximos das velas, na faixa de preços especificada. Para a borda inferior, são usados os mínimos.
- OPEN_HIGH_LOW — para construção da borda superior, é usado o máximo dos preços de abertura na faixa de preço definida, enquanto para a borda inferior, o mínimo.
- CLOSE_HIGH_LOW — para construção da borda superior, é usado o máximo dos preços de fechamento na faixa de preço definida, enquanto para a borda inferior, o mínimo.
A seguir apresentada uma listagem da implementação de vários tipos de extremos:
for(bar=first; bar<rates_total && !IsStopped(); bar++) { switch(Extremes) { case HIGH_LOW: SsMax=high[ArrayMaximum(high,bar,DonchianPeriod)]; SsMin=low[ArrayMinimum(low,bar,DonchianPeriod)]; break; case HIGH_LOW_OPEN: SsMax=(open[ArrayMaximum(open,bar,DonchianPeriod)]+high[ArrayMaximum(high,bar,DonchianPeriod)])/2; SsMin=(open[ArrayMinimum(open,bar,DonchianPeriod)]+low[ArrayMinimum(low,bar,DonchianPeriod)])/2; break; case HIGH_LOW_CLOSE: SsMax=(close[ArrayMaximum(close,bar,DonchianPeriod)]+high[ArrayMaximum(high,bar,DonchianPeriod)])/2; SsMin=(close[ArrayMinimum(close,bar,DonchianPeriod)]+low[ArrayMinimum(low,bar,DonchianPeriod)])/2; break; case OPEN_HIGH_LOW: SsMax=open[ArrayMaximum(open,bar,DonchianPeriod)]; SsMin=open[ArrayMinimum(open,bar,DonchianPeriod)]; break; case CLOSE_HIGH_LOW: SsMax=close[ArrayMaximum(close,bar,DonchianPeriod)]; SsMin=close[ArrayMinimum(close,bar,DonchianPeriod)]; break; }
Desenvolvimento do sistema de negociação
Durante o desenvolvimento da estratégia, vale a pena levar em conta não só as fugas falsas, más também o fato de o canal Donchian ser mais frequentemente utilizado em estratégias de tendência. Como os sinais de entrada no mercado são fugas para além das bordas do canal, para excluir a desvantagem quanto às saídas falsas fora das margens, é necessário escolher pelo menos mais um indicador de tendência que confirme o sinal. Além disso, deve-se identificar as condições exatas de entrada, acompanhamento de posição aberta e saída, gestão do dinheiro. Portanto, vamos formular as condições a serem impostas.
1. Sinal de confirmação
O objetivo do artigo consiste em não só mostrar exemplos do uso de canais Donchian, mas também fazer alguma pesquisa sobre o tema da "sobrevivência" deste sistema no mercado atual. Portanto, escolheremos alguns indicadores de confirmação. Cada um deles trabalhará em conjunto com o canal Donchian. Assim, teremos um diferentes estratégias de negociação, com base na que estudamos. Para o trabalho em equipe com o canal, escolhi três sinais de confirmação na forma dos indicadores a seguir:
- Average Directional Movement Index(ADX) — Índice de direção média do movimento. O trabalho em equipe com este indicador será uma oportunidade para avaliar o estado e a força da tendência atual durante a fuga de canal.
- Moving Average Convergence/Divergence(MACD) — oscilador de Convergência/Divergência de Médias Móveis. Neste sistema o MACD seguirá a tendência atual. Imediatamente após a fuga do canal, verificaremos se ele corresponde à direção do mercado ou se se trata de uma exibição acidental do preço (fuga falsa).
- Decidiu-se escolher apenas dois como sinais de confirmação: Average Speed (taxa de variação média do preço em pontos/minutos) e X4Period_RSI_Arrows (indicador de semáforo a partir de quatro RSI com diferentes timeframes).
2. Formalização dos sistemas de negociação
Primeiro, é necessário escolher os parâmetros gerais para todas as três futuras estratégias de negociação: nós selecionamo-los de modo que a faixa de teste seja máxima quanto possível. Portanto, formulamos os parâmetros que controlaremos durante o teste:
- Timeframe. A possibilidade de selecionar o timeframe é necessária para testar em diferentes períodos que podem caracterizar diferentes fases de mercado, desde movimentos fracos e ajustes até tendências longas que são vistas mais claramente em períodos maiores.
- Gestão do dinheiro. Vários tamanhos de posição, dependendo dos resultados da negociação, ajudarão a entender se é melhor reinvestir os fundo ou é mais conveniente negociar usando lotes constantes.
- Acompanhamento da posição aberta. Várias maneiras de trabalhar com a posição já aberta permitirá entender qual a percentagem do atual movimento favorável podemos tomar como lucro.
- Parâmetros dos indicadores. O teste de estratégias selecionadas em diferentes modos aclarará sob quais as configurações nosso sistema será eficaz ou ineficiente.
Logo, é preciso formular as condições de entrada para as três estratégias de negociação:
#1. Canal Donchian + ADX.
Condições deste sistema:
- Rompimento da borda superior ou inferior do canal Donchian.
- A linha principal de força de tendência ADX deve estar acima do nível predefinido ADX Level.
- Se houver rompimento da linha superior, DI+ deve ser superior a DI-. Por conseguinte, se o rompimento ocorrer para baixo, DI- superior a DI+.
Fig.2. Condições de entrada no mercado para estratégia canal Donchian+ADX
#2. Canal Donchian + MACD.
Condições deste sistema:
- Rompimento da borda superior ou inferior do canal Donchian.
- Ao acontecer isto, o valor do histograma é superior a zero e à linha de sinal durante a compra.
- O valor do histograma é inferior a zero e à linha de sinal durante a venda.
Fig.3. Condições de entrada no mercado para estratégia canal Donchian+MACD
#3. Canal Donchian + (Average Speed e X4Period_RSI_Arrows).
As condições deste sistema são as seguintes:
- Rompimento da borda superior ou inferior do canal Donchian.
- Ao acontecer isto, o Average Speed deve ser superior a 1, enquanto o RSI de semáforo deve exibir pelo menos 2 pontos sobre a vela durante a compra, e sob a vela durante a venda.
Fig.4. Condições de entrada no mercado para estratégia canal Donchian+(Average Speed e X4Period_RSI_Arrows)
Implementação do sistema de negociação
Para comodidade ao testar e otimizar, decidiu-se implementar esses tipos de estratégias num Expert Advisor. Portanto, os parâmetros apresentam uma escolha de quatro estratégias:
//+------------------------------------------------------------------+ //| Declaração de enumeração de tipos de estratégia | //+------------------------------------------------------------------+ enum Strategy { Donchian=0, Donchian_ADX, Donchian_MACD, Donchian_AvrSpeed_RSI };
- Donchian — estratégia de rompimento com uso apenas de canais Donchian.
- Donchian_ADX — estratégia com filtro como força de tendência do indicador ADX.
- Donchian_MACD — estratégia com filtro como sinais do oscilador MACD.
- Donchian_AvrSpeed_RSI — estratégia com filtro como sinais de taxa de variação de preço e RSI semáforo multi-período.
A seguir, declaramos os tipos de extremos dos canais de Donchian que serão testados:
//+------------------------------------------------------------------+ //| Declaração de enumerações de tipos de extremos | //+------------------------------------------------------------------+ enum Applied_Extrem { HIGH_LOW, HIGH_LOW_OPEN, HIGH_LOW_CLOSE, OPEN_HIGH_LOW, CLOSE_HIGH_LOW };
Além disso, deve-se levar em conta que poderão ser utilizados três sistemas de gestão do dinheiro:
//+------------------------------------------------------------------+ //| Enumeração para variantes de cálculo de lote | //+------------------------------------------------------------------+ enum MarginMode { FREEMARGIN=0, //MM Free Margin BALANCE, //MM Balance LOT //Constant Lot };
- FREEMARGIN — cálculo do lote base a partir da margem livre.
- BALANCE — cálculo a partir do balanço atual na conta.
- LOT — sem alterações. Usa-se o lote base definido manualmente.
A classe CTrailing - localizada no arquivo Trailing.mqh - foi desenvolvida como sistema de acompanhamento de posições abertas com base no Expert Advisor Trailing-Stop Universal.
Abaixo estão os métodos de acompanhamento de posições, bem como os parâmetros de entrada:
enum TrallMethod { b=1, //Segundo extremos de velas c=2, //Segundo fractais d=3, //Segundo indicadores ATR e=4, //Segundo o indicador Parabolic f=5, //Segundo o indicador MA g=6, //% a partir do lucro i=7, //Segundo pontos }; //--- Parâmetros de Trailing-Stop input bool UseTrailing=true; //Uso de Trailing-Stop input bool VirtualTrailingStop=false; //Trailing-Stop virtual input TrallMethod parameters_trailing=7; //Método de Trailing-Stop input ENUM_TIMEFRAMES TF_Tralling=PERIOD_CURRENT; //Timeframe dos indicadores input int StepTrall=50; //Passo de deslocamento de Stop-Loss (em pontos) input int StartTrall=100; //Lucro mínimo de trailing stop (em pontos) input int period_ATR=14; //Período ATR (método 3) input double step_PSAR=0.02; //Passo PSAR (método 4) input double maximum_PSAR=0.2; //Máximo PSAR (método 4) input int ma_period=34; //Período MA (método 5) input ENUM_MA_METHOD ma_method=MODE_SMA; //Método de média (método 5) input ENUM_APPLIED_PRICE applied_price=PRICE_CLOSE; //Tipo de preço (método 5) input double PercentProfit=50; //Percentual do lucro (método 6)
Além disso, para facilitar a exibição dos parâmetros selecionados durante o teste demo e o modo de teste visual, eu adicionei um painel informativo usando a série de artigos Interfaces gráficas do usuário. Ele contém os tipos básicos de configurações selecionadas:
- tipo de estratégia;
- tipo de Trailing-Stop;
- tipo de gestão do dinheiro;
- Take-Profit;
- Stop-Loss.
A classe CDonchianUI - localizada no arquivo DonchianUI.mqh - foi desenvolvida para exibição. Se desejar, é possível adicionar seus próprios valores. O painel pode ser visto na figura 5.
Fig.5. Painel de informações de modos principais Donchian Expert.
Teste
Antes do teste, devem-se definir suas condições. Os principais estão resumidos na tabela a seguir:
Parâmetros | Valor |
---|---|
Intervalo de teste | 01.03.2016 — 01.03.2017 |
Mercado | EURUSD/GOLD-6.17 |
Modo de negociação | Cada tick baseado em ticks reais |
Depósito inicial | 1000 USD |
Alavancagem | 1:500 |
Servidor | MetaQuotes |
Como o Expert Advisor é apresentado no formato 4 em 1, não faz sentido falar sobre toda a riqueza da lista de possíveis combinações de configurações, isso será deixado para o leitor. No entanto, selecionamos os blocos básicos de configurações que combinaremos no teste, enquanto os parâmetros privados dos blocos serão otimizados. Para maior clareza, na tabela dada abaixo, estão os modos de Expert Advisor que mudarão durante o teste:
Bloco de Expert Advisor | Modos de teste |
---|---|
Gestão do dinheiro | Lote constante/ a partir do balanço |
Timeframe em execução | M30 - D1 |
Acompanhamento de posição aberta | Trailing-Stop/ Sem acompanhamento |
Tipo de estratégia | Donchian/Donchian+ADX/Donchian+MACD/Donchian+Avr.Speed+RSI |
Passo explicar por que na Gestão do dinheiro são selecionados apenas 2 modos: durante o teste a carga no depósito utilizado será apenas da parte do nosso Expert Advisor, enquanto, no mercado, haverá apenas uma posição, de modo que o modo A partir do balanço e A partir da margem livre, na verdade, é o mesmo.
1. Estratégia de negociação Canal Donchian.
Primeiro, testamos a estratégia apenas nos canais Donchian.
Fig. 6 Estratégia de negociação Donchian em EURUSD.
Durante o teste e otimização em EURUSD, chegou-se às seguintes conclusões:
- Na faixa definida, os melhores resultados foram em M30-H1.
- Ao mesmo tempo, o período de trabalho do indicador foi 10-12.
- Do ponto de vista do preços aplicado no indicador, o melhor foi o modo CLOSE_HIGH_LOW.
- O Trailing-Stop mostrou-se ineficaz em comparação com o modo sem ele.
- Conclusão geral: a estratégia baseada só no canal Donchian provou ser uma estratégia de tendência clássica com uma série de operações rentáveis durante os movimentos fortes do mercado.
//+------------------------------------------------------------------+ //| Parâmetros de entrada do Expert Advisor | //+------------------------------------------------------------------+ sinput string Inp_EaComment="Donchian Expert"; //EA de comentários input double Inp_Lot=0.01; //Lote base input MarginMode Inp_MMode=LOT; //Gestão do dinheiro input int Inp_MagicNum=555; //Magic input int Inp_StopLoss=400; //Stop-Loss (em pontos) input int Inp_TakeProfit=600; //Take-Profit (em pontos) input int Inp_Deviation = 20; //Slippage (derrapagem) input ENUM_TIMEFRAMES InpInd_Timeframe=PERIOD_M30; //Timeframe em execução input bool InfoPanel=false; //Exibição do painel informativo //--- Parâmetros do indicador Donchian Channel System input uint DonchianPeriod=10; //Período de canal input Applied_Extrem Extremes=CLOSE_HIGH_LOW; //Tipo de extremos //--- Seleção de estratégia aplicada input Strategy CurStrategy=Donchian; //Estratégia selecionada //--- Parâmetros de Trailing-Stop input bool UseTrailing=false; //Uso de Trailing-Stop
Em comparação com o par de moedas, durante o teste em futuros GOLD-6.17, com o mesmo período e nos mesmos intervalos de tempo como para EURUSD - M30-H1, o resultado foi melhor.
Fig.7. Estratégia de negociação Donchian em GOLD-6.17.
//+------------------------------------------------------------------+ //| Parâmetros de entrada do Expert Advisor | //+------------------------------------------------------------------+ sinput string Inp_EaComment="Donchian Expert"; //EA de comentários input double Inp_Lot=0.01; //Lote base input MarginMode Inp_MMode=LOT; //Gestão do dinheiro input int Inp_MagicNum=555; //Magic input int Inp_StopLoss=400; //Stop-Loss (em pontos) input int Inp_TakeProfit=600; //Take-Profit (em pontos) input int Inp_Deviation = 20; //Slippage (derrapagem) input ENUM_TIMEFRAMES InpInd_Timeframe=PERIOD_M30; //Timeframe em execução input bool InfoPanel=false; //Exibição do painel informativo //--- Parâmetros do indicador Donchian Channel System input uint DonchianPeriod=12; //Período de canal input Applied_Extrem Extremes=CLOSE_HIGH_LOW; //Tipo de extremos //--- Seleção de estratégia aplicada input Strategy CurStrategy=Donchian; //Estratégia selecionada .... //--- Parâmetros de Trailing-Stop input bool UseTrailing=true; //Uso de Trailing-Stop input bool VirtualTrailingStop=false; //Trailing-Stop virtual input TrallMethod parameters_trailing=7; //Método de Trailing-Stop input ENUM_TIMEFRAMES TF_Tralling=PERIOD_CURRENT; //Timeframe dos indicadores input int StepTrall=50; //Passo de deslocamento de Stop-Loss (em pontos) input int StartTrall=100; //Lucro mínimo de trailing stop (em pontos)
2. Estratégia de negociação Canal Donchian e ADX.
De acordo com os resultados ao testar as estratégias com filtro ADX de sinais do canal Donchian as conclusões foram as seguintes:
- O número de transações diminuiu, o que era esperado.
- O melhor timeframe para trabalhar ainda é M30.
- A percentagem de transações rentáveis foi maior.
- O período de canal mais eficaz foi 18, enquanto o período ADX — 10.
- O CLOSE_HIGH_LOW continua a ser a aplicação de preço mai eficaz no canal Donchian.
Fig.8. Estratégia de negociação Donchian + ADX em EURUSD.
//+------------------------------------------------------------------+ //| Parâmetros de entrada do Expert Advisor | //+------------------------------------------------------------------+ sinput string Inp_EaComment="Donchian Expert"; //EA de comentários input double Inp_Lot=0.01; //Lote base input MarginMode Inp_MMode=LOT; //Gestão do dinheiro input int Inp_MagicNum=555; //Magic input int Inp_StopLoss=400; //Stop-Loss (em pontos) input int Inp_TakeProfit=600; //Take-Profit (em pontos) input int Inp_Deviation = 20; //Slippage (derrapagem) input ENUM_TIMEFRAMES InpInd_Timeframe=PERIOD_M30; //Timeframe em execução input bool InfoPanel=false; //Exibição do painel informativo //--- Parâmetros do indicador Donchian Channel System input uint DonchianPeriod=18; //Período de canal input Applied_Extrem Extremes=CLOSE_HIGH_LOW; //Tipo de extremos //--- Seleção de estratégia aplicada input Strategy CurStrategy=Donchian_ADX; //Estratégia selecionada //--- Parâmetros do indicador ADX input int ADX_period=10; input double ADX_level=20;
Os resultados em futuros mostraram que no timeframe H1 com período de canal Donchian 18 e ADX 8, os resultados são semelhantes com os da estratégia anterior. Neste caso, mais uma vez os melhores resultados foram ao usar o canal nos preços de fechamento.
Fig.9. Estratégia de negociação Donchian + ADX em GOLD-6.17.
//+------------------------------------------------------------------+ //| Parâmetros de entrada do Expert Advisor | //+------------------------------------------------------------------+ sinput string Inp_EaComment="Donchian Expert"; //EA de comentários input double Inp_Lot=0.01; //Lote base input MarginMode Inp_MMode=LOT; //Gestão do dinheiro input int Inp_MagicNum=555; //Magic input int Inp_StopLoss=400; //Stop-Loss (em pontos) input int Inp_TakeProfit=600; //Take-Profit (em pontos) input int Inp_Deviation = 20; //Slippage (derrapagem) input ENUM_TIMEFRAMES InpInd_Timeframe=PERIOD_H1; //Timeframe em execução input bool InfoPanel=false; //Exibição do painel informativo //--- Parâmetros do indicador Donchian Channel System input uint DonchianPeriod=18; //Período de canal input Applied_Extrem Extremes=CLOSE_HIGH_LOW; //Tipo de extremos //--- Seleção de estratégia aplicada input Strategy CurStrategy=Donchian_ADX; //Estratégia selecionada //--- Parâmetros do indicador ADX input int ADX_period=8; input double ADX_level=20; //--- Parâmetros de Trailing-Stop input bool UseTrailing=true; //Uso de Trailing-Stop input bool VirtualTrailingStop=false; //Trailing-Stop virtual input TrallMethod parameters_trailing=7; //Método de Trailing-Stop input ENUM_TIMEFRAMES TF_Tralling=PERIOD_CURRENT; //Timeframe dos indicadores input int StepTrall=50; //Passo de deslocamento de Stop-Loss (em pontos) input int StartTrall=100; //Lucro mínimo de trailing stop (em pontos)
3. Estratégia de negociação Canal Donchian e MACD.
De acordo com os resultados ao testar as estratégias com filtro MACD de sinais do canal Donchian as conclusões foram as seguintes:
- Os melhores resultados são mostrados novamente no timeframe H1.
- A alteração dos parâmetros do indicador MACD não fez quaisquer alterações importantes.
Fig. 10. Estratégia de negociação Donchian + MACD em EURUSD.
//+------------------------------------------------------------------+ //| Parâmetros de entrada do Expert Advisor | //+------------------------------------------------------------------+ sinput string Inp_EaComment="Donchian Expert"; //EA de comentários input double Inp_Lot=0.01; //Lote base input MarginMode Inp_MMode=LOT; //Gestão do dinheiro input int Inp_MagicNum=555; //Magic input int Inp_StopLoss=400; //Stop-Loss (em pontos) input int Inp_TakeProfit=600; //Take-Profit (em pontos) input int Inp_Deviation = 20; //Slippage (derrapagem) input ENUM_TIMEFRAMES InpInd_Timeframe=PERIOD_H1; //Timeframe em execução input bool InfoPanel=true; //Exibição de paneis informativos //--- Parâmetros do indicador Donchian Channel System input uint DonchianPeriod=16; //Período de canal input Applied_Extrem Extremes=CLOSE_HIGH_LOW; //Tipo de extremos //--- Seleção de estratégia aplicada input Strategy CurStrategy=Donchian_MACD; //Estratégia selecionada //--- Parâmetros do indicador MACD input int InpFastEMA=12; //Fast EMA period input int InpSlowEMA=26; //Slow EMA period input int InpSignalSMA=9; //Signal SMA period input ENUM_APPLIED_PRICE InpAppliedPrice=PRICE_CLOSE; //Applied price
Ao testar futuros, como na estratégia anterior, o melhor período do canal Donchian foi o 10. A variante com uso de Trailing-Stop era mais eficaz do que a sem ele.
Fig.11. Estratégia de negociação Donchian + MACD em GOLD-6.17.
//+------------------------------------------------------------------+ //| Parâmetros de entrada do Expert Advisor | //+------------------------------------------------------------------+ sinput string Inp_EaComment="Donchian Expert"; //EA de comentários input double Inp_Lot=0.01; //Lote base input MarginMode Inp_MMode=LOT; //Gestão do dinheiro input int Inp_MagicNum=555; //Magic input int Inp_StopLoss=400; //Stop-Loss (em pontos) input int Inp_TakeProfit=600; //Take-Profit (em pontos) input int Inp_Deviation = 20; //Slippage (derrapagem) input ENUM_TIMEFRAMES InpInd_Timeframe=PERIOD_M30; //Timeframe em execução input bool InfoPanel=true; //Exibição de paneis informativos //--- Parâmetros do indicador Donchian Channel System input uint DonchianPeriod=10; //Período de canal input Applied_Extrem Extremes=CLOSE_HIGH_LOW; //Tipo de extremos //--- Seleção de estratégia aplicada input Strategy CurStrategy=Donchian_MACD; //Estratégia selecionada //--- Parâmetros do indicador MACD input int InpFastEMA=12; //Fast EMA period input int InpSlowEMA=26; //Slow EMA period input int InpSignalSMA=9; //Signal SMA period input ENUM_APPLIED_PRICE InpAppliedPrice=PRICE_CLOSE; //Applied price
Antes de testar a seguinte estratégia com filtro complexo, vale a pena fazer um ressumo provisório sobre o fato de, nas três estratégias examinadas, terem sido utilizados indicadores clássicos. Na verdade, não foi identificada uma grande diferença entre as estratégias testadas em EURUSD, no entanto os filtros na forma de ADX e MACD reduziram o número de entradas no mercado e aumentaram o resultado final. Se considerarmos os testes sobre futuros, e, dada a especificidade deste mercado e a volatilidade - que se diferencia fortemente - em comparação com os pares de moedas, a filtração de sinais do canal de Donchian não se altera. Mas o resultado final acabou por ser muito melhor aqui do que no par de moedas.
4 Estratégia de negociação Canal Donchian e Average Speed+X4Period_RSI_Arrows.
Após otimizar a estratégia de filtragem de sinais do canal Donchian usando o filtro complexo, confirmamos todas as conclusões anteriores sobre o uso de diferentes condições de negociação. Devido à baixa volatilidade dos futuros, a seletividade desta estratégia provou ser muito alta.
Fig. 12. Estratégia de negociação Donchian + Average Speed+X4Period_RSI_Arrows em EURUSD.
//+------------------------------------------------------------------+ //| Parâmetros de entrada do Expert Advisor | //+------------------------------------------------------------------+ sinput string Inp_EaComment="Donchian Expert"; //EA de comentários input double Inp_Lot=0.01; //Lote base input MarginMode Inp_MMode=LOT; //Gestão do dinheiro input int Inp_MagicNum=555; //Magic input int Inp_StopLoss=400; //Stop-Loss (em pontos) input int Inp_TakeProfit=600; //Take-Profit (em pontos) input int Inp_Deviation = 20; //Slippage (derrapagem) input ENUM_TIMEFRAMES InpInd_Timeframe=PERIOD_H1; //Timeframe em execução input bool InfoPanel=true; //Exibição de paneis informativos //--- Parâmetros do indicador Donchian Channel System input uint DonchianPeriod=12; //Período de canal input Applied_Extrem Extremes=CLOSE_HIGH_LOW; //Tipo de extremos //--- Seleção de estratégia aplicada input Strategy CurStrategy=Donchian_AvrSpeed_RSI; //Estratégia selecionada //--- Parâmetros do indicador Average Speed input int Inp_Bars=1; //Número de barras input ENUM_APPLIED_PRICE Price=PRICE_CLOSE; //Preço aplicado input double Trend_lev=2; //Nível de tendência //--- Parâmetros do indicador x4period_rsi_arrows input uint RSIperiod1=7; //Período RSI_1 input uint RSIperiod2=12; //Período RSI_2 input uint RSIperiod3=18; //Período RSI_3 input uint RSIperiod4=32; //Período RSI_4 input ENUM_APPLIED_PRICE Applied_price=PRICE_WEIGHTED; //Preço aplicado input uint rsiUpperTrigger=62; //Nível de sobrecompra input uint rsiLowerTrigger=38; //Nível de sobrevenda //--- Parâmetros de Trailing-Stop input bool UseTrailing=false; //Uso de Trailing-Stop
Conclusões
Com base no teste do sistema de negociação segundo o canal Donchian foram feitas as seguintes conclusões e observações sobre suas características:
- A negociação sobre os canais provou ser uma clássica estratégia de tendência, e para melhorá-la, é necessário introduzir filtros de movimento lateral.
- Os resultados do teste foram melhores no mercado de futuros.
- Ao contrário do cálculo clássico de limites máximos e mínimos dos canais, o modo CLOSE_HIGH_LOW (segundo os preços de fechamento) mostrou ser melhor. Isto é devido ao fato de que para o EURUSD testado, são típicas as emissões de preço na forma de longas sombras, no mercado de hoje. Elas distorceram fortemente as bordas do canal, enquanto os preços de fechamento foram mais objetivos.
- Além disso, os melhores resultados foram observados quando se trabalha não nos gráficos diários e timeframes M30 — H1.
- Ao fazer isto, o período eficaz varia de 10 a 20 velas.
Conclusão
No final do artigo é anexado um arquivo com todos os ficheiros listados, classificados em pastas. Portanto, para uma correta operação é suficiente colocar a pasta MQL5 na raiz do terminal. Ao fazer isto, é usada a biblioteca gráfica da interface gráfica do usuário EasyAndFastGUI, que pode ser tomada a partir do artigo.
Programas utilizados no artigo:
# |
Nome |
Tipo |
Descrição |
---|---|---|---|
1 |
DonchianExpert.mq5 | Expert Advisor |
Expert Advisor complexo, incluindo 4 estratégias baseadas em canais Donchian. |
2 |
DonchianUI.mqh | Biblioteca | Classe Interface do usuário |
3 |
TradeFunctions.mqh | Biblioteca | Classe de funções de negociação. |
4 |
Trailing.mqh | Biblioteca | Classe de acompanhamento de posições abertas. |
5 |
average_speed.mq5 | Indicador | Indicador de rapidez média de alteração do preço. |
6 |
donchian_channels_system.mq5 | Indicador | Indicador Canal Donchian com exibição de velas que rompem as bordas do canal. |
7 | x4period_rsi_arrows.mq5 | Indicador | Indicador de semáforo de quatro RSI multi-períodos. |
Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/3146
![Sequência DeMarker (TD SEQUENTIAL) com uso de inteligência artificial (IA)](https://c.mql5.com/2/26/MQL5-avatar-TDSequencial-001.png)
![Interfaces gráficas X: Ordenação, reconstrução da tabela e controles nas células (build 11)](https://c.mql5.com/2/26/MQL5-avatar-X-tableSort-001.png)
![Interfaces gráficas X: Algoritmo de quebra de linha na caixa de texto multilinha (build 12)](https://c.mql5.com/2/27/MQL5-avatar-RedSquare-001.png)
![Análise comparativa de 10 estratégias de tendência](https://c.mql5.com/2/26/MQL5-avatar-sravn-analiz-001__1.png)
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
oi estou tentando testar os Canais de Donchian no MT5, mas preciso de um Expert Advisor, gostei do seu artigo, mas não consigo criar o Expert Advisor do seu artigo
eu ja baixei os arquivos anexados, colei eles na pasta, do MT5, mas ele não aparece no MT5. como faço? o que falta ainda?
Bom dia!
Também não consegui fazer funcionar!
O Ea Esta com erro Critico... Tem que informar o programador do erro e aguardar que ele solucione.