Caractéristiques du langage mql5, subtilités et techniques - page 234
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
Vous mesurez la durée et obtenez le résultat. C'est ce qui s'est passé avec TRADE_ACTION_MODIFY.
D'où, à où, quoi et dans quelles conditions la durée a-t-elle été mesurée ?
juste OrderSendAsync MODIFY et jusqu'à l'opération suivante immédiate, 5 secondes ? ??
résultat très étrange, effrayant, improbable - nous devons revérifier les tests.
d'où, à où, à quoi et dans quelles conditions a-t-elle été mesurée ?
juste OrderSendAsync MODIFY et à l'opération suivante immédiate 5 sec ? ???
résultat très étrange, effrayant, improbable - nous devons revérifier les tests
J'ai mesuré le temps avant et après la fonction, j'ai calculé la différence et j'ai obtenu 5 secondes. Les conseillers au combat mesurent tout, afin de disposer de plus d'informations pour résoudre une situation anormale. J'ai vu ça.
Il fallait créer des structures auxquelles on pouvait donner des règles d'action différentes à l'intérieur, mais qui se manipulaient entre elles de manière identique.
La technique utilisée a été formalisée sur cet exemple.
Malheureusement, je n'ai pas compris pourquoi les langages OOP n'ont pas d'interfaces pour les méthodes statiques.
Je dois créer une telle horreur.
Comment l'imaginez-vous ?
Toute fonction a son adresse dans le segment .text.
Toute fonction membre (méthode) accepte implicitement ce pointeur comme premier paramètre.
Les méthodes statiques n'acceptent pas ce pointeur et sont essentiellement du "sucre" syntaxique, étant, de facto, des fonctions ordinaires.
Lorsqu'une fonction virtuelle est appelée, l'adresse de la fonction exécutable est tirée de la table des fonctions virtuelles, dont le pointeur est implicitement contenu dans la classe dans laquelle la fonction virtuelle est déclarée. L'initialisation du pointeur sur la fonction exécutable se fait lors de la création d'une instance de l'objet, la logique est la suivante (je l'écris en mql volontairement pour que ce soit clair pour tous les néophytes :
Naturellement, dans la réalité, tout n'est pas comme ça, mais le mécanisme d'initialisation du pointeur sur la fonction est exactement comme ça. En conséquence, il n'y a aucun moyen, à partir du mot "du tout", de le faire comme vous le souhaitez dans un langage compilé.
Le C++ dispose d'une telle magie des modèles :
Toute fonction a son adresse dans le segment .text.
Toute fonction membre (méthode) accepte implicitement ce pointeur comme premier paramètre.
Les méthodes statiques n'acceptent pas ce pointeur et sont essentiellement du "sucre" syntaxique, étant de facto des fonctions ordinaires.
Lorsqu'une fonction virtuelle est appelée, l'adresse de la fonction exécutable est tirée de la table des fonctions virtuelles, dont le pointeur est implicitement contenu dans la classe dans laquelle la fonction virtuelle est déclarée. L'initialisation du pointeur sur la fonction exécutable se fait lors de la création d'une instance de l'objet, la logique est la suivante (je l'écris en mql pour que ce soit clair pour tous les néophytes :
Naturellement, dans la réalité, ce n'est pas comme ça, mais le mécanisme d'initialisation du pointeur sur la fonction est exactement comme ça.
Merci pour cette explication détaillée accompagnée d'un exemple !
Qu'en pensez-vous ?
Si vous parlez de mon regret concernant les possibilités des interfaces, je veux imposer uniquement des restrictions syntaxiques aux classes/structures. Je ne veux imposer que des restrictions syntaxiques aux classes/structures. C'est à dire uniquement à la compilation, comme c'est le cas avec le même modificateur const. Pour l'autocontrôle, en somme.
Il n'y a aucun moyen, à partir du mot "du tout", de faire ce que vous voulez dans un langage compilé.
J'ai écrit une béquille plus haut. Je voulais avoir quelque chose de déjà intégré pour de tels cas.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Nouvelle version de MetaTrader 5 build 3950 : Retrait/Remplissage dans le terminal et mise à jour du rapport de trading
fxsaber, 2023.09.19 23:25
Comment se débarrasser des erreurs ?La première fois, __LINE__/__COUNTER__ sont passés à l'intérieur des markos sous forme de texte, la seconde fois sous forme de nombres.
J'ai trouvé deux solutions pour contourner cette erreur.
1. Passer par la classe de base :
2. Par une classe imbriquée :