O indicador MACD é uma ferramenta poderosa que pode ser aplicada em qualquer timeframe, seja ele maior ou menor do que o gráfico atual.
Os valores podem ser calculados com base em qualquer tipo de preço comum. Quando o indicador é aplicado a um timeframe menor do que o do gráfico atual, pode ser que não consigamos exibir todos os valores. Nesse caso, dependendo do tipo de preço escolhido, será utilizada uma abordagem diferente para fornecer o valor mais apropriado.
Vou te dar dois exemplos:
- timeframe_1=5 minutos, timeframe_2=1 minuto, cálculos baseados na série de preços Close:
Para qualquer barra no timeframe_1, o indicador mostrará a barra mais recente do timeframe_2 com um horário de fechamento anterior ou igual ao horário de fechamento da barra no timeframe_1. Isso se aplica tanto para barras que já foram fechadas quanto para a barra atual que ainda está aberta.
- timeframe_1=5 minutos, timeframe_2=1 minuto, cálculos baseados na série de preços Open:
Para qualquer barra no timeframe_1, o indicador mostrará a barra mais recente do timeframe_2 com um horário de abertura anterior ou igual ao horário de abertura da barra no timeframe_1. Isso também vale para barras que já foram fechadas e para a barra atual que ainda está aberta. A lógica aqui é que, se você escolhe calcular seus indicadores com base no horário de abertura de uma barra, provavelmente você também vai operar quando uma nova barra se abrir. Portanto, na abertura de uma nova barra de 5 minutos, você só saberá a abertura da primeira das cinco barras de 1 minuto que fazem parte dela. As aberturas da segunda à quinta barra de 1 minuto serão ignoradas nos cálculos.
Você pode misturar qualquer timeframe com outro, mesmo que não estejam sincronizados, por exemplo, timeframe_1 = 5 minutos e timeframe_2 = 12 minutos. O indicador garante que eles permaneçam sincronizados. O funcionamento é similar aos exemplos que mencionei acima.
O arquivo Excel anexado (Conversão entre timeframes.zip) contém exemplos de todas as combinações possíveis e uma explicação mais visual. Não esqueça de dar uma olhada no código fonte para entender como tudo isso é feito. Espero que te ajude a construir seus próprios indicadores multi-timeframe.
Ao mudar entre timeframes, aguarde alguns segundos para que os dados de preço sejam carregados. Se o indicador não aparecer, atualize o gráfico manualmente.
Requisitos:
- MovingAverages.mqh (arquivo padrão na pasta terminal_data_folder\MQL5\Include)
- MACD_Histogram_MC (também disponível em mql5.com)
Coloque tanto MACD Histogram_MTF_MC.mq5 quanto MACD_Histogram_MC.mq5 na pasta terminal_data_folder\MQL5\Indicators para que o indicador funcione corretamente.
Veja no código fonte para ativar/desativar mensagens de erro:
bool ShowErrorMessages=false; // ativa/desativa mensagens de erro para depuração

Histórico de atualizações:
2010 09 26: v03
- Melhoria na exibição dos valores em timeframes menores que o do gráfico;
- Definição de buffers como EMPTY_VALUE em vez de 0 após: if(convertedTime<tempTimeArray_TF2[0]);
- Otimização do código;
- Remoção do PLOT_DRAW_BEGIN de OnInit() - herdado de indicador de timeframe único;
- Movido ArraySetAsSeries de buffers e arrays para OnInit();
- Adicionadas MODE_SMMA e MODE_LWMA como métodos de MA para a linha de sinal;
- Colocado ENUM_APPLIED_PRICE como o último parâmetro de entrada na lista;
2010 08 28: v02B
- Indicador publicado pela primeira vez;

Comentário 0