Recursos do Assistente MQL5 que você precisa conhecer (Parte 52): Oscilador Accelerator
Introdução
O Accelerator Oscillator é mais um indicador de Bill Williams voltado para o acompanhamento do impulso. Embora seja amplamente utilizado e derivado de outro oscilador que já estudamos em um artigo anterior, aqui veremos como os diferentes padrões que ele demonstra podem ser usados, ou até mesmo combinados, de modo a obter uma vantagem. O indicador foi projetado especificamente para rastrear a aceleração ou desaceleração do impulso, o que pode ser aproveitado para gerar sinais de possíveis entradas e saídas de operações. A aceleração é diferente da velocidade.
A distinção entre esses dois conceitos nos mercados financeiros certamente possui nuances, especialmente para traders que operam manualmente no MetaTrader. Enquanto a velocidade indica o ritmo de variação do preço, a aceleração, por sua vez, implica na taxa de variação dessa própria velocidade. Utilizamos diferentes indicadores para quantificar corretamente cada uma dessas medidas de forma independente. Para medir a velocidade, geralmente empregamos os seguintes indicadores: taxa de variação (ROC), MACD, RSI e, possivelmente, uma média móvel exponencial simples. Já para avaliar a aceleração, normalmente usamos as Bandas de Aceleração, o histograma do MACD, o oscilador estocástico e o nosso tema neste artigo, o oscilador Accelerator. Esse oscilador, como já mencionado, é derivado do oscilador Awesome, que analisamos em um dos artigos anteriores. Em resumo, sua fórmula era a seguinte:
![]()
No caso do Accelerator, ela terá o seguinte formato:
![]()
Aqui, como antes:
-
AO — valor atual do oscilador Awesome
-
SMA — média móvel simples
Os principais componentes desse oscilador são a linha zero, que representa o ponto de equilíbrio do impulso acelerado, e os valores positivos de AC, que indicam impulso de alta, enquanto os valores negativos apontam para impulso de baixa. A codificação por cores também segue em grande parte o que vimos em outros osciladores de Bill Williams: barras verdes acima ou abaixo da linha zero indicam aumento do impulso para cenários de alta ou de baixa, respectivamente, enquanto barras vermelhas, em ambos os lados da linha zero, sinalizam enfraquecimento do impulso.
O indicador AO é útil para a detecção precoce de reversões de tendência, pois se concentra nas mudanças do impulso antes da reversão do preço. Ele também é versátil para uso em diversos mercados, incluindo forex, ações e commodities, além de ser relativamente simples de interpretar, considerando sua representação visual familiar em forma de histograma. Assim, podemos resumir o seguinte: exemplos práticos de uso incluem a identificação de sinais de entrada, em que, de modo geral, a compra ocorre quando o AC está acima da linha zero e a venda quando está abaixo, além da confirmação de tendências, onde o AC pode trabalhar em conjunto com outros indicadores, como o já analisado Awesome Oscillator ou até médias móveis, para confirmar as tendências do mercado.
No entanto, assim como ocorre com muitos outros indicadores, ele possui suas limitações. Além de frequentemente exigir indicadores adicionais para confirmar seus sinais, como indicadores de tendência e de volume, ele tende a apresentar atrasos consideráveis em mercados laterais ou instáveis. Além disso, o AO é geralmente sensível a oscilações de curto prazo nos preços, o que o torna potencialmente suscetível a um número elevado de falsos sinais. Por fim, seus cruzamentos com a linha zero tendem a ser menos confiáveis do que os do seu análogo, o Awesome Oscillator. Seria interessante compará-lo e analisá-lo lado a lado com o AO antes de aprofundar o estudo dos padrões do AC.
Como já discutimos as principais definições de cada fórmula, podemos agora avançar para seu propósito e interpretação correspondentes. O Awesome Oscillator (AO) reflete a dinâmica geral do mercado e ajuda a identificar tendências e reversões, enquanto o AC é derivado do AO e auxilia na exibição da taxa de variação dessa dinâmica, permitindo avaliar melhor se o impulso está ganhando força ou desacelerando. Se o AC estiver acima da linha zero e continuar crescendo, o impulso está acelerando; se estiver abaixo da linha zero e diminuindo, a pressão de baixa está se intensificando.
A linha zero também é importante para ambos os osciladores, assim como no caso do AO. Seu cruzamento representa um sinal relevante de mudança no impulso, onde qualquer movimento para cima é interpretado como de alta e qualquer movimento para baixo, como de baixa. No entanto, para o AC, a linha zero costuma ter menor importância, sendo dada mais atenção à direção das barras do histograma, isto é, se estão crescendo ou diminuindo. Como este não é um indicador tão poderoso quanto o AO propriamente dito, ele costuma ser mais eficaz para identificar barras positivas que estão diminuindo, o que indica desaceleração, ou barras negativas que estão crescendo, o que sugere redução da pressão vendedora.
Visualmente, ambos os parâmetros costumam ser representados como histogramas, sendo que o AO, em geral, apresenta movimentos mais suaves, enquanto o AC, devido à sua sensibilidade à aceleração ou desaceleração, é mais sujeito a oscilações. Considerando essa percepção geral favorável ao AO, vale observar também que, entre os dois osciladores, o AO frequentemente se mostra mais atrasado. Isso ocorre porque ele se baseia em médias móveis de longo prazo (SMA-5 e SMA-34), que suavizam o ruído, mas tornam o AO menos sensível a mudanças de curto prazo. Por outro lado, o AC é mais sensível e reflete alterações no impulso com antecedência, já que se concentra na taxa de variação do AO.
Isso torna ambos os osciladores adequados para uso. O AO costuma ser uma ferramenta eficaz para identificar tendências, pois se apoia nos cruzamentos da linha zero; para a identificação de reversões, é frequentemente usado seu sinal de duplo topo; e, para análises de impulso de longo prazo, o AO é geralmente ideal para traders que desejam ter uma visão mais ampla do movimento do mercado. Já o AC é voltado para detectar a aceleração do impulso, o que pode indicar pontos de entrada ou saída mais precoces que o AO; identificar sinais de curto prazo, que frequentemente servem como confirmação dos sinais de um indicador secundário de prazo maior, como o próprio AO; e oferecer alta sensibilidade ao movimento de preço, o que pode ser útil para traders que utilizam estratégias como o scalping.
Resumindo a comparação entre AO e AC, deve-se destacar que o AO proporciona uma melhor compreensão das tendências mais amplas e identifica reversões, mas responde de forma mais lenta, enquanto o AC fornece sinais mais rápidos e flexíveis, concentrando-se na aceleração do impulso, o que o torna ideal para traders que precisam tomar decisões rápidas. Como já foi mencionado, ambos podem ser usados em conjunto, quer dizer, o AO para identificar tendências e o AC para determinar o momento de entrada e saída com base nas mudanças de impulso.
Com essas explicações, passamos agora aos padrões do AC. No total, consideraremos oito padrões e, como sempre, primeiro testaremos cada padrão separadamente e, mais adiante, perto do final do artigo, veremos como a combinação de alguns ou de todos eles pode afetar o desempenho do EA ao longo de períodos de teste limitados.
Para este artigo, realizamos os testes com o par GBPUSD no gráfico de 4 horas durante o ano de 2023. Os resultados apresentados para cada padrão foram obtidos em execuções de otimização e não passaram por verificação cruzada quanto à conformidade com os argumentos já discutidos em artigos anteriores. Leitores novos podem consultar essas análises nas publicações passadas sobre padrões de indicadores. Além disso, o código anexado ao final foi criado para ser compilado com o Assistente MQL5. Iniciantes podem encontrar tutoriais sobre isso aqui e aqui.
Cruzamento da linha zero
Nosso primeiro (padrão zero) modelo é o mais básico e se concentra na linha zero. Um sinal de alta ocorre quando o AC cruza a linha zero de baixo para cima, indicando a transição de uma desaceleração para uma aceleração do impulso de alta. Da mesma forma, quando o AC cruza a linha zero de cima para baixo, ficando abaixo dela, isso indica a transição de uma desaceleração para uma aceleração do impulso de baixa. Implementamos esse padrão em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 0. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_0(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && AC(X() + 1) < 0.0 && AC(X()) > 0.0) { return(true); } else if(T == POSITION_TYPE_SELL && AC(X() + 1) > 0.0 && AC(X()) < 0.0) { return(true); } return(false); }
Neste artigo, todos os nossos testes são conduzidos com o par GBPUSD no gráfico de 1 hora durante o ano de 2023. Se testarmos nosso EA montado no Assistente apenas com esse padrão, precisaremos atribuir ao parâmetro de entrada correspondente o valor 1. Execuções de teste bem-sucedidas com configurações otimizadas nos fornecem o seguinte relatório:

