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

 
Sachez que si les millisecondes et les nanosecondes sont si importantes que ces tics arrivent par Internet (IO liée au réseau). Une résolution temporelle de l'ordre de la nanoseconde est probablement exagérée, à moins que vous ne prévoyiez quelque chose de méchant !
 
angevoyageur:
Il n'y a pas de telles informations dans mql5 non plus. Mais il y a des événements Timer qui peuvent être utilisés avec une précision de quelques millisecondes, bien que je ne sache pas si cette fonctionnalité sera disponible avec la nouvelle mql4.

L'équivalent actuel de mql4 est quelque chose comme ci-dessous :

void start(){
    while(true){
        do_something....;
        Sleep(1000); //Sleep for one Second.
        RefreshRates();
    }
}

void start(){
    static bool RunOnce;
    if(RunOnce) return;
    int Begin=GetTickCount();
    while(GetTickCount()<Begin+1000){
        Print("GetTickCount()="+GetTickCount());
        Sleep(1);
    }
    RunOnce=true;
}

J'ai testé le GTC et il semble sauter de 16_millisecondes. J'ai découvert que c'est probablement une sorte de limitation informatique sur les anciens systèmes. Si quelqu'un veut expliquer pourquoi [ malgré mes divagations ] je serai heureux. Hummm, je me demande si mql5 a les mêmes limitations ? D'accord, un autre test est en cours :)

 

Il est toujours utile de chercher à savoir quelle fonction de l'API Widows les développeurs MQL ont encapsulée.

Dans ce cas, la réponse est facile - ils ont utilisé GetTickCount Il dit :

La résolution de la fonctionGetTickCount est limitée à la résolution du timer du système, qui est typiquement dans la gamme de 10 millisecondes à 16 millisecondes.

 

J'ai déjà fait des recherches sur Google et, bien que je ne comprenne pas vraiment, il semble que GetTickCount() soit une fonction directement issue du système d'exploitation Windows. Elle n'est pas censée être précise et ne devrait pas être utilisée pour des choses qui ont besoin d'être précises au niveau de la milliseconde (même si elle renvoie des valeurs en millisecondes).

J'ai fait des tests avec sleep et avec get tick count et il y a toujours des erreurs, il est difficile de dire si elles sont causées par Sleep ou GTC mais je pense que ce sont les deux.

 
Ovo:

Il est toujours utile de chercher à savoir quelle fonction de l'API Widows les développeurs MQL ont encapsulée.

Dans ce cas, la réponse est facile - ils ont utilisé GetTickCount Il dit :

La résolution de la fonctionGetTickCount est limitée à la résolution du timer du système, qui est typiquement dans la gamme de 10 millisecondes à 16 millisecondes.

Merci.
 
ubzen:

L'équivalent actuel de mql4 est quelque chose comme ci-dessous :

J'ai testé le GTC et il semble sauter de 16_millisecondes. J'ai découvert que c'est probablement une sorte de limitation informatique sur les anciens systèmes. Si quelqu'un veut bien m'expliquer pourquoi [ malgré mes divagations ], j'en serai heureux. Hummm, je me demande si mql5 a les mêmes limitations ? D'accord, un autre test est en cours :)

La limitation de 16 millisecondes vient d'une limitation matérielle, mais il y a d'autres moyens d'obtenir une meilleure précision du timer.
mql5 a la même limitation pour GetTickCount() mais comme j'ai essayé de l'expliquer ci-dessus, il y a d'autres fonctionnalités qui peuvent être utilisées (événements du timer).

 
Ovo:

Il est toujours utile de chercher à savoir quelle fonction de l'API Widows les développeurs MQL ont encapsulée.

Dans ce cas, la réponse est facile - ils ont utilisé GetTickCount Il dit :

La résolution de la fonctionGetTickCount est limitée à la résolution du timer du système, qui est généralement comprise entre 10 millisecondes et 16 millisecondes.


Oui, c'est ce qui est écrit, mais il est difficile de savoir ce que cela signifie réellement. Si la résolution est de 16 ms, je m'attendrais à voir des valeurs de 0,16,32,48... etc.

Je ne vois jamais rien entre 0 et 16 mais je vois toutes les valeurs autour de 16.

 
angevoyageur:

La limitation de 16 millisecondes vient d'une limitation matérielle, mais il existe d'autres moyens d'obtenir une meilleure précision du timer.
mql5 a la même limitation pour GetTickCount() mais comme j'ai essayé de l'expliquer ci-dessus, il y a d'autres fonctionnalités qui peuvent être utilisées (événements du timer).

Compris :)
 
RaptorUK:
Le volume est un mauvais nom pour ce qui est en fait le "Tick count" ... cela n'a rien à voir avec le volume/lots négociés ... la raison pour laquelle il peut changer de plus de 1 est que vous pouvez manquer des ticks.


Merci pour cette information. Je me demande pourquoi je ne l'ai pas remarqué avant. Dans ce cas, cela semble être une information inutile (ou trompeuse).

Je dois vraiment chercher des données de volume réel de niveau 2 auprès de certains courtiers. Heureusement, mon courtier ECN offre des données de négociation de niveau 2 avec un volume réel.

Raison: