Erreurs, bugs, questions - page 2410
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 code compte plusieurs milliers de lignes. Il est inutile de l'ajouter. Il n'y a pas de variables statiques. Il y a des classes. Dans tous les cas, c'est l'erreur du testeur.
Voilà votre erreur.
En mode débogage, exécutez une vérification avant d'envoyer un ordre de transaction. Regardez le symbole et les prix. Et testez au moins en mode "Tous les tics".
OK. Éclairez-nous. Quelle erreur dans le code, ou quel code, pourrait fermer une position dans le testeur au prix d'un autre instrument. Je suis vraiment, vraiment curieux.
Facilement. Cela dépend directement du caractère mou du code. Je l'ai fait moi-même :). Système mal conçu de contrôle de l'initialisation des classes de caractères. Et en plus il y a les variables statiques.
De toute façon, il est inutile de parler plus avant sans le code écrit par la personne sur laquelle vous vous interrogez.
Facilement. C'est une corrélation directe avec la courbure du code. Je l'ai fait moi-même :). Système de contrôle de l'initialisation des classes de caractères insuffisamment élaboré. Et en plus, il y a des variables statiques.
Il est donc inutile de parler davantage sans vous demander le code.
Pouvez-vous nous montrer un exemple de code ? Comment fermer une position en EURUSD au prix GPBUSD ?
Si c'est le cas, ce ne sera pas un problème pour vous. Je vous en serais très reconnaissant.
Pouvez-vous me montrer un exemple de code ? Comment fermer une position EURUSD au prix GPBUSD ?
Si c'est le cas, ce ne sera pas un problème pour vous. Je vous en serai très reconnaissant.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Bugs, bugs, questions
Vladimir Karputov, 2019.03.24 05:58
C'est facile. La dépendance de la courbure du code. J'ai moi-même fait de telles erreurs :). Système de contrôle de l'initialisation des classes de caractères insuffisamment réfléchi. Et plus de variables statiques.
De toute façon, il est inutile de parler plus avant sans le code écrit par la personne sur laquelle vous vous interrogez.
Il n'y a pas d'erreur en mode débogage, visualisation. La position est fermée non pas par un ordre de transaction, mais par un stop loss :
Il est fort possible qu'il s'agisse d'une erreur logique dans le code, très probablement ici, je vais me pencher dessus, bien sûr, je ne sais pas encore comment - aucune erreur en mode débogage :
il parvient à fixer un stop pour un ordre à 1.60704, 3000 pips au-dessus du prix actuel de la position.
Dans ce cas, le testeur aurait dû interdire le réglage de l'arrêt.
Ici, je regarde le journal :
l'ordre de changer le stop est envoyé pour gpbusd, la ligne en surbrillance, mais est en fait exécuté pour eurusd- ensuite.
Voici le code pour régler l'arrêt
où
OrderSend( req, res )
fonction mql native, non surchargée.
c'est-à-dire ici
il est indiqué qu'il fixe un stop pour le gbpusd et qu'il devrait en être ainsi, mais en réalité
OrderSend( req, res )
le met pour l'eurusd
Ici, je regarde le journal :
l'ordre de changer le stop est envoyé pour gpbusd, la ligne en surbrillance, mais est en fait exécuté pour eurusd- la suivante.
il y a 2 erreurs.
№1. Votre erreur. Quelque part dans le code. Vous définissez un SL pour une position EURUSD en utilisant le prix GBPUSD. Le terminal ne devrait rien avoir contre lui.
№2. Bug dans le terminal. Si ce SL est déclenché à un prix qui n'existe pas à ce moment-là dans le flux EURUSD, en utilisant le prix GBPUSD.
Ici, je regarde le journal :
l'ordre de changer le stop est envoyé pour gpbusd, la ligne en surbrillance, mais est en fait exécuté pour eurusd- ensuite.
Voici le code pour régler l'arrêt
où
fonction mql native, non surchargée.
https://www.mql5.com/ru/docs/constants/structures/mqltraderequest
Apparemment, lors de l'envoi d'une demande de modification, le champ de la position a la priorité sur le symbole. Imprimerreq.position
Veuillez exécuter ce code :Multicurrency iMA Trend 2.
Spécifiez "EURUSD,GBPUSD" dans les paramètres ( paramètre Symboles).
Dans ma configuration
tous les SLs ont fermé à leur prix de symbole. C'est-à-dire qu'il n'y a pas d'erreur de chevauchement des prix.