Caractéristiques du langage mql5, subtilités et techniques - page 99
![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
Le besoin se fait sentir de transférer par référence sans modification - soit pour la vitesse, soit pour l'objet.
S'il n'y a pas besoin de le passer pour modification, alors vous pouvez simplement ignorer tout ce que j'ai écrit).
Avez-vous un exemple réel dans MQL5 où ce problème se produit ?
Un véritable exemple de commodité fait défaut.
J'ai tout décrit en détail, à la fois en mots et en code. Si cela vous semble incompréhensible pour une raison quelconque, c'est que vous n'êtes manifestement pas confronté aux problèmes décrits, et je vous en félicite. Bonne nuit, cher ami.)
Mon message s'adressait probablement davantage aux templateurs purs et durs et aux amateurs de contrôle des types.
Il est souvent nécessaire de passer une variable en tant qu'argument de modèle par référence pour la modifier. Cependant, la spécification existante des modèles C++ ne permet malheureusement pas de spécifier explicitement la non-constance de l'argument, comme c'est le cas dans les fonctions normales :
Tout d'abord, le C++ dispose simplement de capacités de template beaucoup plus riches, et ensuite, le C++ dispose de SFINAE, qui vous permet d'embrouiller les choses au point de vous faire dresser les cheveux sur la tête.
C'est à ça que ça peut ressembler :
C'est la même chose qu'avec un pointeur. Vous ne pouvez pas spécifier directement que le type que vous voulez ne doit pas être un pointeur, mais vous pouvez le faire par une spécialisation non compilée.cela pourrait ressembler à ceci
D'après ce que j'ai compris, cela provoque une erreur de compilation dans le corps de la fonction (qui peut être appelée de toute façon), mais cela n'affecte pas le processus de sélection du modèle. Il faut manipuler avec le type de la valeur de retour de la fonction. Mais peu importe. Mais tout cela est mis en œuvre non seulement par le biais de modèles, mais aussi par le spécificateur decltype, qui est absent de MQL et toujours nécessaire.
Mon message s'adressait probablement davantage aux modélistes purs et durs et aux amateurs de contrôles de type intello.
Je pensais qu'après avoir écrit TypeToBytes, j'étais devenu plus compétent en matière de modèles.
Je pensais qu'après avoir écrit TypeToBytes, j'étais devenu plus compétent en matière de modèles.
Je me rends compte maintenant que l'expression "hardcore pattern maker" en relation avec MQL semble ironique. C'est comme un "programmeur MQL certifié". ))
Le problème est qu'il n'y a rien de particulièrement difficile à faire dans les modèles, et pas seulement à cause du manque de fonctionnalité supplémentaire du langage, mais aussi à cause du mauvais fonctionnement de celle qui existe. Je rencontre constamment des bogues.
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Bugs, bugs, questions
Slava, 2018.09.19 06:37
Pour placer un objet au-dessus de tous les autres, quel que soit l'ordre, vous devez d'abord le rendre invisible sur toutes les échéances, puis le rendre à nouveau visible.Bonjour !
Ladocumentation indique explicitement que lorsque le gestionnaire OnTickest en cours d'exécution https://www.mql5.com/ru/docs/runtime/event_fire#newtick
est inactif et aucun nouveau ticks n'est traité. Est-ce qu'il en va de même pour lesgestionnaires OnBookEvent, OnTimer, OnChartEvent ou non.
La question est due au fait que dans tous les gestionnaires ci-dessus, j'utilise mon propre traitement des tics.
Bonjour !
Ladocumentation indique explicitement que pendant l'exécution du gestionnaire OnTick https://www.mql5.com/ru/docs/runtime/event_fire#newtick
Est-ce qu' il en va de même pour les gestionnaires OnBookEvent, OnTimer, OnChartEvent ou non.
La question est due au fait que tous les gestionnaires ci-dessus utilisent leur propre traitement des tics.
C'est faux.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Bibliothèques : HistoryTicks
fxsaber, 2018.04.10 17:53
Combat EA sur un symbole à haute fréquence (200-350 ticks par minute) avec des ordres de commerce fréquents (plusieurs fois par minute) et un ping de 100 ms en mode standard perd ~5% des ticks.
En mode HistoryTicks, aucune perte.
N'hésitez pas à utiliser le système OnTick multidevises dans MT5.
Définitivement pas correct.
ZZY Vous pouvez utiliser en toute sécurité OnTick multidevises sous MT5Z
Merci pour le lien ! En fait, le problème ne réside pas dans la perte de ticks, mais dans l'éventuelle mise à jour partielle de l'information lors du traitement de l'information courante. J'ai résolu un problème similaire lors de la communication entre les robots qui effectuent des transactions simultanément.
Comme le robot est orienté sur un service d' hébergement utilisant desdllsexternes et donc quelemutexest impossible, j'ai utilisé l'émulation GlobalVariableSetOnCondition.
Merci pour le lien ! En fait, le problème ne réside pas dans la perte de ticks, mais dans l'éventuelle mise à jour partielle de l'information lors du traitement de l'information courante. J'ai eu un problème similaire pour organiser la communication entre les robots qui effectuent des transactions simultanément.
Comme mon robot est orienté sur un service d' hébergement utilisant desdllstierces et donc quelemutexest impossible, j'ai utilisé l'émulation GlobalVariableSetOnCondition.
Vous pouvez peut-être utiliser les ressources pour transférer des données.