MetaTrader 5 / Scripts

Economic Calendar CSV - script para MetaTrader 5

207
(9)

Essa é uma versão ampliada do script CalendarForDates.mq5 apresentado no livro de algotrading.

As variáveis de entrada permitem especificar um código de país, um código de corrente e um intervalo de tempo para filtrar os registros necessários. Se as entradas forem deixadas em branco, um calendário completo poderá ser solicitado (se o calendário for solicitado pela primeira vez após o terminal ter sido iniciado, ele poderá demorar um pouco para fazer o download da base ou até mesmo expirar e não produzir resultados - então, execute o script novamente).

Como resultado, você obterá um arquivo CSV com registros de calendário com os campos mais importantes (nem todos os campos são exportados - fique à vontade para ajustar o código-fonte de acordo com suas necessidades).

Opcionalmente, é possível inserir um arquivo *.cal (cópia arquivada do calendário para um horário específico) criado pelo indicador CalendarMonitorCached.mq5 também apresentado no livro, que agora está obsoleto em favor de sua versão estendida CalendarMonitorCachedTZ.mq5 (recomendada e necessária para o novo recurso, descrito a seguir).

Calendário econômico da MetaTrader em CSV


O recurso mais interessante: o script demonstra o uso do TimeServerDST.mqh para ajustar os registros de data e hora dos eventos históricos de acordo com as alterações de fuso horário do servidor no passado, que são refletidas persistentemente nos registros de data e hora das velas. Esse modo é ativado pela configuração da entrada FixCachedTimesBySymbolHistory como true.

O salvamento de eventos em arquivos CSV com e sem a correção facilita a comparação dos efeitos da correção de tempo no histórico.

Para o uso adequado desse recurso, recomenda-se executar o script nos gráficos XAUUSD ou EURUSD H1. Quando usados programaticamente, esses símbolos devem ser passados para as funções do TimeServerDST.

A mesma abordagem é usada no indicador CalendarMonitorCachedTZ.mq5 para exportar eventos de calendário com correção de tempo para arquivos cal arquivados, prontos para serem carregados de dentro do testador, o que garante backtests precisos e otimizações de robôs de notícias.

O intervalo de datas em que as correções de tempo são realizadas é limitado ao número máximo de barras no gráfico para o período H1. Essa é a especificidade do método empírico usado no TimeServerDST.mqh.

Vamos considerar um tipo de evento específico, de preferência com um grande impacto no mercado, como a divulgação do Nonfarm Payrolls (NFP) dos EUA.

Em um servidor europeu com programação DST (MQ Demo), ele ocorre às 14:30 no inverno e às 15:30 no verão. Na captura de tela abaixo, é possível ver lado a lado duas versões do histórico completo do calendário exportadas para arquivos CSV, com a data específica de verão 2023.08.04 em vista. Ambas as exportações foram realizadas no dia 8 de novembro (inverno, horário padrão), de modo que a compensação GMT+2 foi aplicada por padrão a todos os eventos, inclusive ao verão de 2023 (e a quaisquer outras estações e anos também). Sem a correção (mostrada à direita), os horários exportados para os NFPs de verão são 14:30. Isso está incorreto.

Eventos do calendário econômico com carimbos de data/hora corrigidos

Após a detecção automática empírica do fuso horário do servidor, que estava em vigor durante o verão, a biblioteca executa a exportação do calendário com correção de horário (mostrada à esquerda). Como resultado, os NFPs de verão são movidos para as 15h30, como deveria ser. Você pode dar uma olhada no gráfico desse período para ter certeza de que a correção é adequada.

Nonfarm Payrolls no gráfico EURUSD H1

Esse caso específico não é tão dramático, porque o horário anunciado não corrigido das 14h30 é anterior às 15h30, de modo que os consultores especializados provavelmente poderiam continuar aguardando as notícias e abrir negociações. Mas quando o fuso horário do servidor é alterado para o verão, todos os eventos de inverno registrados no calendário contêm carimbos de data e hora atrasados em 1 hora (!).

O material ainda é experimental. Fique à vontade para enviar seus comentários.

Estão planejadas outras pesquisas sobre o impacto das correções de horário na negociação de notícias. Fique atento.


Os arquivos mqh anexados(CalendarFilter.mqh, CalendarCache.mqh, QuickSortStructT(Ref).mqh) contêm correções de erros e melhorias em comparação com suas versões originais do livro.



04.10.2024 - Adicionada a gravação/leitura do deslocamento do fuso horário do servidor em arquivos cal e arquivos csv.

10.11.2024 - Adicionada uma opção para corrigir os registros de data e hora dos eventos no histórico de acordo com as alterações retrospectivas de fuso horário do servidor.

11.11.2024 - pequena correção de bug e refinamento em CalendarCache.mqh e CalendarFilter.mqh.

22.11.2024 - pequenas correções de bugs e melhorias no CalendarCache.mqh.


Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/52977