nouveau mql4 fournissant des millisecondes dans les timestamps.... - page 4

 
autoabacus:

...
Très intéressant. Merci.
 

J'ai remarqué que mt4 a maintenant une fonction GetMicroSecondCount(). Cette fonction serait-elle supérieure à la fonction GetTickCount en termes de précision ?

Quel serait l'avantage/inconvénient de l'utilisation de la fonction GetMicrosecondCount() par rapport à GetTickCount() ? Utilise-t-elle plus de ressources ? Je pense que la résolution MicroSec serait une fonction supérieure à MilliSec. Vous pouvez toujours convertir des MicroSec en Millisec ou en résolution inférieure, mais vous ne pouvez pas prendre des Millisec et obtenir des MicroSecs ou une résolution supérieure.


Pourquoi MQ suggère-t-il la fonction GTC plutôt que GMicroC pour les horodatages en millisecondes ? Je comprends qu'avant il n'y avait peut-être pas de fonction GMicroC. Mais maintenant qu'il y en a une, pourquoi ne pas mettre à jour la documentation pour recommander GMicroC pour une résolution plus élevée des horodatages ?

 
4evermaat:

J'ai remarqué que mt4 a maintenant une fonction GetMicroSecondCount(). Cette fonction serait-elle supérieure à la fonction GetTickCount en termes de précision ?

Quel serait l'avantage/inconvénient de l'utilisation de la fonction GetMicrosecondCount() par rapport à GetTickCount() ? Utilise-t-elle plus de ressources ? Je pense que la résolution MicroSec serait une fonction supérieure à MilliSec. Vous pouvez toujours convertir des MicroSec en Millisec ou en résolution inférieure, mais vous ne pouvez pas prendre des Millisec et obtenir des MicroSecs ou une résolution supérieure.


Pourquoi MQ suggère-t-il la fonction GTC plutôt que GMicroC pour les horodatages en millisecondes ? Je comprends qu'avant il n'y avait peut-être pas de fonction GMicroC. Mais maintenant qu'il y en a une, pourquoi ne pas mettre à jour la documentation pour recommander GMicroC pour une résolution plus élevée des horodatages ?

On dirait que vous aimez vous plaindre Vous avez demandé des millisecondes et maintenant vous avez des microsecondes. Quoi qu'il en soit, il serait préférable que TimeCurrent() (et les autres temps renvoyés par le serveur) renvoie des millisecondes.

Si vous voulez parler à Metaquotes, vous devriez écrire au ServiceDesk, ils répondent très rarement à ce forum.

 
4evermaat:

J'ai remarqué que mt4 a maintenant une fonction GetMicroSecondCount(). Cette fonction serait-elle supérieure à la fonction GetTickCount en termes de précision ?

Quel serait l'avantage/inconvénient de l'utilisation de la fonction GetMicrosecondCount() par rapport à GetTickCount() ? Utilise-t-elle plus de ressources ? Je pense que la résolution MicroSec serait une fonction supérieure à MilliSec. Vous pouvez toujours convertir des MicroSec en Millisec ou en résolution inférieure, mais vous ne pouvez pas prendre des Millisec et obtenir des MicroSecs ou une résolution supérieure.


Pourquoi MQ suggère-t-il la fonction GTC plutôt que GMicroC pour les horodatages en millisecondes ? Je comprends qu'avant il n'y avait peut-être pas de fonction GMicroC. Mais maintenant qu'il y en a une, pourquoi ne pas mettre à jour la documentation pour recommander GMicroC pour une résolution plus élevée des horodatages ?

Alors que GetTickCount est une fonction de base de l'API Windows (depuis le début de Windows), l'autre fonction a nécessité une mise en œuvre (bien que simple). Elles ne sont pas liées l'une à l'autre.
 
zirkoner:

On dirait que vous aimez vous plaindre. Vous avez demandé des millisecondes et maintenant vous avez des microsecondes. Quoi qu'il en soit, il serait préférable que TimeCurrent() (et les autres temps renvoyés par le serveur) renvoie des millisecondes.

Si vous voulez parler à Metaquotes, vous devriez écrire au ServiceDesk, ils répondent très rarement à ce forum.

Je ne me plains pas, je me demande juste pourquoi, maintenant qu'une nouvelle fonction plus précise est disponible, ils (ou n'importe qui) recommandent toujours l'ancienne fonction. J'ai écrit au ServiceDesk.

Ovo:
Alors que GetTickCount est une fonction de base de l'API Windows (depuis le début de Windows), l'autre fonction nécessite une mise en œuvre (bien que simple). Elles ne sont pas liées l'une à l'autre.

Quelle implémentation utilise GetMicroSecondCount() pour obtenir une précision de l'ordre de la microseconde dans les timestamps ?

 
4evermaat:

Quelle implémentation GetMicroSecondCount() utilise-t-elle pour obtenir une précision de l'ordre de la microseconde dans les horodatages ?

J'ai une idée claire de la façon de le coder, mais je ne suis pas le codeur MQ. De toute façon, pourquoi avez-vous besoin de le savoir s'ils l'ont déjà fait fonctionner pour vous ?
 

Pour obtenir l'heure du système en milli secondes à partir de l'époque :


#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: Pour obtenir l'heure du système en milli secondes à partir de l'époque :

Une date est une seconde à partir de l'époque. Il suffit de le convertir en un long et de le multiplier par 1000, sans avoir besoin de tout cela.

 
William Roeder:

Une Datetime correspond aux secondes de l'époque. Il suffit de le convertir en un long et de le multiplier par 1000. Pas besoin de tout ça.

Vous ne tenez pas compte du fait que dans certains cas (comme le mien), j'avais besoin de connaître l'instant actuel (avec une précision de quelques millisecondes) du système pour le comparer avec une commande passée TimeMsc(). Dans ce cas, ce que vous dites n'est pas valable.

 
owneroxxor:

Vous ne tenez pas compte du fait que dans certains cas (comme le mien), j'avais besoin de connaître l'instant actuel (avec une précision de quelques millisecondes) du système pour le comparer avec une commande passée TimeMsc(). Dans ce cas, ce que vous dites n'est pas valable.

Utilisez simplement GetTickCount().