Recursos do Assistente MQL5 que você precisa conhecer (Parte 71): Utilização de padrões MACD e OBV
Introdução
O oscilador MACD é utilizado em conjunto com o OBV. Os dois indicadores se complementam: o MACD acompanha a tendência, enquanto o OBV analisa o comportamento do volume acumulado conforme a direção dos preços. Realizamos os testes com o par de moedas GBPJPY, utilizando dados de 2023, enquanto 2024 é reservado para o teste forward. A etapa de treinamento ou otimização com os dados de 2023 busca não apenas identificar o peso ideal de cada padrão de sinal, mas também definir os desvios de preço utilizados nas entradas e os níveis de stop-loss. Apesar disso, não utilizamos stop-loss. Para encerrar posições que deixam de atender às condições da estratégia, utilizamos exclusivamente o limiar de fechamento ponderado pelo peso definido na classe personalizada de sinais.
Os relatórios de teste apresentados a seguir mostram, em sua maioria, resultados lucrativos. No entanto, isso não significa necessariamente que o desempenho se manterá em períodos posteriores, já que o período avaliado nos testes também abrange os dados utilizados na otimização dos EAs. Adotamos essa abordagem ao longo de toda a série de testes e pretendemos mantê-la. Portanto, além da duração bastante curta dos testes, os leitores devem levar esse aspecto em consideração ao interpretar os resultados.
Testamos individualmente 10 padrões de sinal, seguindo as regras abaixo:
Os padrões são indexados de 0 a 9, o que facilita o cálculo dos valores da máscara de bits utilizada pelo EA para selecionar cada padrão individualmente. Por exemplo, para utilizar apenas o padrão de índice 1, devemos definir o parâmetro PatternsUsed como 2 elevado à potência 1, ou seja, 2. Para o padrão de índice 4, calculamos 2 elevado à quarta potência, obtendo 16, e assim por diante. O valor máximo que pode ser atribuído ao parâmetro é 1023, pois temos apenas 10 padrões. O valor 0 não seleciona nenhum padrão. Cada potência de 2 permite selecionar um único padrão, enquanto os demais valores positivos até 1023 representam combinações de dois ou mais dos 10 padrões.
MACD
O MACD foi desenvolvido para medir a diferença entre duas médias móveis exponenciais. Sua principal função é indicar a direção da tendência, embora também possa ser considerado um indicador de momentum. O principal componente do indicador é a linha MACD, representada pelo histograma. O indicador também utiliza um buffer adicional para armazenar os valores da linha de sinal, que corresponde simplesmente a uma versão suavizada da linha ou do histograma MACD. Essa linha ajuda a identificar possíveis mudanças de direção do MACD e, consequentemente, sinais de compra ou venda. Valores positivos do histograma indicam uma tendência de alta, enquanto valores negativos indicam uma tendência de baixa.
O indicador permite identificar três tipos de sinal: cruzamentos entre o histograma e a linha de sinal, importantes para as decisões de negociação; cruzamentos do histograma com a linha zero, que frequentemente indicam mudanças de tendência; e divergências entre a direção dos preços e a do histograma. Os períodos normalmente utilizados para as EMAs rápida e lenta são 12 e 26, respectivamente. Para a linha de sinal, costuma-se utilizar um período de suavização de 9. Em nossos testes, mantemos esses parâmetros padrão. No entanto, os leitores podem ajustá-los, especialmente quando o MACD é combinado com outro indicador que utiliza períodos de cálculo diferentes e relevantes para a estratégia. A fórmula é a seguinte:
Se:

Então:

onde:
- t - passo temporal atual ou índice da barra
- EMA12(t) - média móvel exponencial de 12 períodos dos preços de fechamento
- EMA26(t) - média móvel exponencial de 26 períodos dos preços de fechamento
- MACD(t) - diferença entre as EMAs rápida e lenta
- EMA9(MACD(t)) - média móvel exponencial de 9 períodos do MACD, também conhecida como linha de sinal
OBV
A principal função do OBV é medir a pressão compradora e vendedora com base no volume acumulado. O princípio é simples: quando o preço fecha acima do fechamento anterior, isso indica pressão compradora, e o volume correspondente é adicionado ao OBV. Quando o preço fecha abaixo do fechamento anterior, esse volume é subtraído. Se não houver alteração no preço de fechamento, o indicador permanece inalterado. Sua interpretação, portanto, é direta: um OBV crescente confirma uma tendência de alta, enquanto um OBV decrescente indica uma tendência de baixa. Além disso, divergências entre o OBV e o preço podem sinalizar uma possível reversão de tendência.
O cálculo é cumulativo, normalmente começando em zero e somando ou subtraindo o volume de cada período conforme a variação do preço de fechamento. No mercado Forex, os volumes utilizados nesse cálculo são volumes de ticks, e não volumes reais negociados, devido à natureza "descentralizada" desse mercado. Assim, os traders podem utilizar o OBV para confirmar tendências, identificar divergências e refinar os pontos de entrada e saída das posições com base no comportamento do volume. A fórmula do indicador é:

