Discussion de l'article "Assistant MQL5 : Exécuter des ordres, des stop-loss et des prises de bénéfices sur les prix calculés. Extension de la bibliothèque standard"

 

Un nouvel article Assistant MQL5 : Exécuter des ordres, des stop-loss et des prises de bénéfices sur les prix calculés. Extension de la bibliothèque standard a été publié :

Cet article décrit l'extension MQL5 Standard Library, qui permet de créer des Expert Advisors, de passer des ordres, des Stop Loss et des Take Profits à l'aide de l'assistant MQL5 en fonction des prix reçus des modules inclus. Cette approche n'applique aucune restriction supplémentaire sur le nombre de modules et ne provoque pas de conflits dans leur travail commun.

Les experts générés dans l'assistant MQL5 sont basés sur l'instance de classe CExpert. Le pointeur vers l'objet de la classe CExpertSignal est déclaré dans cette classe. Plus loin dans l'article, cet objet est appelé le signal principal par souci de concision. Le signal principal contient des pointeurs vers les filtres subordonnés (les modules de signal sont les héritiers de la classe CExpertSignal).

S'il n'y a pas de positions et d'ordres ouverts, l'Expert se réfère au signal principal pour rechercher une opportunité d'ouvrir une position sur un nouveau tick. Le signal principal interroge les filtres subordonnés un par un et calcule la prévision moyenne pondérée (direction) sur la base de la prévision obtenue. Si sa valeur dépasse le seuil (valeur du paramètre m_threshold_open dans le signal principal), les paramètres de commande et les résultats de vérification des conditions de type bool sont transmis à l'Expert. Si ces conditions sont remplies, soit une position sur le prix du marché est ouverte, soit un ordre en attente à une certaine distance de celui-ci (voir Fig. 1). Les Stop Loss ne peuvent être exécutés qu'à une distance fixe. Les indentations de prix d'ouverture, Les Stop Loss et Take Profit du prix du marché sont spécifiés dans les paramètres Expert et stockés dans le signal principal, dans les variables m_price_level, m_stop_level et m_take_level respectivement.

Ainsi, actuellement, deux conditions doivent être remplies pour qu'une commande soit passée :

  1. Aucune position ouverte pour le symbole actuel ;
  2. La valeur absolue de la prévision moyenne pondérée dépasse la valeur seuil, ce qui signifie qu'une tendance est plutôt forte).

Fig. 1. Modèle de prise de décision lors de l'entrée sur le marché

Fig. 1. Modèle de prise de décision lors de l'entrée sur le marché

Le modèle actuel de prise de décision sur la figure 1 limite considérablement le domaine d'application de l'assistant MQL5. Les stratégies avec une valeur fixe de Stop Loss sont rarement efficaces dans le trading à long terme en raison de la volatilité variable. Les systèmes utilisant des ordres en attente nécessitent généralement de les exécuter sur des niveaux calculés dynamiquement.

Auteur : Andrey Shpilev