Caractéristiques du langage mql5, subtilités et techniques - page 90

 
Alexey Navoykov:

Voici une variante utilisant un chronomètre winapi haute résolution, donnant une précision de 5,6e-13 secondes.

De quoi parlez-vous ? Il s'avère que cette fréquence est de 1786 GHz. Et voici la fréquence du rayonnement infrarouge. :))
Tu as juste mélangé la fréquence avec le compteur là.
C'est en fait 3,8e-07 secondes. Cela représente environ un tiers de microseconde. Pas de différence significative avec le MQL


 
Nikolai Semko:

De quoi parlez-vous ? Il s'avère que la fréquence est de 1786 GHz. Et c'est la fréquence du rayonnement infrarouge. :))
Tu as juste mélangé la fréquence avec le compteur là.
C'est en fait 3,8e-07 secondes. Cela représente environ un tiers de microseconde. Pas très différent de MQL.

Oui, c'est vrai, je me suis trompé.

 
Alexey Navoykov:

Oui, c'est ça, mélangé)

C'est pourtant une vraie solution.
Je l'ai vérifié - leur compteur ne réagit pas au changement d'heure locale.
Donc, si j'ai besoin de microsecondes et que je les utilise pendant une longue période de temps, veuillez utiliserKernel32.dll.
Merci !

Il s'agit donc d'un bogue après tout, qui pour MQ est facile à corriger.
 

Nous devons envoyer des demandes collectives au service d'assistance. Parce qu'il est inutile de le faire autrement. Ils ont même cessé de répondre aux bogues de compilateurs. Les demandes ne manquent pas, mais en vain...

De la même manière, je leur ai demandé de créer des TimeLocal et TimeCurrent en millisecondes (surtout le second, parce que c'est problématique de l'implémenter moi-même).

 
Konstantin:

il y a une utilité, il peut être utilisé pour décharger l'interface graphique, par exemple ici :

Objet de la classe Canvas pour l'ensemble du graphique, dessin des données dans les tableaux, données des clusters, niveaux, etc., si OnTimer est monté au maximum et que l'interface graphique est placée là (et c'est toujours ce que je fais), alors sans délai un graphique charge mon VPS d'environ 45-60%, si je fais un délai de 250, alors tout est normalisé au minimum, les graphiques répondent clairement aux boutons, le système n'est pas chargé.

Quel est le lien entre GetMicrosecondCount() et OnTimer() dont il est question ici ?
 
Alexey Navoykov:

Voici une variante utilisant un chronomètre winapi haute résolution, donnant une précision de3,8e-07 secondes.

C'est comme ça qu'on compte les microsecondes
 
Renat Fatkhullin:
Voici comment on compte les microsecondes

Renat, pouvez-vous corriger la liaison avec le temps local GetMicrosecondCount() ?
Car les conséquences peuvent être des plus imprévisibles pour ceux qui ne connaissent pas cette fonctionnalité.




int OnInit()
  {
   EventSetMillisecondTimer(1000);
   return(INIT_SUCCEEDED);
  }
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   return(rates_total);
  }
void OnTimer()
  {
    Comment("Программа уже работает: "+(string)(round(double(GetMicrosecondCount())/1000000.0))+" сек");
  }
 
Non, il s'agit d'une minuterie relative permettant de mesurer avec précision des intervalles de temps, et non le temps astronomique.
 
Renat Fatkhullin:
Non, c'est une minuterie relative pour des intervalles de temps précis, pas le temps astronomique.

Merci, je le saurai.
J'ai été induit en erreur par la référence.

 
Renat Fatkhullin:
C'est ainsi que nous calculons les microsecondes.

Pourquoi ne pas calculer GetTickCount de la même manière ? Alors le problème de la résolution de 15 ms disparaîtra et posera quelques problèmes.

Raison: