O maestro assumiu a fundação. Bravo! Grandes mudanças estão chegando :)
Nada está chegando ainda. Bibliotecas.
#include <fxsaber\Calendar\Calendar.mqh> // https://www.mql5.com/pt/code/32430 int OnInit() { return(!EventSetTimer(1)); } void OnTimer() { CALENDAR Calendar; string Currencies[2]; // Obter as moedas do caractere atual. Currencies[0] = ::SymbolInfoString(_Symbol, SYMBOL_CURRENCY_BASE); Currencies[1] = ::SymbolInfoString(_Symbol, SYMBOL_CURRENCY_PROFIT); // Anotou os próximos eventos importantes por moedas de símbolo. Calendar.Set(Currencies); Comment(Calendar.ToString(0, 5, true)); // Imprimiu-os. }
A probabilidade de perder notícias importantes é bastante reduzida.
Essa chamada do zero é executada em 0,6 ms. É claro que é possível reduzir o consumo a zero.
Ocalendário de eventos é escrito muito mais para o futuro. Portanto, você também pode usar um lembrete no MT4 salvando um arquivo de dados do MT5 (com um mês de antecedência, por exemplo).
Isso é o que eu faço no MT4.
Stanislav Korotky:
ИМХО, все же не хватает более подробной документации. Понятно, что можно заглянуть в код, но тогда вместо разбирания в чужом коде можно и свой написать ;-).
Dentro do mqh, pressione ALT+M. Os nomes dos métodos parecem fazer sentido.
Em particular, não está claro se Get pode ser chamado sem antes fazer Set e se é possível reverter o filtro (pelo que entendi, não é possível).
Set - preenche o objeto com eventos. O acesso a eles é como o acesso a elementos de uma matriz.
A partir dos exemplos acima, não está claro se há uma maneira mais conveniente de rastrear a ocorrência do evento - em particular, se eu entendi corretamente, você precisa comparar change_id, não a ocorrência de TimeCurrent, porque a atualização de dados não necessariamente coincide exatamente com o início do evento.
Se estivermos falando de backtest, não há e não pode haver um change_id.
Quanto ao tempo real, essa funcionalidade será adicionada um pouco mais tarde na biblioteca.
A reversão do filtro é a mesma que em qualquer outro lugar: faça uma cópia do objeto antes do filtro.
Arquitetonicamente, ele foi criado para que seja possível incorporar outras fontes de dados na forma de analisadores. Há até mesmo um campo EVENT::Source para essa finalidade, que agora é igual a apenas um valor "MetaTrader5".
Portanto, existe a funcionalidade de empilhar calendários. Suponhamos que ele tenha obtido dados de várias fontes e depois os tenha combinado em um único local.
Se estivermos falando de backtest, não há change_id lá e não pode haver.
Essa é uma nuance questionável: na vida real, os eventos podem mudar, e se o testador (por meio da biblioteca) não reproduzir o histórico de alterações, a adequação do teste cai. Um tópico semelhante já foi abordado aqui em alguns tópicos: os indicadores on-line em um evento são os mesmos e depois são corrigidos. Se testarmos usando os valores corrigidos, não obteremos a imagem que o especialista analisou "na hora". Bem, ou eu entendi mal a situação do acesso às atualizações.
Essa é uma nuance questionável: na vida real, os eventos podem mudar, e se o testador (por meio da biblioteca) não reproduzir o histórico de alterações, a adequação do teste cai. Um tópico semelhante já foi abordado aqui em alguns tópicos: os indicadores on-line em um evento são os mesmos e depois são corrigidos. Se testarmos usando os valores corrigidos, não obteremos a imagem que o especialista analisou "na hora". Bem, ou eu entendi mal a situação do acesso às atualizações.
O calendário contém quatro valores para cada evento:
- Atual (real) - o primeiro valor recebido após o comunicado à imprensa.
- Previsão - qual valor foi previsto (por quem?) antes de a notícia ser divulgada.
- Anterior - qual valor foi recebido primeiro depois que a mesma notícia do calendário foi divulgada na vez anterior. Ou seja, é igual ao Real para o momento anterior: Anterior[i] = Real[i - 1].
- Revisado - o valor ajustado do Real anterior. A hora (e o número de vezes) dessa atualização não é armazenada no calendário.
Em todos os calendários HTML (incluindo o padrão e o do Terminal), a tripla (Real, Previsão, Anterior) = (Real, Previsão, Revisado). Portanto, não é possível usar o campo Revisado no histórico até que ocorra o próximo evento relevante. Os outros podem ser usados.
Não há (e não pode haver) informações sobre o valor de defasagem do recebimento do Real ou, mais precisamente, sobre a dessincronização de um servidor de negociação específico e a fonte de notícias. É por isso que isso não é levado em conta no backtest. Essa nuance é clara.
Levando em conta o que foi dito acima, é totalmente legítimo comparar o TimeTradeServer com a hora do evento no backtest. E usar valores (Anterior, Previsão,Revisado) logo antes do evento, (Real, Previsão,Anterior) - logo depois.
- 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

Calendário:
Calendário - análise fundamental do histórico e em tempo real.
Author: fxsaber