Os pontos principais a serem considerados em relação ao padrão 0 são os seguintes:omo já enfatizado na introdução, ele não é um indicador autônomo. Seu melhor uso é em conjunto com outros indicadores para analisar o movimento do preço. Além disso, mesmo quando utilizado com outro indicador, a confirmação continua sendo essencial. É sempre recomendável distribuir a coleta de sinais de entrada e saída, ou seja, se obtivermos o cruzamento na barra atual, o sinal do indicador secundário deve, de preferência, ser lido nas barras subsequentes. Falsos sinais são inevitáveis, como acontece com a maioria dos indicadores. O principal ponto de atenção são os mercados instáveis ou com oscilações abruptas. Mercados voláteis tendem a gerar uma grande quantidade de sinais falsos para esse modelo. No entanto, se as condições de mercado forem de tendência, os traders podem esperar obter vantagem com uma sequência (ou séries) de operações vencedoras.
Barras verdes consecutivas acima de zero
Nosso segundo padrão (padrão 1) baseia-se na contagem das barras coloridas acima ou abaixo da linha zero. Se o AC exibir duas ou mais barras verdes consecutivas acima de zero, isso pode ser interpretado como um forte sinal de impulso de alta, que antecipa a continuação da tendência ascendente. Por outro lado, se mais de uma barra verde aparecer abaixo da linha zero, isso pode ser interpretado como um aumento momentâneo do impulso de baixa, bem como uma possível continuação da tendência descendente. Implementamos isso em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 1. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_1(ENUM_POSITION_TYPE T) { int _i = X(); if(T == POSITION_TYPE_BUY && UpperColor(_i) == clrGreen && UpperColor(_i + 1) == clrGreen && UpperColor(_i + 2) == clrGreen) { return(true); } else if(T == POSITION_TYPE_SELL && LowerColor(_i) == clrRed && LowerColor(_i + 1) == clrRed && LowerColor(_i + 2) == clrRed) { return(true); } return(false); }
Esse sinal requer a observação do tamanho das barras, pois sua magnitude, independentemente de estar aumentando ou não, indica o desenvolvimento da tendência predominante, isto é, se ela está enfraquecendo ou se intensificando. Outro ponto importante é a confirmação e o uso preferencial desse padrão em mercados de tendência. Testes que utilizam apenas esse padrão, atribuindo ao parâmetro de entrada o valor 2, fornecem o seguinte relatório:

