Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 232
- Avaliação:
- Publicado:
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
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).
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.
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.

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
Swap Monitor
Esse serviço verifica periodicamente as trocas de símbolos predefinidos e salva as alterações detectadas em arquivos CSV para análise posterior e possível reprodução (não implementada aqui). Além disso, ele monitora e alerta sobre as alterações de swap das posições existentes.
MT5-BuildYourGridEA
Esse especialista é um sistema que ajuda qualquer trader a criar uma grade de ordens.
Sample pine script stochastic divergence
Um exemplo de código pine convertido para MQL
Push Notification for Opened / Closed Trades (Netting)
Esse código fornece uma função simples para enviar notificações push para seu dispositivo móvel sempre que as negociações forem abertas ou fechadas no MetaTrader 5. Ele foi projetado para contas de compensação (em que somente uma posição por símbolo é permitida).