onde:
- OBV(t) - valor do indicador no instante t
- OBV(t-1) - valor do indicador no passo temporal anterior
- Vt - volume no instante t
- Ct - preço de fechamento no instante t
Agora que definimos os indicadores, vamos analisar seus padrões de sinal.
Cruzamento do MACD com a linha de sinal + direção do OBV
Nosso primeiro padrão combina o cruzamento do MACD com a direção do movimento do OBV. Os cruzamentos do MACD são particularmente importantes porque podem indicar reversões de tendência. A direção do OBV é utilizada para confirmar o sinal por meio do comportamento do volume, funcionando como um filtro para reduzir os sinais falsos gerados pelo MACD. Assim, um sinal de alta ocorre quando o histograma do MACD cruza a linha de sinal de baixo para cima e fecha acima dela. Para caracterizar esse cruzamento de alta, o histograma deve ter permanecido abaixo da linha de sinal na barra anterior. Ao mesmo tempo, o OBV deve estar em alta, indicando aumento da pressão compradora e confirmando a direção de alta. Em MQL5, implementamos esse padrão da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 0. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_0(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && MACD_UP(X()) && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD_DN(X()) && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
A lógica dos sinais de venda também se baseia no cruzamento das linhas: o MACD fecha abaixo da linha de sinal, após ter permanecido acima dela na barra anterior. Isso caracteriza um cruzamento de baixa. Ao mesmo tempo, o OBV deve estar em queda, indicando um saldo negativo de volume e confirmando a direção de baixa. Esse padrão foi desenvolvido para identificar sinais confirmados pelo momentum e pelo volume em mercados com tendência definida ou em movimentos de rompimento. Como também permite incorporar dados de volume, pode ajudar a filtrar o ruído dos sinais do MACD em mercados voláteis ou laterais.
No entanto, é importante considerar algumas limitações. Em períodos de baixo volume, o OBV pode apresentar movimentos que geram sinais falsos. Além disso, o MACD pode reagir com atraso a reversões bruscas, resultando em entradas tardias. Após a otimização com dados de 2023, executamos um teste de 01.01.2023 a 01.01.2025, utilizando exclusivamente esse padrão, com o parâmetro PatternsUsed definido como 1. O relatório obtido é apresentado a seguir. O padrão não passou no teste forward.

A tabela abaixo apresenta algumas recomendações para a utilização do padrão 0.
| Aspecto | Recomendação |
|---|---|
| Timeframe | Os melhores resultados são obtidos em timeframes de 1 a 4 horas. Recomenda-se evitar timeframes de minutos, a menos que o padrão seja combinado com um indicador de um timeframe superior. |
| Configurações dos indicadores | É preferível manter as configurações padrão do MACD (12, 26, 9). Para o OBV, recomenda-se utilizar dados de volume real. |
| Regras de entrada | Em geral, as entradas devem ocorrer no fechamento da vela. Recomenda-se evitar entradas antes do fechamento, especialmente em timeframes mais curtos. |
| Stop-loss | Pode ser posicionado em topos ou fundos recentes. O ATR dinâmico também pode ser utilizado para determinar a distância do stop-loss. |
| Take-profit | Pode-se adotar uma relação risco-retorno de 1:1,5 para definir a distância do trailing stop e o alvo de realização de lucros. |
| Confirmação | A inclinação do RSI ou de uma média móvel pode ser utilizada como confirmação adicional do sinal. |
| Filtro de notícias | Sempre que possível, recomenda-se evitar entradas antes da divulgação de notícias de grande impacto. |
| Backtesting | O padrão exige testes históricos rigorosos, pois seu desempenho depende fortemente da estrutura do volume. |
Além das recomendações apresentadas, o padrão ainda pode receber algumas melhorias. Uma possibilidade seria adicionar um filtro de divergência, embora esse aspecto seja abordado separadamente nos padrões analisados mais adiante. Também poderíamos implementar um intervalo mínimo entre sinais, durante o qual novos sinais seriam ignorados. Por exemplo, poderíamos permitir apenas um sinal a cada x velas. Por fim, outra alternativa seria analisar a inclinação ou a taxa de variação do MACD e/ou do OBV para garantir que os indicadores não estejam apresentando um comportamento lateral no momento da geração do sinal.
Cruzamento da linha zero do MACD + rompimento do OBV
O padrão 1 foi desenvolvido para identificar cruzamentos da linha zero do MACD, utilizando como filtro os valores máximos e mínimos registrados pelo OBV. Essa combinação permite identificar reversões de tendência em estágio inicial, confirmadas pelo comportamento do volume, seja pela pressão compradora, seja pela pressão vendedora. Um sinal de compra ocorre quando o histograma do MACD cruza a linha zero de baixo para cima e fecha acima dela. Esse movimento, conhecido como cruzamento de alta da linha zero, ocorre quando o histograma passa de valores negativos para positivos, indicando uma mudança no momentum.
É importante observar que o MACD gera muitos sinais desse tipo. Por isso, precisamos verificar se o OBV atinge ou supera a máxima de uma janela de 12 períodos, correspondente ao período da EMA rápida do MACD. Em outras palavras, o valor atual do OBV deve ser igual ou superior à máxima registrada nos 12 períodos anteriores. Em MQL5, implementamos esse padrão da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 1. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_1(ENUM_POSITION_TYPE T) { int _index = -1; m_obv.Refresh(-1); if(T == POSITION_TYPE_BUY && MACD(X()) > 0.0 && MACD(X() + 1) < 0.0 && OBV(X()) >= m_obv.MaxValue(0, X(), 12, _index)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD(X()) < 0.0 && MACD(X() + 1) > 0.0 && OBV(X()) <= m_obv.MinValue(0, X(), 12, _index)) { return(true); } return(false); }
Da mesma forma, um sinal de venda ocorre quando o MACD cruza a linha zero de cima para baixo e fecha abaixo dela, indicando uma mudança do momentum de positivo para negativo. Nesse caso, o OBV também deve atingir um nível mínimo. O valor atual do OBV deve ser igual ou inferior à mínima registrada nos 12 períodos anteriores, indicando forte pressão vendedora. Dessa combinação, podemos extrair algumas considerações estratégicas: os cruzamentos da linha zero do MACD tendem a ser mais eficazes do que os cruzamentos da linha de sinal, pois representam uma mudança efetiva na direção do momentum; o filtro baseado nos extremos do OBV acrescenta uma confirmação, indicando que o comportamento do volume acumulado confirma a direção do movimento; e o padrão busca identificar pontos de entrada nas fases iniciais de novas tendências, considerando movimentos de rompimento ou oscilações de preço. Os resultados dos testes são apresentados a seguir. O padrão não passou no teste forward:

A tabela abaixo apresenta algumas recomendações para a utilização do padrão 1.
| Aspecto | Recomendação |
|---|---|
| Timeframe | O padrão é mais adequado para os timeframes de 1 hora, 4 horas e diário. Em timeframes mais curtos, oscilações bruscas e sinais falsos são mais frequentes. |
| Condições de mercado | O padrão tende a ser mais eficaz durante reversões de tendência ou nas fases iniciais de formação de uma nova tendência. Não é recomendado para mercados que apresentam uma faixa estreita de oscilação dos preços. |
| Estratégia de stop-loss | Para posições compradas, o stop-loss pode ser posicionado abaixo dos fundos recentes. Para posições vendidas, acima dos topos recentes. |
| Dimensionamento da posição | É importante considerar que os sinais iniciais tendem a ser temporários e não devem ser tratados como confirmações definitivas. |
| Confirmação | A inclinação do RSI ou de uma média móvel também pode complementar o padrão, ajudando a confirmar sinais de entrada associados a movimentos mais acentuados. |
| Evitar sobreajuste | A janela de 12 períodos usada para comparar as máximas e mínimas do OBV deve permanecer relativamente curta para preservar a capacidade de acompanhar a dinâmica do mercado. |
| Filtro de notícias | Notícias de grande impacto podem distorcer os dados de volume. Por isso, sempre que possível, recomenda-se evitar entradas nos 30 minutos anteriores e posteriores à divulgação dessas notícias. |
| Período de backtesting | Devido à sensibilidade do padrão ao volume, é importante realizar testes em diferentes condições de volatilidade. |
Divergência do MACD + tendência de alta do OBV
Nosso terceiro padrão busca identificar pequenas reversões de alta ou de baixa, utilizando a direção do MACD e o comportamento do OBV para confirmar movimentos de recuperação dos preços. O foco está nas mudanças relativas de posição dos preços e dos indicadores, e não em seus níveis absolutos, como vimos no padrão 1. Um sinal de compra ocorre quando o preço forma fundos descendentes, criando uma possível situação de varredura de liquidez ou falso rompimento, enquanto o histograma do MACD apresenta movimento de alta e o OBV indica aumento da pressão compradora. A combinação dessas três condições caracteriza um cenário de divergência de alta. Em MQL5, implementamos esse padrão da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 2. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_2(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Low(X()) < Low(X() + 1) && MACD(X()) > MACD(X() + 1) && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && High(X()) > High(X() + 1) && MACD(X()) < MACD(X() + 1) && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Da mesma forma, um sinal de venda ocorre quando o preço forma topos ascendentes, enquanto o MACD apresenta queda, indicando fortalecimento da pressão baixista, movimento também confirmado pela redução do OBV. Essa combinação caracteriza uma divergência de baixa, pois, embora o preço continue avançando, o avanço dos preços não encontra confirmação no momentum nem no comportamento do volume acumulado registrado pelo OBV. Podemos extrair algumas observações importantes para a negociação. Em primeiro lugar, o padrão busca identificar reversões de curto prazo provocadas pelo esgotamento do movimento, utilizando confirmações de volume e momentum. Em segundo lugar, pode funcionar bem em regiões onde a tendência apresenta uma pausa, como na terceira onda de Elliott, ou em zonas importantes de suporte e resistência. Por fim, é especialmente adequado para operações vendidas ou estratégias de reversão à média. O padrão não passou no teste forward. O relatório é apresentado a seguir:

A tabela abaixo apresenta algumas recomendações para a utilização do padrão 2.
| Aspecto | Recomendação |
|---|---|
| Timeframe | Os timeframes de 30 minutos e 1 hora são adequados para operações de reversão de curto prazo, enquanto o gráfico diário pode ser utilizado para operações de swing trade. |
| Contexto do sinal | O padrão tende a apresentar melhores resultados quando utilizado próximo de topos ou fundos recentes ou em zonas importantes de suporte e resistência. |
| Vela de confirmação | O padrão pode ser confirmado pelo surgimento de velas de reversão, como o martelo ou a estrela cadente. |
| Estratégia de stop-loss | Para posições compradas, o stop-loss pode ser posicionado abaixo do fundo recente. Para posições vendidas, acima do topo recente. |
| Alvo de lucro | Dependendo do ponto de entrada, o alvo pode ser definido na linha média do canal ou em um nível relevante da estrutura recente dos preços. |
| Evitar tendências fortes | Recomenda-se evitar operações durante a formação de velas de forte impulso, pois o padrão gera sinais contrários à tendência predominante. |
| Combinação com o RSI | As divergências do RSI podem ser utilizadas para refinar os pontos de entrada. |
| Backtesting em ativos voláteis | Entre os ativos mais adequados para esse padrão estão a maioria das commodities e alguns índices vinculados a elas. |
Reversão do histograma do MACD + confirmação pelo OBV
O quarto padrão de sinal foi desenvolvido para identificar oportunidades de continuação da tendência no curto prazo, após uma correção temporária do momentum registrado pelo MACD. A direção do OBV é utilizada para confirmar essas correções temporárias do momentum. Para gerar um sinal de compra nesse padrão de continuação de alta, o histograma do MACD deve subir em relação à barra anterior, após ter registrado uma queda entre as duas barras precedentes. Ao mesmo tempo, o OBV deve estar em alta. Essa configuração indica uma redução inicial do momentum, seguida de sua recuperação, enquanto a alta do OBV confirma a pressão compradora que acompanha a retomada da tendência. Trata-se de um sinal clássico de continuação da tendência. Em MQL5, implementamos esse padrão da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 3. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_3(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && MACD(X()) > MACD(X() + 1) && MACD(X() + 1) < MACD(X() + 2) && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD(X()) < MACD(X() + 1) && MACD(X() + 1) > MACD(X() + 2) && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Por outro lado, um sinal de venda ocorre quando o MACD apresenta queda, após ter registrado uma alta na barra anterior, enquanto o OBV também recua, confirmando a predominância da pressão vendedora. Esse padrão de baixa geralmente indica que uma breve correção de alta durante uma tendência de baixa chegou ao fim e que os vendedores retomaram o controle do mercado. Podemos extrair algumas conclusões dessa configuração: o padrão identifica correções seguidas pela retomada do movimento na direção da tendência predominante, o que pode ser útil para traders que seguem tendências ou utilizam estratégias de scalping. As entradas ocorrem na retomada da tendência, e não durante um rompimento. O padrão tende a funcionar melhor em tendências bem definidas, sem oscilações bruscas. O padrão não passou no teste forward. O relatório é apresentado a seguir:

A tabela abaixo apresenta algumas recomendações adicionais para ajustar o padrão, principalmente quando utilizado individualmente, e não em combinação com outros padrões.
| Aspecto | Recomendação |
|---|---|
| Timeframe | O padrão é especialmente adequado para sistemas de acompanhamento de tendência em timeframes de 15 minutos a 1 hora. |
| Contexto | O padrão deve ser aplicado apenas em mercados com tendências bem estabelecidas, evitando períodos de consolidação. |
| Momento da entrada | É preferível aguardar a formação de uma vela significativa, como um Marubozu ou um padrão de engolfo. |
| Níveis de stop | O stop-loss pode ser posicionado pouco além do extremo da correção, enquanto os níveis de take-profit podem ser definidos como múltiplos da distância do stop-loss. |
| Filtro de volume | Verificar se a variação do OBV é relevante pode ser importante para avaliar a confiabilidade dos sinais no longo prazo. |
| Evitar entradas repetidas | Se o padrão aparecer repetidamente sem que exista uma tendência definida, recomenda-se evitar novas entradas. |
| Filtro de média móvel | Uma EMA pode ser utilizada como filtro adicional para identificar ou confirmar a tendência predominante. |
| Filtro de volatilidade | O ATR ou as Bandas de Bollinger podem ser utilizados para avaliar a força da tendência. |
Consolidação do MACD + forte alta do OBV
O padrão 4 busca identificar períodos de consolidação do MACD próximos à linha zero, combinados com um rompimento no OBV. O objetivo é encontrar momentos em que o MACD apresenta comportamento neutro, indicando um equilíbrio entre compradores e vendedores. Em seguida, verificamos se esses períodos são acompanhados por uma alta significativa do OBV. Um sinal de compra exige que o MACD permaneça próximo da linha zero durante uma janela curta de observação, considerando seus valores máximo e mínimo nesse intervalo. Depois disso, buscamos uma alta do OBV de pelo menos 0,5% em relação ao valor anterior. O padrão procura identificar situações em que, após um período de consolidação, uma possível fase de acumulação por grandes investidores pode estar prestes a impulsionar os preços para cima. Em MQL5, implementamos esse padrão da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 4. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_4(ENUM_POSITION_TYPE T) { int _index = -1; m_macd.Refresh(-1); if(m_macd.MaxValue(0, X(), 3, _index) >= 0.0 && m_macd.MinValue(0, X(), 3, _index) <= 0.0)// && fabs(m_macd.MinValue(0, X(), 3, _index) - m_macd.MaxValue(0, X(), 3, _index)) <= High(X()) - Low(X())) { if(T == POSITION_TYPE_BUY && OBV(X()) >= 1.005 * OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && OBV(X()) <= 0.995 * OBV(X() + 1)) { return(true); } } return(false); }
Assim como no sinal de compra, o sinal de venda também ocorre quando o MACD oscila próximo da linha zero, sem apresentar uma tendência definida. Em seguida, o OBV registra uma queda de 0,5% em relação ao valor anterior, indicando uma variação negativa expressiva do OBV, compatível com a predominância da pressão vendedora. Esses movimentos podem antecipar um rompimento da faixa de consolidação. O padrão 4 busca gerar sinais com pouco atraso, utilizando a variação do OBV como confirmação, embora essa confirmação possa apresentar alguma defasagem. O padrão não gera muitos sinais, o que ajuda a reduzir os sinais falsos baseados exclusivamente em rompimentos de preço. Durante os testes, foram realizadas poucas operações. O padrão não passou no teste forward.

A tabela abaixo apresenta algumas recomendações para a utilização do padrão 4.
| Aspecto | Recomendação |
|---|---|
| Condições de mercado | O padrão é útil em mercados que passam por um período de consolidação antes de um rompimento. |
| Timeframes | Os timeframes de 1 a 4 horas podem ser ideais para obter sinais mais claros e com menos ruído. |
| Confirmação | O padrão pode ser combinado com rompimentos identificados no gráfico de velas ou até mesmo com a expansão das Bandas de Bollinger. |
| Qualidade do volume | É fundamental verificar se o OBV não apresenta um comportamento excessivamente lateral ou irregular. Movimentos relativamente suaves e consistentes são importantes. |
| Controle de risco | O stop-loss pode ser posicionado pouco abaixo do limite inferior da faixa de consolidação para compras ou acima do limite superior para vendas. |
| Filtro de volatilidade | O ATR ou critérios baseados na contração da amplitude dos preços podem ajudar a identificar a faixa de consolidação. |
MACD próximo de zero + alta do OBV
Esse padrão busca identificar oportunidades de negociação contrárias à tendência predominante, com confirmação pelo volume. Sua principal característica é o movimento do MACD em direção oposta à tendência dos preços, considerando também sua posição em relação à linha zero. A direção do OBV deve confirmar a mudança de momentum indicada pelo MACD. O padrão 5 foi desenvolvido para identificar mudanças iniciais no momentum, mesmo antes de o histograma do MACD cruzar a linha zero, permanecendo abaixo dela nos sinais de compra ou acima dela nos sinais de venda, o que exige cautela na interpretação. Um sinal de compra ocorre quando o MACD apresenta alta, indicando fortalecimento do momentum comprador, mas seu valor ainda permanece abaixo de zero. Isso indica que o MACD ainda permanece em território negativo, compatível com a manutenção de um viés de baixa no mercado. A alta do OBV, por sua vez, sugere pressão compradora e pode ser interpretada como um possível sinal de acumulação. Essa combinação pode ser interpretada como uma recuperação de alta dentro de uma tendência de baixa. Em MQL5, implementamos esse padrão da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 5. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_5(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && MACD(X()) > MACD(X() + 1) && MACD(X()) < 0.0 && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD(X()) < MACD(X() + 1) && MACD(X()) > 0.0 && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Um sinal de venda ocorre quando o MACD apresenta queda, embora ainda permaneça na região positiva, enquanto o OBV também recua. Nesse cenário, observamos sinais iniciais de enfraquecimento do momentum de alta, acompanhados pela queda do OBV, o que pode indicar maior participação dos vendedores. O padrão 5 busca identificar possíveis reversões em seus estágios iniciais, utilizando o volume como confirmação. Para isso, não exige que o MACD realize um cruzamento completo da linha zero. Sua utilização pode ser complementada pelas recomendações apresentadas a seguir. O padrão também não passou no teste forward nas condições limitadas de nossos testes. O relatório é apresentado a seguir.

| Aspecto | Recomendação |
|---|---|
| Timeframes | Os gráficos de 1 hora e 4 horas também são adequados. No entanto, o gráfico diário ajuda a reduzir o ruído e oferece uma visão mais clara do contexto da tendência. |
| Filtro de volume | Pode ser necessário utilizar um filtro adicional quando o OBV apresentar movimento lateral. |
| Evitar oscilações bruscas | O padrão não foi desenvolvido para mercados com volatilidade elevada. |
| Combinação com um filtro de tendência | Uma média móvel ou o ADX podem ser utilizados para confirmar o contexto da tendência predominante. |
| Momento da entrada | Recomenda-se aguardar uma vela de confirmação ou um rompimento expressivo de um nível relevante de preço, como um topo ou fundo, observando a direção do sinal. |
| Gerenciamento das operações | Considerando que o padrão busca identificar reversões, a utilização de um stop-loss previamente definido ou até mesmo o encerramento parcial da posição pode contribuir para reduzir os riscos. |
MACD persistentemente acima ou abaixo da linha zero + extremos do OBV
O padrão 6 busca identificar possíveis pontos de culminação da tendência e do volume. Ele identifica tendências persistentes em determinada direção, nas quais o MACD permanece do mesmo lado da linha zero, e combina essa condição com as máximas e mínimas registradas pelo OBV. O objetivo é encontrar oportunidades de continuação da tendência. Um sinal de compra ocorre quando o MACD permanece positivo durante 12 barras, enquanto o OBV se encontra próximo ou acima de sua máxima dos últimos 12 períodos, sugerindo a predominância da pressão compradora, conforme o comportamento do volume acumulado. Essa configuração pode ser interpretada como uma tendência de alta sustentada, na qual o volume negociado favorece a continuidade do movimento. Em MQL5, implementamos esse padrão da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 6. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_6(ENUM_POSITION_TYPE T) { int _index = -1; m_macd.Refresh(-1); m_obv.Refresh(-1); if(T == POSITION_TYPE_BUY && m_macd.MinValue(0, X(), 12, _index) > 0.0 && OBV(X()) >= m_obv.MaxValue(0, X(), 12, _index)) { return(true); } else if(T == POSITION_TYPE_SELL && m_macd.MinValue(0, X(), 12, _index) < 0.0 && OBV(X()) <= m_obv.MaxValue(0, X(), 12, _index)) { return(true); } return(false); }
As condições para um sinal de venda são opostas: o MACD permanece abaixo de zero durante 12 ou mais velas, enquanto o OBV se encontra próximo ou no nível de sua mínima dos últimos 12 períodos. Essa combinação sugere uma tendência de baixa persistente, com o OBV próximo de sua mínima confirmando a predominância do volume associado aos movimentos de queda. O padrão também não passou no teste forward. Com isso, o número de padrões dessa combinação de indicadores que não passaram no teste chegou a sete. O relatório é apresentado a seguir.

A tabela abaixo apresenta algumas recomendações para a utilização do padrão 6.
| Aspecto | Recomendação |
|---|---|
| Aplicação em mercados com tendência | O padrão 6 tende a funcionar bem em mercados com movimentos direcionais fortes e consistentes. Deve-se evitar sua utilização em períodos de estagnação ou movimento lateral. |
| Força do momentum | O ADX pode ser utilizado como confirmação adicional, exigindo valores superiores a 25 como condição para a entrada. |
| Combinação com a ação do preço | Podem ser considerados rompimentos de máximas ou mínimas de velas, padrões de inside bar ou reações de preço sinalizadas por pin bars em zonas de suporte e resistência. |
| Consistência do volume | O OBV deve apresentar uma inclinação relativamente uniforme, sem movimentos bruscos ou períodos prolongados de lateralização. |
| Estratégia de saída | Trailing stops ou saídas em níveis de Fibonacci podem ser considerados para o encerramento das posições. |
Divergência oculta do MACD + extremos do OBV
Nosso oitavo padrão gera um sinal de compra quando o preço forma fundos descendentes, enquanto o MACD apresenta alta e o OBV mantém uma tendência ascendente. A interpretação é que, embora o preço forme fundos mais baixos, o comportamento do MACD e do OBV sugere enfraquecimento do movimento de baixa, enquanto o OBV apresenta alta e o MACD indica recuperação do momentum. Em MQL5, implementamos esse padrão da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 7. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_7(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Low(X()) > Low(X() + 1) && MACD(X()) < MACD(X() + 1) && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && High(X()) < High(X() + 1) && MACD(X()) > MACD(X() + 1) && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Por outro lado, um sinal de venda ocorre quando o preço forma topos ascendentes, enquanto o MACD apresenta queda e o OBV também recua. Assim como na configuração de alta, essa combinação indica uma divergência oculta. Entre os dez padrões de sinal analisados neste artigo, esse foi o único que passou no teste forward. O relatório é apresentado a seguir.

A seguir, apresentamos algumas recomendações para refinar e aprimorar ainda mais esse padrão:
| Aspecto | Recomendação |
|---|---|
| Confirmação | Linhas de tendência, níveis de suporte e resistência e zonas de Fibonacci podem ser utilizados como confirmação adicional. |
| Combinação com outros sinais | As oscilações desfavoráveis também podem ser reduzidas utilizando divergências do RSI ou padrões de reversão de velas, como martelo, engolfo, entre outros. |
| Evitar tendências fortes | Esse padrão não foi desenvolvido para acompanhar tendências, portanto, não é adequado para estratégias de scalping. |
| Utilização adequada do stop-loss | Como o padrão busca aproveitar reações de curto prazo, e não necessariamente mudanças duradouras na tendência, o stop-loss pode ser posicionado além dos topos ou fundos recentes. |
Cruzamento da linha de sinal do MACD + confirmação pelo OBV
Nosso penúltimo padrão de sinal gera uma condição de compra quando o MACD está acima de zero após uma reversão de alta. Ao mesmo tempo, o OBV apresenta alta, sugerindo predominância da pressão compradora. Essa combinação indica fortalecimento do momentum de alta, acompanhado pelo avanço do volume acumulado registrado pelo OBV. Em MQL5, implementamos esse padrão da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 8. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_8(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && MACD(X() + 1) > 0.0 && MACD_UP(X()) && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD(X() + 1) < 0.0 && MACD_DN(X()) && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Um sinal de venda ocorre quando o MACD permanece na região negativa, abaixo de zero, após uma reversão de baixa. O OBV também apresenta queda, sugerindo predominância da pressão vendedora. Infelizmente, assim como a maioria dos padrões analisados neste artigo, esse também não passou no teste forward. O relatório é apresentado a seguir:

A tabela abaixo apresenta algumas recomendações para melhorar o desempenho do padrão.
| Aspecto | Recomendação |
|---|---|
| Momento da entrada | As operações devem ser realizadas logo após o cruzamento do MACD, desde que haja confirmação pelo OBV. Recomenda-se evitar entradas tardias. |
| Confirmação pelo volume | O OBV deve acompanhar a direção do cruzamento, sem apresentar divergências. Também é importante evitar sinais quando o OBV estiver em movimento lateral. |
| Combinação com a estrutura dos preços | Assim como ocorre com muitos outros sinais, esse padrão tende a ser mais eficaz quando utilizado em níveis importantes de suporte e resistência. |
| Evitar mercados laterais | Em mercados laterais, os cruzamentos do MACD podem gerar muitos sinais falsos, mesmo com a confirmação do OBV. É preferível utilizar o padrão em ativos que apresentam tendências bem definidas. |
| Níveis de stop | O ATR pode ser utilizado para calcular a distância de um stop-loss dinâmico, enquanto os topos e fundos das velas recentes podem servir como referências para seu posicionamento. O padrão busca identificar o início de uma tendência, e não apenas uma recuperação temporária dos preços. |
Cruzamento da linha de sinal do MACD no nível zero + forte alta do OBV
O padrão 9 busca identificar reversões de tendência e, mais especificamente, o início de uma nova tendência. A entrada antecipada após uma mudança de direção procura aproveitar ao máximo o potencial de lucro do novo movimento. No entanto, como sempre, é importante considerar o risco de oscilações desfavoráveis. Um sinal de compra ocorre quando o MACD cruza a linha zero de baixo para cima e fecha acima dela durante o movimento de reversão. Ao mesmo tempo, o OBV deve apresentar uma alta expressiva, superior a 5%. Em MQL5, implementamos esse padrão da seguinte forma:
//+------------------------------------------------------------------+ //| Check for Pattern 9. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_9(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && MACD(X() + 1) < 0.0 && MACD(X()) > 0.0 && MACD_UP(X()) && OBV(X()) >= 1.005 * OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD(X() + 1) > 0.0 && MACD(X()) < 0.0 && MACD_UP(X()) && OBV(X()) <= 0.995 * OBV(X() + 1)) { return(true); } return(false); }
O sinal de venda segue a lógica oposta à do sinal de compra. Nesse caso, o MACD cruza a linha zero de cima para baixo e fecha abaixo dela, indicando uma reversão de baixa. Simultaneamente, o OBV deve apresentar uma queda significativa. O limiar utilizado é de 5%, mas os leitores podem experimentar outros valores. Infelizmente, considerando o período relativamente curto de apenas dois anos utilizado nos testes, esse padrão também não passou no teste forward. O relatório é apresentado a seguir:

Recomendações para aprimorar o padrão:
| Aspecto | Recomendação |
|---|---|
| Seleção de ativos | O padrão é mais adequado para instrumentos com elevado volume diário de negociação, como os principais pares de moedas, índices, ações de alta liquidez e criptomoedas. |
| Condições de mercado | Recomenda-se evitar o padrão em mercados laterais, nos quais os cruzamentos da linha zero do MACD podem gerar muitos sinais falsos. A combinação com indicadores de tendência, como o ADX, pode melhorar sua eficácia. |
| Limiares de variação do OBV | O limiar percentual aplicado ao OBV, como 0,5%, pode ser ajustado conforme as condições de mercado. Para ativos mais voláteis, como as criptomoedas, podem ser utilizados limiares mais elevados. |
| Gerenciamento das operações | O stop-loss pode ser ajustado dinamicamente com base no ATR ou posicionado em função dos topos e fundos recentes. Também é possível definir um alvo inicial de take-profit com base em uma relação risco-retorno, como 1:2. |
| Filtragem de ruído | Para aumentar a confiabilidade dos sinais, o padrão 9 pode ser combinado com confirmações baseadas em padrões de velas, conforme mencionado anteriormente para outros padrões de sinal. |
Conclusão
Neste artigo, analisamos uma combinação de indicadores de tendência e volume. Os resultados dos testes foram bastante decepcionantes. Realizar testes forward com uma divisão igual dos dados entre otimização e teste é sempre um desafio, especialmente quando a janela de dados utilizada nos testes é tão curta quanto a nossa. No entanto, em comparação com outras combinações de indicadores que examinamos anteriormente, os resultados ficaram claramente abaixo das expectativas. Normalmente, após analisar uma combinação de indicadores, passamos à aplicação de técnicas de aprendizado supervisionado. Como nossa análise mais recente passou a considerar também os padrões que não conseguiram passar no teste forward, teremos diversas opções para explorar no próximo artigo.
| Nome | Descrição |
|---|---|
| WZ-71.mq5 | EA gerado pelo Assistente MQL5, cujo cabeçalho apresenta os arquivos utilizados em sua compilação. |
| SignalWZ-71.mqh | Arquivo da classe personalizada de sinais para a combinação dos dois indicadores. |
Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/18462
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.
A arte de trabalhar com logs (Parte 8): Registros de erros com tradução automática
MetaTrader 5 Global Optimizer: Clusterização
Repensando as estratégias clássicas (Parte 13): Atualização da estratégia de cruzamento de médias móveis (Parte 2)
Recursos do Assistente MQL5 que você precisa conhecer (Parte 70): Uso dos padrões SAR e RVI com uma rede neural cujos kernels crescem exponencialmente
- 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