Divergência entre o AC e o preço
O padrão 2 utiliza a divergência, sendo que um sinal de alta é observado quando o preço forma mínimas mais baixas enquanto o AC forma mínimas mais altas. Por outro lado, se o preço forma máximas mais altas e o AC indica máximas mais baixas, isso é frequentemente interpretado como um prenúncio de reversão para baixo. A implementação em MQL5 é a seguinte:
//+------------------------------------------------------------------+ //| Check for Pattern 2. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_2(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Low(X() + 3) > Low(X()) && AC(X() + 3) < AC(X())) { return(true); } else if(T == POSITION_TYPE_SELL && High(X() + 3) < High(X()) && AC(X() + 3) > AC(X())) { return(true); } return(false); }
Esse padrão atua como um importante sinal de análise técnica com potencial para identificar reversões. Essencialmente, a divergência ocorre quando a ação do preço e o AC se movem em direções opostas, o que geralmente significa que o movimento do preço apresenta fraquezas subjacentes e, portanto, uma reversão é provável. Testando apenas esse padrão, com o índice 4, obtemos o seguinte relatório:

Como já foi mencionado nos padrões 0 e 1, é necessário sempre acompanhá-los de confirmação, avaliar a quais condições de mercado eles se adaptam melhor, ter cautela com sinais falsos, dar preferência a prazos gráficos mais amplos e aplicar uma gestão de risco adequada.
Sinal de reversão próximo de zero
O padrão 3, com índice de uso (patterns-used) igual a 8, corresponde à reversão do AC quando ele se aproxima de sua linha zero. Nesse padrão, ocorre uma reversão de alta quando o AC muda de cor de vermelho para verde enquanto está acima da linha zero, mas próximo a ela; de forma semelhante, uma reversão de baixa acontece quando a cor muda de verde para vermelho estando abaixo da linha zero, também próxima dela. A avaliação quantitativa de quão próximo o valor do AC está de zero certamente requer um ajuste fino.
Os motivos pelos quais isso pode ser decisivo são claros e, ainda assim, merecem ser ressaltados. É importante identificar e “separar” sinais fortes de sinais fracos.
Isso ocorre porque a magnitude muitas vezes serve como um indicador da força do impulso, e valores grandes próximos à linha zero geralmente sinalizam reversões significativas (que, essencialmente, são uma continuação da tendência anterior, considerando a grande distância em relação ao zero). Assim, para filtrar sinais falsos, é necessário definir um valor-limite considerável, capaz de eliminar os inúmeros sinais de reversão ou padrões em formato de U que o AO pode indicar. O tamanho adequado do desvio em torno de zero no AO também pode ser usado para ajustar com precisão os pontos de entrada e saída, se for interpretado como um reflexo do sentimento de mercado, já que essa distância pode servir como referência para determinar o nível do stop-loss. Além disso, esse parâmetro é informativo em certas análises comparativas, especialmente quando é importante distinguir entre correções normais e reversões genuínas, como em testes baseados em histórico.
A avaliação quantitativa desse desvio pode ser realizada de várias maneiras. Para nossos propósitos, vamos nos concentrar em algumas delas, mais diretamente relacionadas ao próprio oscilador AO. Primeiramente, devemos considerar os valores absolutos do indicador; por exemplo, dependendo do ativo financeiro negociado, esse valor pode ser 0,005 se o tamanho do ponto for 1e-5, ou 0,5 se o ativo for um par cruzado envolvendo o iene. Ao utilizar esse limite, serão considerados apenas os pontos de reversão do AO cuja magnitude em relação ao zero ultrapasse esse valor absoluto.
Outra métrica quantitativa possível é a magnitude relativa, na qual os valores atuais do AO são comparados com suas médias recentes ou históricas. Esse método pode ser entendido como um limiar adaptativo, que se ajusta de acordo com as condições de mercado. Um multiplicador k definido pelo usuário pode ser aplicado às médias históricas ou aos últimos valores do AO para refinar o limiar. Outra alternativa é o uso de um valor-limite baseado no desvio padrão. A fórmula correspondente é a seguinte:
![]()
onde
- mu — valor médio
- sigma — desvio padrão
- e n — parâmetro otimizado pelo usuário.
Outro método para avaliar quantitativamente a magnitude da fronteira zero é utilizar valores dependentes do tempo. Nesse caso, é possível definir um valor absoluto específico para períodos de alta volatilidade ou eventos de notícias, enquanto um limiar alternativo pode ser empregado quando o mercado está mais calmo. Na prática, esse método funciona de forma semelhante ao limiar relativo de magnitude mencionado anteriormente, mas com uma abordagem mais orientada ao tempo.
Aqui estão algumas possíveis maneiras de definir o limite do AO em relação à linha zero. No entanto, é importante lembrar de certos pontos críticos que podem dificultar esse processo e gerar resultados inesperados. Sem entrar em muitos detalhes, esses problemas incluem: definição de limites excessivamente específicos, desconsiderar o contexto de mercado, ignorar o caráter defasado do oscilador AO, interpretar incorretamente valores pequenos e confundir ruído de mercado com sinal válido.
Para os propósitos deste artigo, não iremos quantificar o quão próximo o AC deve estar da linha zero, já que nosso objetivo é simplesmente detectar qualquer reversão de 180 graus próxima dessa linha. Implementamos isso em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 3. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_3(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && AC(X() + 2) > AC(X() + 1) && AC(X() + 1) > 0.0 && AC(X() + 1) < AC(X())) { return(true); } else if(T == POSITION_TYPE_SELL && AC(X() + 2) < AC(X() + 1) && AC(X() + 1) < 0.0 && AC(X() + 1) > AC(X())) { return(true); } return(false); }
Os testes realizados apenas com esse padrão, em que o parâmetro de entrada referente aos padrões utilizados é igual a 8, fornecem os seguintes resultados:

