nuovo mql4 che fornisce millisecondi in timestamps.... - pagina 4

 
autoabacus:

...
Molto interessante. Grazie.
 

Ho notato che mt4 ora ha un GetMicroSecondCount(). Sarebbe superiore alla funzione GetTickCount in termini di precisione?

Quale sarebbe il vantaggio/svantaggio di usare GetMicrosecondCount() rispetto a GetTickCount()? Utilizza più risorse? Penserei che la risoluzione MicroSec sarebbe una funzione superiore al MilliSec. Puoi sempre convertire MicroSec in Millisec o risoluzione inferiore, ma non puoi prendere Millisec e ottenere MicroSec o risoluzione superiore.


Perché MQ ha suggerito la funzione GTC contro GMicroC per i timestamp al millisecondo? Capisco che forse prima non c'era la funzione GMicroC, ma ora che c'è, perché non aggiornare la documentazione per raccomandare GMicroC per una risoluzione più alta del timestamp?

 
4evermaat:

Ho notato che mt4 ora ha un GetMicroSecondCount(). Sarebbe superiore alla funzione GetTickCount in termini di precisione?

Quale sarebbe il vantaggio/svantaggio di usare GetMicrosecondCount() rispetto a GetTickCount()? Utilizza più risorse? Penserei che la risoluzione MicroSec sarebbe una funzione superiore al MilliSec. Puoi sempre convertire MicroSec in Millisec o risoluzione inferiore, ma non puoi prendere Millisec e ottenere MicroSec o risoluzione superiore.


Perché MQ ha suggerito la funzione GTC contro GMicroC per i timestamp al millisecondo? Capisco che forse prima non c'era la funzione GMicroC, ma ora che c'è, perché non aggiornare la documentazione per raccomandare GMicroC per una risoluzione superiore del timestamp?

Sembra che ti piaccia lamentarti Hai chiesto millisecondi e ora hai microsecondi. Comunque sarebbe meglio se TimeCurrent() (e altri tempi restituiti dal server) restituisse millisecondi.

Se vuoi parlare con Metaquotes, dovresti scrivere al ServiceDesk, rispondono molto raramente a questo forum.

 
4evermaat:

Ho notato che mt4 ora ha un GetMicroSecondCount(). Sarebbe superiore alla funzione GetTickCount in termini di precisione?

Quale sarebbe il vantaggio/svantaggio di usare GetMicrosecondCount() rispetto a GetTickCount()? Utilizza più risorse? Penserei che la risoluzione MicroSec sarebbe una funzione superiore al MilliSec. Puoi sempre convertire MicroSec in Millisec o risoluzione inferiore, ma non puoi prendere Millisec e ottenere MicroSec o risoluzione superiore.


Perché MQ ha suggerito la funzione GTC contro GMicroC per i timestamp al millisecondo? Capisco che forse prima non c'era la funzione GMicroC, ma ora che c'è, perché non aggiornare la documentazione per raccomandare GMicroC per una risoluzione superiore del timestamp?

Mentre GetTickCount è una funzione API di base di Windows (dall'inizio di Windows), l'altra funzione ha richiesto un'implementazione (anche se semplice). Non sono correlate l'una all'altra.
 
zirkoner:

Sembra che ti piaccia lamentarti Hai chiesto millisecondi e ora hai microsecondi. Comunque sarebbe meglio se TimeCurrent() (e altri tempi restituiti dal server) restituisse millisecondi.

Se vuoi parlare con Metaquotes, dovresti scrivere al ServiceDesk, rispondono molto raramente a questo forum.

Non mi lamento, mi chiedo solo perché ora che è disponibile una nuova funzione che è più precisa, loro (o chiunque) raccomandano ancora la vecchia funzione. Ho scritto al service desk.

Ovo:
Mentre GetTickCount è una funzione API di base di Windows (dall'inizio di Windows), l'altra funzione ha richiesto un'implementazione (anche se semplice). Non sono correlate l'una all'altra.

Quale implementazione usa GetMicroSecondCount() per ottenere una precisione al microsecondo nei timestamp?

 
4evermaat:

Quale implementazione usa GetMicroSecondCount() per ottenere una precisione al microsecondo nei timestamp?

Ho una chiara idea di come codificarlo, ma non sono il codificatore di MQ. Comunque, perché hai bisogno di saperlo se l'hanno già fatto funzionare per te?
 

Per ottenere il tempo del sistema come milli secondi dall'epoca:


#include <WinAPI\windef.mqh>
#import
"kernel32.dll" void GetSystemTimeAsFileTime(FILETIME& t); #import ulong getCurrentEpochMsc(){      FILETIME t;      GetSystemTimeAsFileTime(t);      ulong time = (long)t.dwHighDateTime << 32 | t.dwLowDateTime;      ulong diffTo1970 = 11644473600000;      return (ulong)(time * 0.0001 - diffTo1970 - TimeGMTOffset()*1000); }
 
owneroxxor: Per ottenere il tempo di sistema come milli secondi dall'epoca:

Un Datetime è secondi dall'epoca. Fonda in un long e moltiplica per 1000. Non c'è bisogno di tutto questo.

 
William Roeder:

Un Datetime è a secondi dall'epoca. Fonda in un long e moltiplica per 1000. Non c'è bisogno di tutto questo.

Non stai considerando che in alcuni casi (come il mio) avevo bisogno di conoscere l'istante attuale (precisione in millisecondi) del sistema per confrontarlo con un ordine piazzato TimeMsc(). In questo caso, quello che hai detto non è valido.

 
owneroxxor:

Non stai considerando che in alcuni casi (come il mio) avevo bisogno di conoscere l'istante attuale (precisione in millisecondi) del sistema per confrontarlo con un ordine piazzato TimeMsc(). In questo caso, quello che hai detto non è valido.

Basta usare GetTickCount().
Motivazione: