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
Je recommande d'éviter cette conception
car le traitement du tick précédent peut prendre suffisamment de temps pour manquer l'arrivée du premier tick de la nouvelle barre.
respectivement, il est possible de manquer l'ouverture.
Il est préférable de se lier à l'heure d'ouverture de la barre, mais pour cela, vous devez sauvegarder l'heure précédente de la barre zéro, par exemple, pour la comparer à l'heure actuelle de la barre zéro.
Si c'est la même chose, il n'y a pas de nouvelle barre
Si c'est différent, alors au moins une nouvelle (prochaine) barre est ouverte, après quoi nous initialisons l'heure mémorisée de la barre zéro avec l'heure actuelle de la barre zéro.
Cette construction est plus fiable.
Cette question sera abordée dans un prochain article :
Pour autant que je sache, MT5 ne supporte que *1* (un) ordre s/l et t/p côté serveur *par instrument* (pas par transaction) et pas d'ordres OCO (les ordres OCO peuvent être utilisés pour simuler des ordres s/l et t/p par transaction, mais il y a là aussi une condition de course). A moins que les problèmes ci-dessus ne soient résolus, je ne m'engagerais pas pour plus de 100 $ dans le trading via MT5 (EAs simplistes à un seul ordre et à une seule période de temps, dans une seule direction, de type MA cross). Et je ne suis même pas sûr des 100 $.
Je recommande d'éviter cette conception
car le traitement du tick précédent peut prendre suffisamment de temps pour manquer l'arrivée du premier tick de la nouvelle barre.
respectivement, il est possible de manquer l'ouverture.
Il est préférable de se lier à l'heure d'ouverture de la barre, mais pour cela vous devez sauvegarder l'heure précédente de la barre zéro, par exemple, pour la comparer à l'heure actuelle de la barre zéro.
Si c'est la même chose, il n'y a pas de nouvelle barre.
Si c'est différent, au moins une nouvelle (prochaine) barre est ouverte, après quoi nous initialisons l'heure mémorisée de la barre zéro avec l'heure actuelle de la barre zéro.
Cette conception est plus fiable.
J'ai procédé de cette manière :
Compile mais le débogueur échoue.
Le chargement de C:\NProgram Files\NMetaTrader 5\NMQL5\NExperts\NExemples\NMyEA.ex5 a échoué.
Un nouvel article Le prototype du robot commercial est publié :
Auteur : Алексей Сергеев
Merci pour cet excellent article ! Je suis un nouveau venu mais j'ai une question à propos du code.
Dans la fonction void CExpertAdvisor::TrailingPosition(long dir,int TS), il y a une ligne :
sl=NormalSL(dir,apr,apr,TS,StopLvl) ; // calculer le Stop Loss
Devons-nous utiliser apr pour le deuxième et le troisième argument lorsque nous appelons NormalSL ? Je pensais que c'était le cas :
sl=NormalSL(dir,op,apr,TS,StopLvl) ;
puisque le deuxième argument devrait être le cours acheteur/vendeur pour la direction "spécifiée" (c.-à-d. la variable op) plutôt que la direction "inverse" (c.-à-d. la variable apr).
Merci de votre compréhension.
Dans la fonction void CExpertAdvisor::TrailingPosition(long dir,int TS), il y a une ligne :sl=NormalSL(dir,apr,apr,TS,StopLvl) ; // calculer le Stop Loss
Devons-nous utiliser apr pour le deuxième et le troisième argument lorsque nous appelons NormalSL ? Je pensais que c'était le cas :
sl=NormalSL(dir,op,apr,TS,StopLvl) ;
Non.
les deuxième et troisième arguments doivent être apr.
parce que le calcul du tral est dérivé du prix auquel la position sera clôturée. La fonction Bid pour l'achat et Ask pour la vente est correcte.
car le deuxième argument doit être le prix acheteur/vendeur pour la direction "spécifiée" (c'est-à-dire la variable op) plutôt que la direction "inverse" (c'est-à-dire la variable apr).
non.
les deuxième et troisième arguments doivent être apr.
car le calcul du tral est dérivé du prix auquel la position sera clôturée. La fonction Bid pour l'achat et Ask pour la vente est correcte.
Le tral doit être calculé à partir de la direction "inverse". Dans ce cas, apr.Merci pour votre réponse rapide ! J'ai pensé que je devais me tromper.
Puis-je également demander dans la fonction
pourquoi nous avons un "10" entre "dist" et "m_smbinf.TickValue()" dans la valeur de retour ? Je suppose que "dist" est le stop loss (en termes de pips), et "m_smbinf.TickValue()" est la valeur en dollars US par pip par lot pour la paire de devises. Je ne sais donc pas pourquoi nous multiplions un autre "10" entre les deux.
Je vous remercie de votre attention.
Article très utile. Merci beaucoup !