O padrão 3, em sua essência, não é propriamente um padrão de formação de novos sinais ou de reversão, mas sim um padrão de continuação de tendência. As recomendações para seu uso não diferem muito daquelas já apresentadas anteriormente.
Aumento no tamanho das barras coloridas
Nosso padrão 4 tem como objetivo aproveitar o aumento no tamanho das barras de uma determinada cor. Quando o indicador AC mostra um número crescente de barras verdes (estejam elas acima ou abaixo da linha zero), isso é um sinal de aceleração do impulso de alta. Da mesma forma, se há um número crescente de barras vermelhas, independentemente de sua posição em relação à linha zero, isso antecipa uma aceleração do impulso de baixa.
Como esse modelo é bastante amplo, nós o implementamos de forma mais restrita, considerando apenas o aumento no número de barras coloridas no lado oposto ao do impulso indicado. Assim, para um sinal de alta, observaríamos um aumento no número de barras verdes abaixo da linha zero (geralmente acompanhadas de barras encurtadas). De forma semelhante, para um sinal de baixa, consideramos o aumento no número de barras vermelhas encurtadas acima da linha zero, o que indica intensificação do impulso de baixa. Implementamos isso em MQL5 da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 4. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_4(ENUM_POSITION_TYPE T) { int _i = X(); if(T == POSITION_TYPE_BUY && LowerColor(_i) == clrGreen && LowerColor(_i + 1) == clrGreen && LowerColor(_i + 2) == clrGreen) { return(true); } else if(T == POSITION_TYPE_SELL && UpperColor(_i) == clrRed && UpperColor(_i + 1) == clrRed && UpperColor(_i + 2) == clrRed) { return(true); } return(false); }
O principal ponto a ser observado nesse modelo é que ele pode coincidir em grande parte com o padrão de divergência já discutido anteriormente. Se houver formação de mínimas mais altas nas barras verdes abaixo da linha zero e o movimento do preço também indicar uma queda até mínimas estabilizadas, isso pode servir como confirmação adicional de um sinal de alta, com uma possível divergência positiva entre preço e indicador. Por outro lado, máximas mais baixas nas barras vermelhas acima da linha zero, em conjunto com um movimento de preço apresentando máximas mais altas ou estabilizadas, podem sinalizar uma possível correção. Assim como no caso do sinal de alta, praticamente não é necessária confirmação adicional. Os resultados dos testes realizados apenas com esse padrão (parâmetro de entrada igual a 16) nos fornecem o seguinte relatório:

