olhei na documentação e não achei. Vocês sabem algum método do sistema que informaria a hora atual em millisegundos? ou com uma precisao de nano...
Olá Humberto,
Qual seria exatamente sua necessidade?
A precisão máxima que o terminal retorna para variáveis de tempo, se não me engano, é mesmo segundos.
Entretanto, para aplicações que demandam milisegundos intra-código, por favor dê uma olhada na função GetTickCount().
Abraços,
Malacarne
Ola Malacarne.
obrigado pela resposta. Respondendo a sua pergunta, nossas estratégias tem uma frequência mais alta e alguns pontos precisam ter precisão em milissegundos para atingir os resultados estatisticamente esperados.
O Leonardo Moreira me mandou um código que faz gravação com precisão de milissegundos mas este invoca uma DLL, o que geraria algumas chamadas de sistema. Eu estava buscando algo nativo do MQL para não pagar o preço de invocar algo externo. Mas acho que não vai ter outro jeito.
Abraços
Ola Malacarne.
obrigado pela resposta. Respondendo a sua pergunta, nossas estratégias tem uma frequência mais alta e alguns pontos precisam ter precisão em milissegundos para atingir os resultados estatisticamente esperados.
O Leonardo Moreira me mandou um código que faz gravação com precisão de milissegundos mas este invoca uma DLL, o que geraria algumas chamadas de sistema. Eu estava buscando algo nativo do MQL para não pagar o preço de invocar algo externo. Mas acho que não vai ter outro jeito.
Abraços
Olá Humberto, essa é uma boa ideia de melhoria para o tipo Datetime, até porque o o Windows disponibiliza essa informação.
Note, entretanto, que para tua necessidade de alta frequência, a resolução do timestamp no Windows é acima de 10 ms, portanto na prática você não vai conseguir precisão abaixo disso em qualquer aplicação nesse ambiente, a menos que use alguma mudança fora do padrão como overclock ou outra alteração de setup de hardware.
Se isso for suficiente, realmente a função GetTickCount(), bem lembrada pelo Malacarne, e que é nativa na API do Windows (com o mesmo nome), poderia te ajudar a atingir essa resolução se você fizer um loop de sincronismo com tua estratégia/algoritmo.
Recomendo também analisares o histórico e comparar com teu sistema atual, já que é possível acessar essa resolução com a função HistoryDealGetInteger() e a opção DEAL_TIME_MSC.
Se puderes compartilhar os resultados em termos de precisão acredito que será uma ótima experiência para todos aqui (até para quebrar alguns paradigmas), pois penso que o gargalo de desempenho da maioria dos algoritmos no MT5 (talvez não seja o teu caso) esteja na latência de execução de ordens, que praticamente joga essa precisão para a casa de segundos, mesmo operando com a plataforma com brokers e mercado Forex, inviabilizando estratégias que dependam de precisão de timestamp para análise e/ou execução.

- 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
Pessoal,
olhei na documentação e não achei. Vocês sabem algum método do sistema que informaria a hora atual em millisegundos? ou com uma precisao de nano...
abraços
Humberto Brandão