
Técnicas do MQL5 Wizard que você deve conhecer (Parte 48): Alligator de Bill Williams
Introdução
O indicador Alligator, que foi desenvolvido por Bill Williams com a premissa de que os mercados tendem a apresentar fortes tendências em qualquer direção definida por apenas cerca de 15 – 30% do tempo. Ele é, por natureza, uma ferramenta seguidora de tendências que ajuda os traders a identificar a direção do mercado e potenciais fractais ou pontos de reversão. Isso é alcançado utilizando um conjunto de três médias móveis suavizadas (SMAs) que não apenas possuem diferentes períodos de cálculo, mas também são deslocadas adiante em diferentes quantidades.
Essas três SMAs são frequentemente chamadas de Mandíbula, Dentes e Lábios em referência à boca de um jacaré. Esses 3 buffers de média ajudam os traders a visualizar as fases do mercado, que normalmente incluem fases de tendência, fases de consolidação e fases de transição. Quando as 3 médias estão em uma faixa estreita, isso é frequentemente chamado de jacaré tirando uma soneca, o que corresponderia à fase sem direção de Bill Williams, que ele estimou ocupar de 70 – 85% do tempo na maioria dos mercados. A outra parte (os 15 – 30%) é marcada pela divergência desses três buffers, uma divergência que sempre indica uma direção específica, seja de alta ou de baixa. Essa fase é frequentemente rotulada como o despertar do Jacaré, e é supostamente quando a maioria dos traders deve buscar ganhar dinheiro.
Estas são as fórmulas das 3 SMAs. Primeiro, temos a Mandíbula:
Onde:
- SMA 13 (Fechamento): média móvel suavizada de 13 períodos do preço de fechamento.
- Deslocamento: a linha da Mandíbula é deslocada 8 períodos à frente para suavizar a tendência e permitir a antecipação da direção do mercado.
Depois os Dentes:
Onde:
- SMA 8 (Fechamento): média móvel suavizada de 8 períodos do preço de fechamento.
- Deslocamento: a linha dos Dentes é deslocada 5 períodos à frente.
E, finalmente, os Lábios:
Onde:
- SMA 5 (Fechamento): média móvel suavizada de 5 períodos do preço de fechamento.
- Deslocamento: a linha dos Lábios é deslocada 3 períodos à frente.
As características exibidas pelo Alligator também podem ser comparadas a um ciclo de alimentação. Se começarmos pela parte onde os três buffers estão misturados ou muito próximos, nessa fase, também conhecida como fase do sono, os mercados estão em consolidação ou lateralização. Williams comparou isso a um jacaré cochilando e, como indicado na introdução, essa fase do ciclo é predominante, ocupando a maior parte do tempo para a maioria dos ativos. O que se segue a isso, então, seria o ‘acordar’.
Nessa etapa do ciclo, as três SMAs começam a divergir ou se separar, geralmente em uma direção indicativa. Isso significa que todas começam a seguir uma tendência em direção específica à medida que se separam, embora a ordem delas — que, em uma tendência de alta, deve ser lábios-dentes-mandíbula e, na de baixa, o inverso — ainda não precise ser respeitada. Após o despertar, o que se segue é a ‘alimentação’.
Durante essa fase do ciclo, as linhas começam a divergir de forma mais clara e sua ordem de lábios-dentes-mandíbula em uma tendência de alta, ou mandíbula-dentes-lábios em uma queda (ordenando de cima para baixo), começa a se firmar. Os traders frequentemente veem isso como um bom momento para seguir a direção da tendência, já que é nessa fase que a maior parte do dinheiro será feita. É a 3ª etapa do ciclo, mas não a final, pois a fase ‘satisfeita’ a sucede.
Na fase final, chamada de ‘satisfeita’, as três SMAs começam a convergir. Essa convergência pode sinalizar que a tendência está terminando ou entrando em uma fase de correção e, portanto, em ambos os casos, pode ser uma boa ideia para alguns traders realizarem lucros quando essa fase for sinalizada. A simplicidade do Indicador Alligator em sua construção o torna uma ferramenta relativamente direta para compreender a fase atual do mercado e possíveis mudanças de direção, apenas estudando médias móveis suavizadas. Ele, portanto, é útil para ajudar os traders a cronometrar melhor entradas e saídas.
Com esse pano de fundo, aprofundamo-nos neste indicador em uma base de padrão por padrão, como tem sido o caso em artigos alternativos anteriores desta série, onde tratamos de um indicador técnico comum específico de cada vez. Olhamos o Ichimoku por último em este artigo, para leitores que são novos, onde revisamos 11 padrões naquela ocasião e, para este artigo, temos oito preparados. Uma revisão de indicador em uma base de padrão por padrão tem o potencial de revelar certos aspectos de indicadores muito comuns que podem ter sido negligenciados por alguns traders e que, ainda assim, seriam dignos de adicionar ao seu arsenal.
Mas talvez mais do que isso, eles lançam luz sobre o peso relativo e a importância de todos os padrões-chave que um dado indicador tem a oferecer, aprimorando as habilidades dos traders sobre no que focar e no que ignorar. Tendemos a concluir esses artigos otimizando os pesos relativos de cada um e, embora seja possível levar tais resultados a um ambiente de implantação real, eu preferiria que a ponderação fosse definida manualmente pelos traders para cada padrão com base em sua própria experiência, mesmo que seus resultados de teste otimizados possam ser validados cruzadamente.
O código anexado destina-se a ser usado com o wizard MQL5 para montar um Expert Advisor, e existem guias aqui e aqui para novos leitores sobre como realizar isso. Este Expert Advisor montado pode ser usado com apenas um padrão de cada vez, como foi mencionado nos artigos introdutórios anteriores sobre esses indicadores. Como cada padrão é indexado de zero até o número total de padrões menos um, que em nosso caso chega a sete, podemos controlar quais padrões serão usados por meio de um parâmetro de entrada chamado m_patterns_usage, e ele é herdado da classe pai para nossa classe de sinal personalizada.
Para usar apenas um dos padrões disponíveis, o índice definido para este parâmetro de entrada seria dois elevado à potência do índice do padrão. Assim, para usar apenas o padrão-0, essa entrada seria atribuída a 2^0 que é 1, enquanto para o padrão-5 seria 2^5 que equivale a 32, e assim por diante. Esse mesmo parâmetro de entrada pode permitir a seleção múltipla e o uso de padrões, como mencionado acima, e é isso que abordamos na parte final deste artigo. E, como existem muitas combinações possíveis mesmo para um pequeno número de padrões (8, em nosso caso), os leitores podem entender que quando qualquer inteiro que não esteja na série 2^0, 2^1,… 2^n for usado, e for menor que o limite do valor máximo do parâmetro de entrada m_patterns_usage, então esse valor implica que mais de um padrão está sendo usado. O limite para m_patterns_usage em nosso caso, dado que estamos usando apenas 8 padrões, é 255. Vamos aos padrões.
Alligator Awakening (Sinal de Cruzamento)
Este é talvez o padrão principal do indicador Alligator, e como era de se esperar, ele trata da fase mais interessante dos ciclos do Alligator: o início da fase de alimentação, que aqui é chamada de despertar. Seu sinal é baseado nos lábios, dentes e mandíbula quando eles se cruzam, indicando uma potencial mudança de tendência ou direção.
O cruzamento de alta é quando a linha verde dos lábios cruza acima das linhas vermelha dos dentes e azul da mandíbula; isso frequentemente sinaliza o início de uma tendência de alta. Por outro lado, o cruzamento de baixa ocorre quando a linha verde dos lábios cruza abaixo das linhas vermelha dos dentes e azul da mandíbula, indicando o começo de uma tendência de baixa. Implementamos isso em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 0. | //+------------------------------------------------------------------+ bool CSignalAlligator::IsPattern_0(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Lips(X() + 1) < Jaws(X() + 1) && Lips(X()) > Jaws(X())) { return(true); } else if(T == POSITION_TYPE_SELL && Lips(X() + 1) > Jaws(X() + 1) && Lips(X()) < Jaws(X())) { return(true); } return(false); }
Isto marca nosso padrão-0, e para realizar execuções de teste apenas com este padrão, nosso parâmetro de entrada m_patterns_usage precisa ser definido como 1. Se fizermos isso e tentarmos otimizar alguns dos outros Expert Advisor em um esforço para demonstrar o potencial de negociação deste padrão, obteremos o seguinte relatório a partir de alguns dos resultados favoráveis:
Nossas configurações de teste para isso são USD CHF no período de 1 hora para o ano de 2023. Esses resultados vêm principalmente da otimização do peso limite do padrão, bem como dos limites de condição de abertura e fechamento. Negociamos com ordens pendentes, temos um nível de take profit, mas sem stop loss. Estas certamente não são condições ideais, mas servem ao propósito de demonstrar o padrão-0 em ação.
Alligator Eating (Seguindo a Tendência)
Nosso segundo padrão, padrão-1, trata do núcleo do sinal Alligator, com as linhas de lábios, dentes e mandíbula alinhadas e se afastando em uma direção definida para uma determinada tendência. Esta é a fase de alimentação dos ciclos do Alligator, com a alimentação de alta sendo definida quando os lábios verdes estão acima dos dentes vermelhos, que por sua vez estariam acima da mandíbula azul. Essas linhas, embora todas apontando para cima, também estariam divergindo devido não apenas aos seus diferentes períodos de cálculo, mas também aos seus diferentes deslocamentos. Quando todos esses critérios são atendidos, isso indicaria uma tendência de alta muito forte.
A alimentação de baixa, por outro lado, é registrada se os lábios verdes estiverem abaixo dos dentes vermelhos, que por sua vez estariam abaixo da mandíbula azul, novamente com todas as 3 SMAs apontando para baixo em um padrão divergente (não paralelo). A observação de todos esses critérios, assim como na alta, indicaria um forte sinal de baixa. Implementamos isso em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 1. | //+------------------------------------------------------------------+ bool CSignalAlligator::IsPattern_1(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Lips(X()) > Teeth(X()) && Teeth(X()) > Jaws(X())) { return(true); } else if(T == POSITION_TYPE_SELL && Lips(X()) < Teeth(X()) && Teeth(X()) < Jaws(X())) { return(true); } return(false); }
Resultados de testes de uma rodada de otimização com configurações semelhantes às do padrão-0 do par forex USD CHF, período de 1 hora, ano 2023, nos fornecem os seguintes resultados:
Sinais do Oscilador Gator
Além do indicador Alligator, Bill Williams também é responsável pelo oscilador Gator, que é uma projeção em forma de histograma das diferenças entre os três buffers de SMA do indicador Alligator. O indicador interno no MQL5 para o oscilador Gator é um pouco problemático porque o oscilador Gator é, por natureza, não ortodoxo. Seus resultados são em 4 partes: dois valores duplos e dois valores de cor. Como as definições das fórmulas por trás disso são bem conhecidas, realizamos nossa própria implementação personalizada dentro de nossa classe de sinal personalizada da seguinte forma:
// double Upper(int ind) { return(fabs(Jaws(ind) - Teeth(ind))); } color UpperColor(int ind) { return(Upper(ind) >= Upper(ind + 1) ? clrGreen : clrRed); } double Lower(int ind) { m_gator.Refresh(-1); return(-fabs(Teeth(ind) - Lips(ind))); } color LowerColor(int ind) { m_gator.Refresh(-1); return(fabs(Lower(ind)) >= fabs(Lower(ind + 1)) ? clrRed : clrGreen); } //
Este padrão, padrão-2, é nosso 3º padrão, e combina sinais do oscilador Gator que leremos de nossas funções personalizadas derivadas do indicador Alligator. Dito isso, a expansão de alta do gator ocorre quando barras verdes no oscilador gator se expandem para cima, indicando uma tendência em fortalecimento. Por outro lado, a expansão de baixa do gator ocorre quando barras vermelhas se expandem para baixo, sugerindo um fortalecimento da tendência de baixa. Como corolário, barras vermelhas e verdes mistas frequentemente marcam uma consolidação de mercado ou enfraquecimento da tendência. Implementamos o padrão-2 em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 2. | //+------------------------------------------------------------------+ bool CSignalAlligator::IsPattern_2(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && UpperColor(X()) == clrGreen && LowerColor(X()) != clrRed) { return(true); } else if(T == POSITION_TYPE_SELL && LowerColor(X()) == clrRed && UpperColor(X()) != clrGreen) { return(true); } return(false); }
Execuções de teste a partir de uma rodada favorável de otimização nos fornecem o seguinte relatório:
Isso é com configurações de teste semelhantes às acima do símbolo USD CHF, período de 1 hora, ano-2023. Esses resultados não são validados cruzadamente e apenas demonstram o potencial de negociação do padrão 2. Testamos o Expert Advisor apenas com o padrão-2 atribuindo ao parâmetro de entrada m_patterns_usage o valor inteiro 4, conforme explicado acima na introdução.
Divergência Mandíbula-Lábios e Dentes-Lábios
Este padrão é o nosso quarto e está indexado como padrão-3. Ele gira em torno da diferença de direção ou tamanho do gap entre mandíbula-lábios ou dentes-lábios. A divergência de alta ocorre se os lábios (linha verde) começarem a se afastar dos dentes (linha vermelha) e da mandíbula (linha azul) após um período de lateralização. Isso essencialmente serve como um indicador precoce de uma potencial tendência de alta. Por outro lado, a divergência de baixa ocorre se os lábios começarem a se afastar da mandíbula e dos dentes em direção descendente, o que frequentemente prenuncia uma queda do mercado. Implementamos isso em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 3. | //+------------------------------------------------------------------+ bool CSignalAlligator::IsPattern_3(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Lips(X()) - fmax(Teeth(X()), Jaws(X())) > Lips(X() + 1) - fmax(Teeth(X() + 1), Jaws(X() + 1))) { return(true); } else if(T == POSITION_TYPE_SELL && fmin(Teeth(X()), Jaws(X())) - Lips(X()) > fmin(Teeth(X() + 1), Jaws(X() + 1)) - Lips(X() + 1)) { return(true); } return(false); }
Testando com configurações idênticas às usadas em todos os padrões mencionados acima, obtemos os seguintes resultados a partir de algumas das configurações favoráveis obtidas de uma breve rodada de otimização:
Despertar do Alligator Após o Sono
O padrão-4, nosso quinto, deve se desenrolar após um período considerável de consolidação ou o Alligator dormindo. Isso é caracterizado pelos lábios, dentes e mandíbula começando a se desenredar. Para a estratégia de negociação, portanto, o sinal de alta é após um longo período de sono do Alligator: se os lábios, dentes e mandíbula começarem a divergir para cima, isso pode ser um sinal de rompimento de alta. Por outro lado, o sinal de baixa é se as mesmas 3 linhas começarem a divergir para baixo após um período prolongado de convergência, o que potencialmente indica um rompimento de baixa. Implementamos isso em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 4. | //+------------------------------------------------------------------+ bool CSignalAlligator::IsPattern_4(ENUM_POSITION_TYPE T) { if(Range(X() + 3) <= Spread(X() + 3) && Range(X() + 8) <= Spread(X() + 8)) { if(T == POSITION_TYPE_BUY && Lips(X()) > Lips(X() + 3) && Teeth(X()) > Teeth(X() + 3) && Jaws(X()) > Jaws(X() + 3)) { return(true); } else if(T == POSITION_TYPE_SELL && Lips(X()) < Lips(X() + 3) && Teeth(X()) < Teeth(X() + 3) && Jaws(X()) < Jaws(X() + 3)) { return(true); } } return(false); }
Quando testamos apenas este padrão com configurações de símbolo e período de tempo semelhantes às acima com os outros padrões, tendo atribuído ao parâmetro m_patterns_usage o valor 16, obtemos os seguintes resultados:
Confirmação de Rompimento
Nosso padrão-5 desenvolve seu sinal a partir de movimentos de preço na mesma direção das linhas do Alligator, com uma continuação que não apresenta forte retração. Para este padrão, um rompimento de alta ocorre se o preço estiver acima das linhas do Alligator e todas as três linhas estiverem inclinadas para cima, sugerindo a continuação da posição de compra. Não é marcado por nenhuma grande mudança no preço em si. Da mesma forma, um ‘rompimento’ de baixa ocorre se o preço estiver abaixo das linhas do Alligator, e todas as três linhas estiverem inclinadas para baixo, o que sinalizaria a continuação da venda. Implementamos isso em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 5. | //+------------------------------------------------------------------+ bool CSignalAlligator::IsPattern_5(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X()) > Lips(X()) && Lips(X()) > Lips(X() + 3) && Teeth(X()) > Teeth(X() + 3) && Jaws(X()) > Jaws(X() + 3)) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()) < Lips(X()) && Lips(X()) < Lips(X() + 3) && Teeth(X()) < Teeth(X() + 3) && Jaws(X()) < Jaws(X() + 3)) { return(true); } return(false); }
Para negociar com o Expert Advisor montado pelo wizard usando apenas este padrão, precisaríamos atribuir ao parâmetro de entrada m_patterns_usage o valor 32. Nos inputs, este parâmetro, herdado da classe pai da nossa classe de sinal personalizada, é rotulado como “Patterns Used Bitmap”. Execuções de teste com configurações de entrada favoráveis de uma rápida otimização que utiliza configurações semelhantes às dos padrões acima mencionados nos fornecem o seguinte relatório:
Sinais de Volatilidade
Este padrão bônus, embora não formalmente codificado e testado como os demais, pode ser definido se alguém combinar tendências predominantes de ação de preço com a(s) faixa(s) do Alligator. A tese principal por trás dele é que a faixa geral do Alligator, que definimos na função a seguir;
double Range(int ind) { return(fmax(fmax(Jaws(ind), Teeth(ind)), Lips(ind)) - fmin(fmin(Jaws(ind), Teeth(ind)), Lips(ind))); }
É um proxy para volatilidade. Alta volatilidade, portanto, é quando a mandíbula, dentes e lábios estão bem afastados, o que indicaria que a tendência predominante é muito forte e justificada. Uma verificação da tendência de preço predominante ajudaria a estabelecer se um sinal de alta (preços em alta) ou sinal de baixa (preços em queda) deve ser inferido. Baixa volatilidade, por outro lado, não marcaria necessariamente nenhum sinal; no entanto, poderia ser usada para determinar quando encerrar posições abertas. Isso seria implícito quando os três buffers de SMA estiverem próximos, o que frequentemente sinaliza atividade em faixa e também geralmente é usado como precaução para aguardar a entrada no mercado. Para posições abertas, no entanto, isso poderia representar uma oportunidade de encerrar e, além disso, se a tendência de preços estiver intacta, com a queda recente na volatilidade, a abertura de posições reversas pode ser indicada. Para este fim, uma tendência de alta de preços em declínio para baixa volatilidade poderia prenunciar um sinal de baixa, da mesma forma que uma tendência de baixa de preços em condições semelhantes poderia indicar um sinal de alta. Este padrão seria, indiscutivelmente, menos certo do que os outros e, portanto, os leitores que desejarem codificar e implementar isso deveriam talvez combiná-lo com outros sinais.
Sinal de Retração dos Lábios do Alligator
O padrão-6 é o nosso sétimo e envolve a retração dos lábios em direção aos dentes ou mandíbula sem chegar a cruzar totalmente. A estratégia de negociação com isso, portanto, é: uma retração de alta ocorre se a linha dos lábios se mover em direção aos dentes e mandíbula, mas depois recuar para cima sem cruzar, indicando a potencial continuação da tendência de alta. E, como esperado, uma retração de baixa seria se os lábios se movessem em direção aos dentes e mandíbula, recuassem sem cruzar e, assim, configurassem uma potencial continuação da tendência de baixa. Implementamos isso em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 6. | //+------------------------------------------------------------------+ bool CSignalAlligator::IsPattern_6(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Lips(X()) > Lips(X()+1) && Lips(X()+1) < Lips(X()+2) && Lips(X()) > Teeth(X()) && Lips(X()+1) > Teeth(X()+1) && Teeth(X()) > Jaws(X())) { return(true); } else if(T == POSITION_TYPE_SELL && Lips(X()) < Lips(X()+1) && Lips(X()+1) > Lips(X()+2) && Lips(X()) < Teeth(X()) && Lips(X()+1) < Teeth(X()+1) && Teeth(X()) < Jaws(X())) { return(true); } return(false); }
Para usar o Expert Advisor apenas com o padrão-6, deve-se atribuir ao parâmetro de entrada “Patterns-Used-Bitmap” o valor inteiro 64, que corresponde a 2 elevado à potência 6, o índice do nosso padrão. Se otimizarmos nosso Expert usando apenas este padrão, uma das configurações de entrada favoráveis que obtemos nos apresenta o relatório abaixo:
Como já mencionado, isso não é validado cruzadamente, mas é mostrado aqui apenas para demonstrar o potencial/habilidade de negociação do padrão-6.
Prevenção de Falsos Rompimentos
Nosso padrão final, padrão-7, deriva da observação da mandíbula, dentes e lábios do Alligator para ver se eles permanecem alinhados em meio a um rompimento de mercado. O objetivo aqui é a prevenção de falsos rompimentos. A estratégia de negociação, portanto, é que uma prevenção de falso rompimento de alta é registrada se ocorrer um rompimento de alta, mas as linhas do Alligator não divergirem significativamente, sugerindo potencialmente um falso rompimento, no sentido de que o mercado pode reverter e cair novamente. Por outro lado, uma prevenção de falso rompimento de baixa é considerada quando as linhas do Alligator permanecem próximas em um rompimento espelhado de preços para baixo, o que normalmente significaria que os traders devem evitar entrar em uma posição de venda. Esses falsos rompimentos, de certo modo, implicam sinais de seus opostos e, para este fim, implementamos este padrão em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 7. | //+------------------------------------------------------------------+ bool CSignalAlligator::IsPattern_7(ENUM_POSITION_TYPE T) { if(Range(X()) <= Spread(X())) { if(T == POSITION_TYPE_BUY && Close(X()) < fmin(fmin(Jaws(X()), Teeth(X())), Lips(X())) && Close(X()+1) > fmin(fmin(Jaws(X()+1), Teeth(X()+1)), Lips(X()+1))) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()) > fmax(fmax(Jaws(X()), Teeth(X())), Lips(X())) && Close(X()+1) < fmax(fmax(Jaws(X()+1), Teeth(X()+1)), Lips(X()+1))) { return(true); } } return(false); }
Usar apenas este padrão com o nosso Expert Advisor requer que a entrada “patterns used” seja atribuída ao inteiro 128, o que, se feito, e otimizarmos com configurações semelhantes às dos outros padrões acima do símbolo USD CHF, período de 1 hora, e período de teste 2023, nos dá o seguinte relatório ao usar algumas das configurações de entrada recomendadas:
Combinando todos os padrões
A combinação e o uso potencial de todos os padrões no Expert Advisor levanta o debate se isso é adequado ou se os traders devem se ater a um único padrão. Tenho alertado contra o uso de pesos otimizados para vários padrões em contas reais, pois acredito que é melhor que a ponderação seja definida como uma constante pelo trader, com base em sua própria experiência com o respectivo indicador. No entanto, há outros pontos a considerar nesse discurso.
Primeiro está o argumento da consciência contextual versus simplicidade. Se este indicador, o Alligator, é relativamente novo para você, pode-se argumentar que acompanhar múltiplos padrões permite uma compreensão mais sutil do ciclo completo do mercado em relação ao Alligator; que, neste caso, é: consolidação, início de tendência, continuação de tendência e término de tendência. Isso poderia fornecer insights sobre mudanças sutis nas fases durante as transições, sem mencionar o provável perfil risco-retorno de cada fase.
A observação e coleta dessa informação provavelmente seriam ideais em um cenário de negociação manual, o que não é necessariamente o que buscamos explorar com estas séries. O argumento pela simplicidade, por outro lado, baseia-se no fato de que focar em apenas um padrão, como a fase de “alimentação” ou de tendência, ajuda a simplificar a tomada de decisões. E, ao negociar manualmente, isso pode ser um argumento crucial; no entanto, como pretendemos usar um Expert Advisor, isso não é uma grande preocupação, especialmente se considerarmos que até mesmo os recursos de computação e memória envolvidos nisso são minúsculos.
Portanto, em resumo, pode-se afirmar que a abordagem de múltiplos padrões é adequada para exploração e aprendizado e que a rota focada é adequada uma vez que os traders estejam familiarizados com o que funciona, como e por quê. Esses argumentos e cautelas não obstante, otimizamos os vários padrões para descobrir qual ponderação relativa funcionaria melhor quando todos são combinados. Ao fazer isso, como buscamos usar múltiplos padrões, a entrada “Pattern’s Used Bitmap” é otimizada no intervalo de 0 a 255. Os resultados de alguns dos parâmetros de entrada favoráveis dessa otimização nos fornecem o seguinte relatório:
Novamente, estamos usando o período de 1 hora para o ano de 2023 no símbolo USD CHF, como fizemos com todos os padrões que testamos individualmente acima.
Conclusão
Examinamos outro indicador, o Alligator de Bill Williams, em uma classe de sinal personalizada em uma base de padrão por padrão, com o objetivo de ter uma noção da importância relativa de cada padrão e também uma opinião sobre se o uso combinado de todos os seus padrões é mais frutífero do que o uso individual de cada um; o argumento de que “o todo é maior que a soma das partes”. Embora, neste caso, nossa série de relatórios de teste indique que “menos é mais”, dado o relatório pouco animador quando combinamos todos os padrões, testes extensivos ao longo de períodos mais longos, que se estendam além da nossa janela de teste, o ano de 2023, precisam ser realizados antes que conclusões definitivas possam ser tiradas.
Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/16329
Aviso: Todos os direitos sobre esses materiais pertencem à MetaQuotes Ltd. É proibida a reimpressão total ou parcial.
Esse artigo foi escrito por um usuário do site e reflete seu ponto de vista pessoal. A MetaQuotes Ltd. não se responsabiliza pela precisão das informações apresentadas nem pelas possíveis consequências decorrentes do uso das soluções, estratégias ou recomendações descritas.





- 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
Olá do backtest mostrados no artigo?
Quando estou executando o EA, ele está negociando sem parar, fazendo 3943 negociações por ano e parece desconsiderar completamente o sinal.
Estou particularmente interessado no padrão 2. Está claro que a máscara de bits para ele será 4, mas e quanto aos outros valores?
Quando estou executando o EA, ele está negociando sem parar, fazendo 3943 negociações por ano e parece desconsiderar completamente o sinal.
Estou particularmente interessado no padrão 2. Está claro que a máscara de bits para ele será 4, mas e quanto aos outros valores?
Um número cada vez maior de pessoas continua me perguntando sobre as configurações de entrada, mas o problema é que eu nunca as mantenho. O que sempre tento compartilhar no artigo é o nome do par negociado, o período de tempo usado e o ano do teste (geralmente testo em um único ano)
As configurações de entrada são sempre de um curto período de otimização, não são validadas de forma cruzada e, portanto, estritamente falando, não merecem ser compartilhadas.
O objetivo de publicar os relatórios de teste é simplesmente demonstrar a capacidade de negociação e o uso do sinal, nada mais. O trabalho de procurar configurações com validação cruzada é sempre deixado para o leitor.