Como sempre, essas execuções de teste têm como objetivo demonstrar o “potencial” do modelo, e não prever resultados futuros propriamente ditos. Elas foram obtidas a partir de configurações de entrada de um curto período de otimização e não passaram por controle direto ou verificação cruzada. O leitor, como de costume, deve adotar precauções de segurança nas operações, levando em conta as condições de sua corretora específica.
Picos e vales do AC
O sexto padrão (padrão 5) combina o comportamento do oscilador AC com padrões de ação do preço, com ênfase em pontos fractais. Um sinal de pico de alta é identificado quando, após um pico no preço, ocorre o aumento do tamanho de uma barra verde no oscilador AC, estando este acima da linha zero. Isso indica uma continuação do impulso de alta. De forma semelhante, um sinal de vale de baixa ocorre quando, após um fractal de mínima no movimento do preço, surge uma barra vermelha menor no AC, situada abaixo da linha zero. Isso também sugere a continuação de uma tendência de baixa. A implementação em código MQL5 é a seguinte:
//+------------------------------------------------------------------+ //| Check for Pattern 5. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_5(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X() + 2) < Close(X() + 1) && Close(X() + 1) > Close(X()) && UpperColor(X()) == clrGreen && AC(X()) > 0.0) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X() + 2) > Close(X() + 1) && Close(X() + 1) < Close(X()) && LowerColor(X()) == clrRed && AC(X()) < 0.0) { return(true); } return(false); }
Vale observar que esse modelo deve ser usado com certa cautela, pois um ponto de pico no AC ou até mesmo no preço pode indicar uma possível reversão, assim como um fractal de vale ou o próprio AC também podem sinalizar um reverso de alta. A interpretação do padrão 5 pode ser um tanto subjetiva, já que, para avaliar ou ponderar corretamente a força de cada sinal, é necessário considerar múltiplos fatores. Entre eles estão a altura e a profundidade dos picos e vales, sua frequência e o valor em ticks de sua divergência.
Picos mais altos e vales mais profundos costumam indicar um impulso mais forte. Assim, para aprimorar a implementação do nosso código anterior, poderíamos adicionar um valor-limite ou um múltiplo do ATR atual ao avaliar a amplitude, de modo que apenas picos e vales cuja oscilação ultrapasse esse limite sejam considerados como sinais válidos do padrão. Além disso, a métrica de frequência (cujo valor, nesse caso, é inversamente proporcional à força do sinal pode servir como denominador na medição da amplitude dos picos e vales. Isso ocorre porque, quanto mais frequentes forem os picos e vales, mais volátil tende a ser o mercado. Como, em geral, picos sempre sucedem vales e vice-versa, uma maneira eficaz de quantificá-los seria verificar quantos desses eventos ocorreram dentro de um período fixo, como uma semana ou um dia, dependendo do intervalo de tempo utilizado.
Por fim, a divergência também pode se enquadrar no padrão 5, uma vez que aqui são analisados os picos e vales, que nem sempre coincidem exatamente como definidos no modelo, mas podem formar, por exemplo, um par “vale-pico”, o que pode indicar uma divergência. O teste realizado apenas com esse padrão, em que o parâmetro de entrada dos padrões utilizados é igual a 32, produz os seguintes resultados:

Mudança de cor após uma forte tendência
Nosso sétimo padrão (padrão 6) é formado a partir da mudança de cor no oscilador AC. E como essa mudança tem impacto diferente dependendo de onde ocorre em relação à linha zero, ela pode ser considerada ampla demais, como vimos no caso do padrão 4. Por isso, restringimos nossas definições de sinal a um lado específico da linha zero. Assim, o enfraquecimento do impulso de alta se manifesta quando ocorre uma mudança na cor das barras do AC, de verde para vermelho, estando acima da linha zero, o que indica um sinal de baixa. Da mesma forma, a mudança de cor das barras de vermelho para verde quando estão abaixo da linha zero indica o enfraquecimento do impulso de baixa e, portanto, sugere uma iminente reversão de alta. Em MQL5, esse padrão é implementado da seguinte maneira:
//+------------------------------------------------------------------+ //| Check for Pattern 6. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_6(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && ((UpperColor(X() + 1) == clrRed && UpperColor(X()) == clrGreen) || (LowerColor(X() + 1) == clrRed && LowerColor(X()) == clrGreen))) { return(true); } else if(T == POSITION_TYPE_SELL && ((UpperColor(X() + 1) == clrGreen && UpperColor(X()) == clrRed) || (LowerColor(X() + 1) == clrGreen && LowerColor(X()) == clrRed))) { return(true); } return(false); }
Essa mudança de cor ocorre após uma forte tendência, portanto, deve ser observada em conjunto com o próprio processo de alteração de cor para que o sinal seja corretamente registrado. Além de atuar como um ponto de entrada em nosso caso, esse padrão também pode funcionar como uma referência para realização de lucro, considerando que ele surge após uma longa tendência. Na verdade, a ideia de realização de lucro reforça que esse sinal, por si só, nem sempre é forte ou confiável, já que geralmente aparece no final ou, mais frequentemente, no meio de uma tendência robusta. O teste executado apenas com esse padrão, com o parâmetro de entrada definido como 64, nos fornece o seguinte relatório:

AC plano próximo aos níveis extremos
Nosso oitavo e último padrão (padrão 7) é obtido a partir da observação do oscilador AC quando ele se aproxima de seus níveis extremos. Ao utilizar esse modelo, surge uma oportunidade de alta quando o AC se torna plano próximo de um mínimo relevante, predominando barras vermelhas, e depois começa a formar barras verdes. Da mesma forma, a possibilidade de queda aparece quando o AC se estabiliza próximo de um máximo significativo, com várias barras verdes, e então surgem algumas barras vermelhas. Para um sinal de alta, o AC deve estar abaixo da linha zero, enquanto para um sinal de baixa ele deve estar acima da linha zero. A implementação do padrão em MQL5 é a seguinte:
//+------------------------------------------------------------------+ //| Check for Pattern 7. | //+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_7(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && LowerColor(X() + 3) == clrRed && LowerColor(X() + 2) == clrRed && LowerColor(X() + 1) == clrRed && LowerColor(X()) == clrGreen) { return(true); } else if(T == POSITION_TYPE_SELL && UpperColor(X() + 3) == clrGreen && UpperColor(X() + 2) == clrGreen && UpperColor(X() + 1) == clrGreen && UpperColor(X()) == clrRed) { return(true); } return(false); }
O achatamento do AC, especialmente em um determinado nível-limite, pode ser um forte indicativo de que a tendência atual está perdendo força. Em nossa implementação, não há um valor-limite específico que o oscilador AC deva atingir para que esse padrão seja considerado, mas essa seria uma adição relevante. Deixo essa tarefa a critério do leitor. As execuções de teste realizadas apenas com esse padrão, atribuindo o valor 128 ao parâmetro de entrada, resultam no seguinte relatório:

Todos os padrões
Durante a execução de otimização voltada para encontrar a combinação ideal de padrões e otimizar os índices dos parâmetros de entrada de 0 a 255, os resultados mais favoráveis foram os seguintes:


Conclusão
Analisamos mais um oscilador de Bill Williams que, embora muito semelhante ao já estudado Awesome Oscillator, é mais focado em acompanhar o impulso acelerado do preço e não apenas suas variações. Além disso, foram introduzidas pequenas modificações na forma como as cores são definidas por meio de um sinal personalizado. O código-fonte está apresentado abaixo. A série de artigos sobre indicadores está chegando ao fim; restam apenas alguns detalhes finais.
| Nome do arquivo | Descrição |
|---|---|
| SignalWZ_52.mqh | Arquivo de classe de sinais personalizados |
| WZ_52 | EA montado no Assistente, cujo cabeçalho exibe os arquivos utilizados. |
Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/16781
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.
MQL5 Trading Toolkit (Parte 5): Expansão da biblioteca EX5 para gerenciamento do histórico com funções do último ordem pendente executada
Dominando registros de log (Parte 2): Formatação dos logs
Desenvolvimento de ferramentas para análise do movimento de preços (Parte 7): Expert Advisor Signal Pulse
Aplicação de métodos de ensemble para tarefas de classificação em MQL5
- 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