
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
Contrairement à MQL5, dans MQL4 les tableaux statiques peuvent changer de taille.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Nouvelle version de la plateforme MetaTrader 5 build 1595 : accès à l'historique des prix
fxsaber, 2017.05.01 16:36
Il y a toujours eu un bug dans MT4 au niveau du Trailing Stop. Si vous observez pendant un fort mouvement de hausse et de baisse des prix,
vous pouvez voir le SL monter et descendre. Ici, un petit mouvement s'est produit, mais il est beaucoup plus important.
2017.05.22 10:53:38.563 '9898616' : trailing stop #1465775202 -> 1.29765
2017.05.22 10:53:38.483'9898616' : trailing stop #1465775202 -> 1.29764
2017.05.22 10:53:33.236'9898616' : trailing stop #1465775202 -> 1.29763
2017.05.22 10:53:33.130'9898616' : trailing stop #1465775202 -> 1.29764
2017.05.22 10:53:32.813 '9898616' : trailing stop #1465775202 -> 1.29762
Je l'ai eu quand SL = 2 (dernier chiffre pour la simplicité), au tick suivant le prix a augmenté et le terminal a donné un ordre pour augmenter SL à 4.
Au tick suivant, le prix a baissé mais le SL est toujours à 2. Le terminal émet un ordre pour porter SL à 3.
Le serveur, tel une girafe au long cou, a traité la première commande et porté SL à 4. Le serveur a traité la deuxième commande et a réduit SL à 3.
Ainsi, le terminal envoie des ordres supplémentaires sans signification et cela augmente la charge sur le serveur.
En outre, il existe un risque de perte inutile pour le trader en raison du mouvement inverse du SL.
Cela s'applique également aux programmes suivis d'une EA ou d'un script . Nous le corrigeons en partie en déplaçant le SL par étapes de 3...5 pips.
Ce qu'il faut faire. Sauvegarde de la valeur de SL, émise dans le dernier OrderModify.
Et ensuite, calculer la prochaine commande en fonction de cette valeur.
Ce serait comme suit : deux commandes de moins au serveur, ce qui fait avancer SL uniquement, réduisant ainsi la charge CPU de l'ordinateur.
2017.05.22 10:53:38.563 '9898616' : trailing stop #1465775202 -> 1.29765
2017.05.22 10:53:33.130 '9898616' : trailing stop #1465775202 -> 1.29764
2017.05.22 10:53:32.813 '9898616' : trailing stop #1465775202 -> 1.29762
Lors de la modification des ordres, il est souvent nécessaire de comparer le TP/SL précédent avec la nouvelle valeur à modifier. Si nous essayons de le modifier avec l'ancienne valeur, nous obtiendrons l'erreur n°1.
Prenons l'exemple de la comparaison entre l'ancienne SL (100.03) et la nouvelle SL(100.02) pour USDJPY (Chiffres = 2). C'est écrit dans l'aide :
La deuxième méthode consiste à comparer la différence normalisée de deux nombres réels avec une valeur nulle. Comparer la différence des nombres normalisés à zéro est inutile, puisque toute opération mathématique avec des nombres normalisés donne un résultat non normalisé.
C'est-à-dire que la comparaison doit être faite de cette manière :
Mais parfois, le courtier peut donner des prix non normalisés. Et par exemple, nous avons obtenu le prix 100.025, pas 100.02. Après avoir comparé selon le schéma ci-dessus, nous obtiendrons une différence de 0,01, c'est-à-dire que nous pouvons la modifier. Mais ayant passé pour la modification normalisée aux chiffres 100.025, nous passerons en fait 100.03 et par conséquent nous obtiendrons l'erreur #1.
En général, par expérience, je suis arrivé à la conclusion qu'à chiffres égaux pour les modifications, il est préférablede comparer la différence des nombres normalisés avec zéro (ce que l'aide ne recommande pas de faire).
Script à vérifier :
Contrairement à OrderProfit() dans MT4, OrderCommission() enregistre des données qui ne sont pas arrondies en centimes.
SZZ Dans OrderPrint(), la commission est arrondie (comme dans l'interface graphique).
Contrairement à OrderProfit() dans MT4, OrderCommission() enregistre des données qui ne sont pas arrondies en centimes.
SZZ Dans OrderPrint(), la commission est arrondie (comme dans l'interface graphique).
Par conséquent, que dois-je faire pour obtenir la valeur correcte de OrderProfit()+OrderComission()+OrderSwap() ?
En conséquence, pour obtenir la valeur correcte de OrderProfit()+OrderComission()+OrderSwap(), que faut-il faire ?
Rien ! C'est la valeur la plus correcte. Grâce à cette commission, nous pouvons voir dans l'interface graphique que la commission totale diffère d'un centime de la somme des chiffres affichés par l'interface graphique.
Rien ! C'est la valeur la plus correcte. Grâce à cette commission, vous pouvez observer dans l'interface graphique que la commission totale diffère d'un centime de la somme des chiffres que l'interface graphique affiche.
Alors je ne le comprends pas du tout. Que voulez-vous dire par "OrderCommission() stocke des données non arrondies en centimes"? Où sont-ils arrondis ? Et comment sont-ils arrondis ?