Discussion de l'article "Présentation de MQL5 : Comment écrire un simple Expert Advisor et un indicateur personnalisé" - page 3
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
Question 4 : L'article indique ce qui suit :
Mais pourquoi mettre zéro dans l'élément de structure request.tp? Parce que si nous avons un ordre d'achat en attente , request.tp=0 signifie que le prix de vente sera toujours inférieur au prix d'achat actuel. Et, selon moi, un ordre avec une telle valeur TP devrait soit être rejeté en raison de la valeur incorrectement spécifiée du paramètre TP, soit être immédiatement exécuté au prix Bid actuel après que le serveur ait accepté un tel ordre.
Question 5 : L'article indique ce qui suit :
Le manuel de référence MQL5 indique également que"SYMBOL_TRADE_STOPS_LEVEL est la marge minimale en pips par rapport au cours de clôture actuel pour la mise en place d'ordres stop". Il me semble que dans les deux cas, il s'agit de respecter l'inégalité
Pourquoi alors le code de l'Expert Advisor vérifie-t-il que la distance entre l'offre (la demande) et le StopLoss ne dépasse pas l'indentation minimale du StopLevel ?
Cette vérification est-elle nécessaire dans tous les cas ou s'agit-il d'une particularité de la mise en œuvre d'une stratégie particulière ? En bref, dois-je toujours vérifier la distance entre le cours acheteur (Ask) et le cours vendeur (StopLoss) lorsque je place un ordre en attente pour voir si la marge minimale du niveau d'arrêt est dépassée ?
Mais pourquoi mettre zéro dans l'élément de structure request.tp? Parce que si nous avons un ordre d'achat en attente , alors request.tp=0 signifie que le prix de vente sera toujours inférieur au prix d' offre actuel. Et, selon moi, un ordre avec une telle valeur TP devrait soit être rejeté en raison d'une valeur incorrecte du paramètre TP, soit être immédiatement exécuté au prix Bid actuel après que le serveur ait accepté un tel ordre.
En résumé, dois-je toujours vérifier la distance entre le Bid (Ask) et le StopLoss lorsque je place un ordre en attente pour voir si la marge minimale du StopLevel est dépassée ?
Il est toujours nécessaire de vérifier le niveau de prix SL/TP/Entry des ordres en attente pour la marge minimale dans les cas où vous travaillez avec des ordres très proches du marché.
Si vous travaillez avec des stops ou des ordres en attente dans un mode raisonnable et éloigné du marché (dizaines et centaines de points), vous pouvez ignorer cette vérification.
Vous devez toujours vérifier le niveau SL/TP/prix d'entrée des ordres en attente pour une indentation minimale lorsque vous travaillez avec des ordres très proches du marché.
Clarification de la question 5.1.
Le conseiller expert calcule trois niveaux pour chaque ordre en attente : Prix d'entrée/SL/TP.
Comme on ne sait pas à l'avance à quel point le niveau du prix d'entrée sera proche ou éloigné du prix actuel du marché, vérifier que le niveau du prix d'entrée est conforme à la marge minimale ne pose pas de problème.
Mais par rapport à quel niveau devrions-nous vérifier les deux autres niveaux SL/TP ? Il est quelque peu illogique de vérifier les niveaux SL/TP par rapport au prix actuel du marché, car le niveau du prix d'entrée peut être situé très loin du prix actuel du marché, et une telle vérification perd toute pertinence. C'est pourquoi j'ai prévu de vérifier la condition |Prix d'entrée-TP(SL)|>SYMBOL_TRADE_STOPS_LEVEL dans le Conseiller Expert. En général, le Conseiller Expert fonctionne bien avec de telles conditions, mais lorsque j'ai commencé à optimiser le code de l'EA, je me suis demandé si une telle vérification était nécessaire du point de vue du traitement des ordres en attente par le serveur. Le code de l'Expert Advisor n'est pas surchargé par la vérification de cette condition (la stratégie de l'Expert Advisor elle-même ne nécessite pas une telle vérification).
En d'autres termes, l'ordre en attente avec trois niveaux de prix d'entrée/SL/TP doit-il toujours vérifier les niveaux SL/TP pour la marge minimale ? Et si oui, doit-il être vérifié pour une marge minimale relative à quel niveau (prix) ?
Il manque la possibilité d'éditer mon message. Je vais donc l'ajouter ici :
= Pour chaque ordre en attente, l'Expert Advisor calcule trois niveaux indépendamment : Prix d'entrée/SL/TP. L'objectif de "placer un ordre en attente plus près du marché" n'est pas poursuivi. =
Le SL et le TP dans le niveau en attente sont évalués à partir du prix d'entrée afin qu'ils ne soient pas inférieurs à un niveau minimum par rapport à celui-ci.
Cela fonctionne de la même manière dans MT4.
Le SL et le TP dans le niveau en attente sont évalués à partir du prix d'entrée de manière à ce qu'ils soient au moins à un niveau minimum de celui-ci.
Cela fonctionne de la même manière dans MT4.
OK, maintenant je comprends tout. Je ne peux donc pas simplifier le code de l'EA ; au départ, tout a été fait conformément à l'article, c'est-à-dire correctement.
Et je ne suis pas familier avec MT4, donc de telles questions sont "d'un mannequin". Je vous remercie !
...Vérifiez toujours le niveau SL/TP/prix d'entrée des ordres en attente pour l'indentation minimale dans les cas où il y a du travail avec la mise en place d'ordres très proches du marché.
...Le SL et le TP dans le niveau en attente sont estimés à partir du prix d'entrée afin qu'ils ne soient pas inférieurs à un niveau minimum par rapport à celui-ci.
Question 6 : Il est clair qu'il faut vérifier l'écart minimum lors de la passation d' ordres en attente. Nous avons maintenant une question sur les particularités de la vérification de la marge minimale lors de la modification du TP/SL d'une position ouverte.
Situation : une position ouverte a un TP fixe et un SL "pull-up", qui se rapproche du TP fixe lorsque le prix évolue dans une direction favorable. Par analogie avec l'établissement d'un ordre en attente, chaque fois que l'Expert Advisor envoie un ordre pour modifier le TP/SL d'une position ouverte, il vérifie l'indentation minimale par rapport aux niveaux TP et SL.
Mais dans la description de la fonction PositionModify de la classe CTrade, il est spécifié que le paramètre tp est "Le nouveau prix auquel le Take Profit sera déclenché (ou, si le changement n'est pas nécessaire, la valeur précédente)".
Par conséquent, la question est la suivante : si un changement du niveau de TP précédemment défini n'est pas nécessaire, lors de l'envoi d'un ordre de modification du TP/SL d'une position ouverte, est-il nécessaire de vérifier la marge minimale de ce niveau de TP par rapport au prix actuel (réel) ? Ou bien, dans une telle situation, suffit-il de vérifier la marge minimale uniquement par rapport à la SL modifiable ?
En d'autres termes, lors de l'envoi d'un ordre de modification du TP/SL d'une position ouverte, est-il possible de ne pas vérifier la marge minimale par rapport au TP, si ce niveau de TP a déjà été fixé précédemment et n'est pas susceptible d'être modifié ? et dans l'ordre de modification, suffit-il de spécifier la valeur précédente du TP ?
Après avoir téléchargé le fichier "indicator_TP_fr.mql5", renommez-le en "indicator_TP.mql5", s'il vous plaît.