Caractéristiques du langage mql5, subtilités et techniques - page 94
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
et comment voyez-vous l'application pratique de GetMicrosecondCount au point de gâcher tout le travail du programme dans la version actuelle ? décrivez l'application pratique
par exemple, je ne vois pas de variantes ni en c++ ni ici, sauf celles décrites par Renat, à savoir mesurer le temps d'exécution du code avec précision en mcs
Je ne comprends pas votre persistance, franchement parlant.
Le champ d'application de cette fonction est assez vaste, si vous avez de la fantaisie.
J'ai déjà mentionné plus haut le multitimer qui vous permet de faire fonctionner plusieurs timers avec des périodes différentes en même temps.
C'est aussi ce que fxsaber a déjà écrit.
La fonction microseconde par rapport à la fonction milliseconde est utile non seulement pour les tests de vitesse, mais aussi pour obtenir diverses informations de télémétrie pendant l'exécution des conseillers experts.
Si la précision de cette télémétrie est de 16 ms (plus précisément 1/64 s = 15625 microsecondes) - il s'agit d'une erreur très importante.
Configuré, mais cela n'aide pas - je ne comprends pas la raison. Vrai, mon serveur est ntp2.stratum2.ru
Si vous utilisez GetTickCount pour des intervalles aussi longs, vous ne devriez pas avoir de problèmes.
Des problèmes surviendront si vous utilisez GetMicrosecondCount.
Si l'utilisation de la fonction microseconde est une question de principe, il est préférable d'utiliser cette variante de la fonction.
Informations à prendre en compte :
Temps approximatif d'exécution des fonctions :
- GetTickCount - ~ 2 ns
- GetMicrosecondCount - ~ 30 ns
-RealMicrosecondCount - ~ 40 ns
Si vous utilisez GetTickCount pour des intervalles aussi longs, vous ne devriez pas avoir de problèmes.
Des problèmes surviendront si vous utilisez GetMicrosecondCount.
Si l'utilisation de la fonction microseconde est une question de principe, il est préférable d'utiliser cette variante de la fonction.
Informations à prendre en compte :
Temps d'exécution approximatif des fonctions :
- GetTickCount - ~ 2 ns
- GetMicrosecondCount - ~ 30 ns
-RealMicrosecondCount - ~ 40 ns
J'utilise le code de quelqu'un d'autre et il n'y a pas du tout de telles fonctions mais cet effet de désynchronisation se produit.
Quelle est la probabilité de changer l'heure locale de l'ordinateur entre deux appels à GetMicrosecondsCount utilisés pour mesurer le temps en microsecondes ?
Cela dépend, tout d'abord, de la période spécifiée de synchronisation de l'heure du système avec l'heure Internet. Par exemple, je règle la synchronisation une fois par jour, et pendant ce temps il y a plus de 1 s de différence. Quelqu'un se synchronise une fois par heure, ou même plus souvent. Alors, calculez la probabilité.
...parce que je connais déjà cette fonction de GetMicrosecondCount() et que cette fonction est plus lente que GetTickCount.
Je suppose que cette lenteur est due au fait qu'en plus d'obtenir le PerfomanceCount natif, il secoue également l'heure locale, nous devons donc payer pour ce service baissier. Si nous comparions directement la vitesse de PerfomanceCount et de GetTickCount, la différence serait beaucoup plus faible.
Même si, franchement, je ne comprends pas vraiment tout ce discours sur la vitesse d'exécution quand on parle de 2-20 nanosecondes. Cette différence ne peut être ressentie qu'en exécutant une boucle presque vide (avec cette fonction) pendant cent millions d'itérations. C'est une solution mal conçue en soi.
Et oui, vous serez tout aussi époustouflé par une fonction WinAPI pure (soit GetTickCount ou QueryPerformanceCounter) lorsque vous glisserez un morceau dans la tronçonneuse en changeant la date même de quelques secondes. Il n'y a aucune protection que vous êtes censés avoir. Aspiré de votre doigt comme un problème et une prétendue solution.
Tout est donc vrai - c'est ainsi que fonctionne WinAPI et c'est la réalité.
Vous avez tort, j'ai spécifiquement cité le code ici utilisant WinApi. Exécutez-le, changez l'horloge dans le processus, et voyez le résultat.
Il n'est pas très clair comment mener un quelconque dialogue avec vous, si vos arguments sont basés sur des spéculations. Et vous ne considérez même pas nécessaire de prendre connaissance de la discussion sur le sujet.
Le champ d'application de cette fonction est assez vaste, si vous avez de la fantaisie.
J'ai déjà parlé plus haut du multitimer, qui vous permet de faire fonctionner simultanément plusieurs minuteurs avec des périodes différentes.
C'est aussi ce que fxsaber a déjà écrit.
La fonction microseconde par rapport à la fonction milliseconde est utile non seulement pour les tests de vitesse, mais aussi pour obtenir diverses informations de télémétrie pendant l'exécution des conseillers experts.
Si cette télémétrie est précise à 16 ms (plus précisément 1/64 s = 15625 microsecondes), il s'agit d'une erreur assez importante.
Je mesure constamment la vitesse d'exécution, comme Renat l'a écrit, je n'ai jamais vu de problèmes, vous semblez partir de rien, ou ne pas vouloir changer ce qui a été écrit avant, cela arrive quand on a tout en vain, sans vouloir vous offenser, mais le même multitimer que vous avez mentionné peut être facilement mis en œuvre sans aucune erreur, mais il faut payer pour cela, Renat a également donné une description en réponse à ma question ci-dessus
La bouche de la Vérité est muette pour les non-initiés.
Eh bien, oui ;)
Cela dépend, tout d'abord, de la période de synchronisation de l'heure du système avec l'heure Internet. Par exemple, je règle la synchronisation une fois par jour, et pendant cette période il y a plus d'une seconde de divergence. Quelqu'un l'a une fois par heure, ou même plus souvent. Ici vous pouvez estimer la probabilité.
Êtes-vous sûr d'avoir lu toute la question ?
...entre deux appels à GetMicrosecondsCount...