![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
Comment sont fixés les stops et les TPs ?
Ouvrez-vous d'abord une position et ne la modifiez qu'ensuite, ou spécifiez-vous immédiatement le SL et le TP appropriés ?
build 384. Il semble que j'ai trouvé un autre bug... Lors de la consultation de l'historique, les ordres - les niveaux Stop Loss et Take Profit définis ne sont pas affichés...
Ils sont "affichés" lorsqu'un ordre est fixé. Ils ne sont pas affichés lorsqu'une position est fermée par le serveur à l'aide d'un stop, ce qui est naturel, puisque le serveur ne définit pas de stop lors de la fermeture d'une position.
J'ai découvert quelque chose comme ça. Je ne sais pas si c'est un bug ou non, mais ça y ressemble. Le code suivant :
Sorties dans le journal du testeur (avec un dépôt de 1000 $) :
2011.01.28 20:06:48 Core 1 2010.01.04 00:56:00 0.07000000000000001
La fonction (NormalizeDouble) ne devrait-elle pas supprimer tous les chiffres non nuls après 7 ?
Je pensais avoir trouvé une solution dans le formulaire : lot=floor((My_AccountInfo.MaxLotCheck(_Symbol,ORDER_TYPE_SELL,latest_price.ask)/10)*100)/100,
mais j'ai aussi obtenu des résultats similaires. Que faire - quel est le degré d'importance dans les requêtes commerciales ?
Bonjour !
J'ai ajouté la fonction Commentaire au corps de la boucle, afin qu'elle puisse afficher le pourcentage de l'état d'exécution de la boucle et quelques autres valeurs. L'algorithme simple a pris 5 minutes (sinon plus) pour s'exécuter dans le corps de la boucle, mais il n'a recalculé que 32000 valeurs de barres (Close,High,Low,Open). Je me suis plaint que le tableau augmente dynamiquement pendant l'exécution de la boucle, mais ce n'est pas vrai. Après le débogage de l'algorithme, le commentaire a été supprimé - le calcul est maintenant effectué dans un godsend.
La fonction Commentaire ralentit-elle vraiment l'exécution des programmes? Je suis franchement surpris.
Système : Windows XP, Terminal 5.00.384.
Bonjour !
J'ai ajouté la fonction Commentaire au corps de la boucle, afin qu'elle puisse afficher le pourcentage de l'état d'exécution de la boucle et quelques autres valeurs. L'algorithme simple a pris 5 minutes (sinon plus) pour s'exécuter dans le corps de la boucle, mais il n'a recalculé que 32000 valeurs de barres (Close,High,Low,Open). Je me suis plaint que le tableau augmente dynamiquement pendant l'exécution de la boucle, mais ce n'est pas vrai. Après le débogage de l'algorithme, le commentaire a été supprimé - le calcul est maintenant effectué dans un godsend.
La fonction Commentaire ralentit-elle vraiment l'exécution des programmes? Je suis franchement surpris.
Système : Windows XP, Terminal 5.00.384.
En exécutant le conseiller expert sur l'historique en utilisant uniquement les prix d'ouverture, les positions de vente ne sont pas ouvertes aux prix d'ouverture, mais aux prix élevés, et sont fermées aux prix bas.
Pourquoi cela se produit-il ?
L'Expert Advisor recherche des signaux pour ouvrir et fermer des positions en utilisant uniquement les prix Open[0]. EventSetTimer(1) est utilisé ;
Ils sont édités lorsqu'une commande est passée. Non disponible lorsqu'une position est fermée par le serveur en utilisant un stop, ce qui est naturel, car le serveur ne définit pas de stop lors de la fermeture d'une position.
Quoi de neuf ?) ? où apparaissent-ils lorsque les commandes sont passées ?
Je parle du rapport "Historique", et je ne vois rien dans les colonnes Stop Loss et Take Profit, même si les positions ont ces valeurs.
comment puis-je savoir si un stop loss a été défini ou non ? je veux dire, s'il a été déclenché, je peux le voir, mais pas ?
J'ai la question suivante.
La tâche consiste à écrire les valeurs d'équité dans un fichier spécifique pendant la phase de test, en effaçant les valeurs précédentes.
Mais ce qui se passe ici est le suivant :
1. LorsqueFileDelete() est absent de OnInit(), il est écrit en plus de ceux existants.
2. Mais lorsque FileDelete() dans OnInit() est présent, malgré les mêmes enregistrements d'équité dans OnCalculatde(), le fichier résultant s'avère être vide.
Pourquoi cela se produit-il et comment l'éviter ?
Voici le code :
quoi de neuf :) ? où sont-ils affichés lorsqu'une commande est passée ?
Je parle du rapport "Historique", et je ne vois rien dans les colonnes Stop Loss et Take Profit, bien que les positions aient ces valeurs.
comment puis-je savoir si un stop loss a été défini ou non ? s'il a fonctionné, je peux le voir, mais sinon ?
J'ai la question suivante.
La tâche consiste à écrire les valeurs d'équité dans un fichier spécifique pendant la phase de test, en effaçant les valeurs précédentes.
Mais ce qui se passe ici est le suivant :
1. Lorsque FileDelete() est absent de OnInit(), il est écrit en plus de ceux existants.
2. Mais lorsque FileDelete() dans OnInit() est présent, malgré les mêmes enregistrements d'équité dans OnCalculatde(), le fichier résultant s'avère être vide.
Pourquoi cela se produit-il et comment l'éviter ?
Le code est donné ci-dessous :
J'ai inventé une solution pour reconnaître le mode test, mais il y a un peu d'empirisme dans cette solution qui me gêne...
(J'ai essayé de trouver une occasion d'obtenir l'heure de début du testeur de manière programmatique, pour mettre en indentation à partir de celui-ci jusqu'aux profondeurs de l'histoire et couper ainsi le temps réel,
mais ne l'a malheureusement pas trouvé) :
Mais il y a un problème d'une toute autre nature, qui est qu'après avoir changé la période de test, les indicateurs selon les résultats du test disparaissent pour une raison quelconque, mais si après cela vous faites une compilation pour une nouvelle période, alors l'exécution du testeur les affichera.Bug ?