Caractéristiques du langage mql5, subtilités et techniques - page 88
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Bugs, bugs, questions
fxsaber, 2016.07.19 12:41
Avec l'exemple de ORDER_TICKET, l'idée devrait être claire.
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
OrderCloseTime () dans MQL5 ?
fxsaber, 2018.07.18 03:51
Nous pouvons donc vérifier si la table d'historique actuelle, générée précédemment par la fonction HistorySelect, contient l'enregistrement dont nous avons besoin. Il en va de même pour DEAL_TICKET.
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Sauvegarder le niveau de prix de la position via le clearing (est-ce possible ?)
fxsaber, 2018.07.17 20:45
Tout le monde ne sait pas que la fonction GetMicrosecondCount, contrairement à GetTickCount, est liée à l'heure locale de l'ordinateur, ce qui signifie que si cette heure change (par exemple en raison d'une synchronisation avec l'heure Internet), les valeurs GetMicrosecondCount changeront également d'une valeur correspondante.Il faut en tenir compte si cette fonction est utilisée pour mesurer des intervalles de temps ; en fait, elle ne devrait pas être utilisée à cette fin. GetTickCount, en revanche, ne présente pas ces problèmes.
À titre de démonstration, vous pouvez exécuter ce code et modifier l'heure de l'ordinateur pendant son exécution.
Tout le monde ne sait peut-être pas que la fonction GetMicrosecondCount, contrairement à GetTickCount, est liée à l'heure locale de l'ordinateur.
Je ne le savais pas, merci !
Une variante de la fonction GetTickCount qui évite les débordements (à condition que l'intervalle entre les appels à la fonction ne dépasse pas 50 jours).
Tout le monde ne sait pas que la fonction GetMicrosecondCount, contrairement à GetTickCount, est liée à l'heure locale de l'ordinateur, ce qui signifie que si cette heure change (par exemple en raison d'une synchronisation avec l'heure Internet), les valeurs GetMicrosecondCount changeront également d'une valeur correspondante.Il faut en tenir compte si cette fonction est utilisée pour mesurer des intervalles de temps ; en fait, elle ne devrait pas être utilisée à cette fin. GetTickCount, en revanche, ne présente pas ces problèmes.
Pour le démontrer, vous pouvez exécuter ce code et modifier l'heure de l'ordinateur pendant l'exécution du code.
Eh bien, c'est un bug que les développeurs devraient corriger. La fonction ne correspond alors pas à la description :
Функция GetMicrosecondCount() возвращает количество микросекунд, прошедших с момента начала работы MQL5-программы.
La valeur de cette fonction par rapport à GetTickCount est de l'ordre de la microseconde et non de la milliseconde (précision 1000 fois supérieure). Il est également non gonflable.C'est pourquoi il n'est pas tout à fait correct de parler de sa substituabilité.
Tout le monde ne sait pas que la fonction GetMicrosecondCount, contrairement à GetTickCount, est liée à l'heure locale de l'ordinateur, ce qui signifie que si cette heure change (par exemple en raison d'une synchronisation avec l'heure Internet), les valeurs GetMicrosecondCount changeront également d'une valeur correspondante.Il faut en tenir compte si cette fonction est utilisée pour mesurer des intervalles de temps ; en fait, elle ne devrait pas être utilisée à cette fin. GetTickCount, en revanche, ne présente pas ces problèmes.
Pour le démontrer, nous pouvons exécuter ce code et modifier l'heure de l'ordinateur pendant son exécution.
Une autre observation importante - il en découle qu'il est absolument inapproprié d'utiliser la fonction GetTickCount au lieu de GetMicrosecondCount.
Je pense que ce sera une surprise pour beaucoup de gens.
En examinant le fonctionnement d'un simple script :
Le résultat du travail :
nous pouvons tirer les conclusions suivantes :
Eh bien, c'est un bogue que les développeurs feraient bien de corriger. Car alors la fonction ne correspond pas à la description :
La valeur de cette fonction par rapport à GetTickCount est de l'ordre de la microseconde et non de la milliseconde (1000 fois plus précise). Il est également non gonflable.C'est pourquoi il n'est pas tout à fait correct de parler de sa substituabilité.
Si vous mesurez le temps d'exécution de certaines sections de programme, les fluctuations des performances du système annulent toute cette précision et l'erreur se compte en millisecondes, voire en dizaines de millisecondes. Si vous mesurez de très petits segments dont la durée est inférieure à 1 milliseconde, alors à quoi bon. La part d'erreur de mesure sera très élevée.
Je n'ai pas encore vu d'utilisation pratique des microsecondes. Si vous mesurez le temps d'exécution de certaines sections de programme, les fluctuations des performances du système annuleront toute cette précision, et l'erreur sera de l'ordre de la milliseconde, voire de la dizaine de millisecondes. Si vous mesurez de très petits segments dont la durée est inférieure à une milliseconde, alors à quoi bon. L'erreur de mesure sera très élevée.
Une autre observation importante suggère qu'il est absolument inapproprié d'utiliser la fonction GetTickCount au lieu de GetMicrosecondCount.
Je pense que ce sera une surprise pour de nombreux programmeurs.
En examinant le fonctionnement d'un simple script :
les conclusions suivantes peuvent être tirées :
L'argument de poids