English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Assistant MQL5 : Nouvelle version

Assistant MQL5 : Nouvelle version

MetaTrader 5Trading | 22 décembre 2021, 16:50
187 0
MetaQuotes
MetaQuotes

Le terminal MetaTrader 5 continue de s'améliorer et d'acquérir de nouvelles fonctionnalités. La nouvelle version 439 de MetaTrader 5 contient l’assistant MQL5 mis à jour, qui permet de créer des Expert Advisors basés sur des règles de trade plus flexibles. Dans cet article, nous décrivons les nouvelles possibilités de l'assistant MQL5 et expliquons les changements dans l'architecture des Expert Advisors générés à l'aide de cette application.


Cadre

À l'origine, l'assistant MQL5 a été conçu comme un outil pratique pour aider les traders à créer facilement des programmes dans MQL5. Déjà dans la première version de l'assistant MQL5, vous pouviez rapidement créer un Expert Advisor prêt à l'emploi sous la forme d'un ensemble de modules simples, obtenant son code source en MQL5. Ce qui est important, vous n'avez pas besoin de connaître le langage MQL5 - tout ce dont vous avez besoin est de lire l'article Créer votre propre Expert Advisor dans l'assistant MQL5.

Un Expert Advisor généré par l'Assistant contient trois modules :

Chaque module EA est basé sur une certaine classe et offre de nombreuses opportunités pour modifier le comportement de votre Expert Advisor.

La Standard Library comprend un ensemble de classes fonctionnellement complètes et prêtes à l'emploi pour mettre en œuvre divers mécanismes de gestion monétaire, de maintenance des positions ouvertes et de génération de signaux de trading.

Cette approche permet de créer des robots de trading basés sur des modules éprouvés et fonctionnant correctement. Il vous suffit de suivre quelques étapes et de spécifier les paramètres nécessaires. Mais l'expérience montre que même de bons exemples, expliquant les principes d'écriture de classes personnalisées, ne sont pas toujours en mesure d'aider les programmeurs novices de MQL5. 

Un autre inconvénient de la version précédente de l'assistant MQL5 est que pour implémenter un nouvel algorithme de trading légèrement modifié, vous devez écrire une nouvelle classe.

Fort de cette expérience et des commentaires reçus des utilisateurs, MetaQuotes a décidé de créer une version avancée de l'assistant MQL5 avec davantage de fonctions.


Un nouveau concept de génération de signaux de trading

La principale pierre d'achoppement de la version précédente de l'assistant MQL5 était liée aux problèmes pouvant survenir lors de la création de ses propres signaux de trading. Par conséquent, lors du développement de la nouvelle version de l'assistant, l'accent a été mis sur la simplification de la création de signaux de trading combinés basés sur des principes simples.

À cette fin, les modifications suivantes ont été apportées à la classe de base du générateur de signaux de trading (ci-après dénommé le Signal) :

  • Tout Signal (dérivé de la classe CExpertSignal) est basé sur des prévisions d’« Advisors » qui donnent leur avis sur l'éventuel mouvement de prix. Ces Advisors, à leur tour, sont également dérivés de la classe CExpertSignal et peuvent donc avoir leurs propres Advisors. Le nombre d’Advisors dans chaque Signal peut aller jusqu'à 64.
  • De nouvelles méthodes ont été ajoutées à la classe CExpertSignal, qui implémentent le « vote » sur la direction du mouvement des prix. De plus, il contient un nouveau mécanisme pour participer à un tel "vote".
  • Pour augmenter la flexibilité de prise de décision, chaque Signal impliqué dans la prise de décision (n'oubliez pas que les « Advisors » sont aussi des signaux), peut désormais recevoir des informations de ses propres instruments de marché (différents des actuels) et/ou de son propre calendrier.

Ainsi, la décision d'entrer sur le marché dans une direction ou dans une autre, peut désormais être prise « collectivement », c'est-à-dire en tenant compte de « l'avis réfléchi » de chaque Advisor.

Le Signal « vote » sur la direction du mouvement des prix en fonction d'algorithmes intégrés de détection de modèles de marché (spécifiques à ce Signal). Par exemple, un signal stochastique est capable d'identifier un renversement, une divergence avec le prix, etc.

La bibliothèque standard comprend une vingtaine de signaux déjà prêts à l'emploi basés sur divers indicateurs.


Un nouveau mécanisme pour prendre des décisions de trading

Le mécanisme de prise de décisions de trading par le Signal peut se présenter sous la forme des dispositions clés suivantes :

  • Chaque signal a son propre ensemble de modèles de marché (une combinaison de valeurs de prix et d'indicateurs).
  • Chaque modèle de marché a une valeur pondérale de 1 à 100. Plus la valeur est élevée, plus le modèle est fort.
  • Chaque modèle génère une prévision du mouvement des prix dans une certaine direction.
  • En comparant les prévisions reçues des modèles appliqués, la plus forte est sélectionnée et une prévision est donnée dans la plage de -100 à +100, où le signe détermine la direction du mouvement prévu (négatif — le prix baissera, positif — le prix augmentera). Une valeur absolue correspond à la force du meilleur modèle trouvé. Ce résultat est envoyé au vote général.
  • La prévision de chaque Advisor au sein du module va au vote avec le facteur de pondération de 0 à 1,0, qui est spécifié dans ses paramètres (« Poids »).
  • Le résultat du vote est un nombre de -100 à +100, où le signe détermine la direction du mouvement prévu, et la valeur absolue caractérise la force du signal. Il est calculé comme la moyenne arithmétique des prévisions pondérées de tous les Advisors du module. Ce résultat est une prévision du signal, et la valeur absolue est une indication de la force du signal.

Les configurations de chaque Expert Advisor généré contiennent deux paramètres — le seuil pour prendre une décision d'ouvrir ou de fermer une position (ThresholdOpen et ThresholdClose) — qui peuvent avoir une valeur de 0 à 100. Si la force d'un signal dépasse la valeur seuil, une décision est prise de mener une opération de trade.

L'EA créé à l'aide de l'assistant MQL5 se compose de trois parties dont la plus importante est l’en-tête qui contient le module de génération de signaux de trading. Ensuite, les processus dans le module de signaux peuvent être représentés comme suit :



La figure montre que le module Signal peut contenir deux blocs - un bloc de modèles de marché et un bloc Advisors. Le bloc de modèles produit des prévisions à partir de chaque modèle, après quoi le plus fort d'entre eux est choisi. Les prévisions des Advisors (autres signaux) sont multipliées par le poids correspondant et les valeurs résultantes sont additionnées lors du vote pour produire la prévision moyenne arithmétique. Dans ce cas, le module Signal a produit -36,6 = (-100+60-54)/3 pour la situation actuelle. Cela signifie la prévision de vente avec la force absolue de 36.6.

Considérez le mécanisme de prise de décision sur deux exemples simples.

Supposons qu'il existe un Expert Advisor avec ThresholdOpen=20 et ThresholdClose=90. Les modules de signaux basés sur MA avec un poids de 0,4 et Stochastique avec un poids de 0,8 sont impliqués dans la prise de décision de trade. Considérez deux options de signaux de trading obtenus :

  • Option 1.

    Le prix a catapulté en flèche vers un indicateur MA à la hausse. Cela correspond à l'un des modèles de marché impliquant une croissance des prix, qui est intégré dans le module MA. Sa signification est de 100. Dans le même temps, l'oscillateur stochastique a baissé et a formé une divergence avec le prix. Il s'agit d'un modèle impliquant une baisse des prix, qui est implémenté dans le module Stochastique . La signification de ce modèle est de 80.

    Calcul du résultat du vote final. La prévision pondérée, obtenue à partir du module MA, est calculée comme suit : 0,4 * 100 = 40. La prévision pondérée du module stochastique est calculée comme suit : 0,8 * (-80) = -64. La prévision finale est calculée comme la moyenne arithmétique des deux prévisions pondérées : (40 - 64)/2 = -12. C'est un signal de vente avec la puissance conditionnelle de 12. La valeur seuil de 20 n'a pas été atteinte. En conséquence, l'opération de trade ne sera pas menée.

  • Option 2.

    Le prix a chuté en flèche descendante vers un indicateur MA à la hausse. Cela correspond à l'un des modèles de marché impliquant une croissance des prix, qui est intégré dans le module MA. Sa signification est de 10. Dans le même temps, l'oscillateur stochastique a baissé et a formé une divergence avec le prix. Il s'agit d'un modèle impliquant une baisse des prix, qui est implémenté dans le module Stochastique . La signification de ce modèle est de 80.

    Calcul du résultat du vote final. La prévision pondérée, obtenue à partir du module MA, est calculée comme suit : 0,4 * 10 = 4. La prévision pondérée du module stochastique est calculée comme suit : 0,8 * (-80) = -64. La prévision finale est calculée comme la moyenne arithmétique des deux prévisions pondérées : (4 - 64)/2 = -30. C'est un signal de vente avec la puissance conditionnelle de 30. La valeur seuil de 20 a été atteinte. En conséquence, le résultat est un signal pour ouvrir une position courte.



Figure 1. Un exemple de modèles de marché dans le graphique

La figure montre les modèles de marché décrits dans les exemples :

a) La divergence du prix et l'oscillateur stochastique sont utilisés dans les options 1 et 2.
b) Le prix qui a traversé l'indicateur MA
de bas en haut - est utilisé dans l'option 1.
c) Le prix qui a traversé MA de haut en bas - est utilisé dans l'option 2.


Combinaison de signaux dans l'EA

Pour créer notre propre Expert Advisor, il faut tout d'abord décider sur quel instrument et dans quel délai on va trader. Deuxièmement, nous devons sélectionner les signaux sur la base d'indicateurs que nous utiliserons pour le trading.

Nous aurons les conditions suivantes pour notre exemple :

  1. Le symbole tradé est EURUSD. Notre délai est M10.
  2. Les signaux utilisés :
    • EMA('EURUSD',M10,31) - signaux basés sur une moyenne mobile exponentielle ;
    • Stochastique('EURUSD',M10,8,3,3) - signaux basés sur l'oscillateur stochastique ;
    • EMA('EURUSD',H1,24) - signaux basés sur une moyenne mobile exponentielle à partir d'un délai différent ;
    • Stochastique('EURJPY',H4,8,3,3) - signaux basés sur l'oscillateur stochastique d'un symbole et d'un délai différents ;
    • IntradayTimeFilter - un filtre par heure et par nombre de jours de la semaine.


Création d'un robot de trading dans le nouvel assistant MQL5

Le code source d'Expert Advisor est généré à l'aide de l’assistant MQL5 dans MetaEditor.

Les classes de base des stratégies de trading se trouvent dans terminal_data_folder\MQL5\Include\Expert\. Des algorithmes prêts à l'emploi pour les classes de signaux de trading, les classes de positions ouvertes trailing et les classes d'argent et de gestion des risques se trouvent dans les sous-dossiers Signal, Trailing et Money. L'assistant MQL5 analyse les fichiers de ces dossiers et les utilise pour générer le code d'Expert Advisor.

Classes de base pour l'assistant MQL5

Figure 2. Classes de base pour l'assistant MQL5

Pour lancer l'assistant MQL5, vous devez cliquer sur « Nouveau » dans la barre d'outils ou sélectionner « Nouveau » dans le menu « Fichier » (ou appuyer sur Ctrl+N) :

Figure 2. Lancement de l'assistant MQL5

Figure 3. Lancement de l'assistant MQL5

Sélectionnez ensuite le type de programme que vous souhaitez créer. Dans notre cas, sélectionnez l'option « Expert Advisor (générer) » :

Figure 3. Sélection du type de programme

Figure 4. Sélection du type de programme


Étape 1. Propriétés générales de l'Expert Advisor

Ensuite, la boîte de dialogue s'ouvre, dans laquelle vous pouvez définir les propriétés générales d'Expert Advisor :

Figure 4. Propriétés générales d'un Expert Advisor

Figure 5. Propriétés générales d'un Expert Advisor

Précisez le nom de votre Expert Advisor, le nom de l'auteur et le lien vers votre site web dans les champs « Nom », « Auteur » et « Lien » (respectivement).

Expert Advisor dispose également des paramètres d'entrée suivants :

  • Symbole (le type de chaîne) - le symbole sur lequel l'EA s'exécute ;
  • TimeFrame (le type ENUM_TIMEFRAMES) - le délai sur lequel l'EA s'exécute.

Par défaut, les deux options sont configurées sur « actuel » (c'est-à-dire que l'Expert Advisor sera testé et tradera sur n'importe quel symbole/délai).

Mais est-ce toujours aussi bon ? Par exemple, vous exécutez accidentellement un Expert Advisor configuré pour le trading intraday sur EURUSD (en outre, il utilise la confirmation d'une paire croisée), sur un graphique hebdomadaire de AUDNZD. Cela n’augure rien de bon apparemment.

Par conséquent, il serait préférable de configurer les paramètres nécessaires. À l'étape suivante, sélectionnez le type de signaux de trade sur lesquels l'EA tradera. Pour aller à la sélection des symboles, cliquez sur « Suivant ».


Étape 2. Sélectionnez les modules de signaux de trade

L'algorithme d'ouverture et de fermeture des positions est déterminé par les modules de signaux de trade. Les modules de signaux de trade contiennent des règles d'ouverture/fermeture/inversion de positions.

Un Expert Advisor peut utiliser simultanément jusqu'à 64 modules de signaux de trading différents (ou identiques, mais avec des paramètres différents).

Figure 5. Paramètres des signaux EA (début).

Figure 6. Paramètres des signaux EA (début).

La bibliothèque standard contient des modules de signaux de trading prêts à l'emploi :

  1. Signaux de l'indicateur 'Accelerator Oscillator' ;
  2. Signaux de l'indicateur « Moyenne mobile adaptative » ;
  3. Signaux de l'indicateur « Awesome Oscillator » ;
  4. Signaux de l'oscillateur « Pouvoir baissier » ;
  5. Signaux de l'oscillateur « Pouvoir haussier » ;
  6. Signaux de l'oscillateur « Indice chaîne des matières premières » ;
  7. Signaux de l'oscillateur « DeMarker » ;
  8. Signaux de l'indicateur « Moyenne mobile exponentielle double » ;
  9. Signaux de l'indicateur « Enveloppes » ;
  10. Signaux de l'indicateur « Moyenne mobile adaptative fractale » ;
  11. Signaux de filtre par heure et par jours de la semaine ;
  12. Signaux de l'oscillateur « Moyenne mobile Convergence/Divergence » ;
  13. Signaux de l'indicateur « Moyenne mobile » ;
  14. Signaux de l'indicateur « SAR Parabolique » ;
  15. Signaux de l'oscillateur « Indice de force relative » ;
  16. Signaux de l'oscillateur « Indice de vigueur relative » ;
  17. Signaux d'oscillateur « Stochastique » ;
  18. Signaux de l'oscillateur « Moyenne exponentielle triple » ;
  19. Signaux de l'indicateur « Moyenne mobile exponentielle triple » ;
  20. Signaux de l'oscillateur « Plage Williams en pourcentage ».


Figure 6. Sélection des signaux

Figure 7. Sélection des signaux

Selon nos « Termes de référence », nous choisissons d'abord « Signaux de l'indicateur 'Moyenne mobile’ ».

Configurez les paramètres nécessaires (PeriodMA et Method). Double-cliquez sur le champ « Nom » pour exclure de l'optimisation (par défaut tous les paramètres du signal sont marqués comme paramètres d'entrée) tous les paramètres sauf le Poids.

Ici, nous devons mentionner les champs « Symbole » et « TimeFrame ». Ces champs doivent être remplis si les configurations appropriées du signal sont différents des paramètres actuels. Pour un signal, les configurations courantes sont celles de « l'intelligence supérieure » (en l'occurrence, de l'Expert Advisor).

Figure 7. Configuration des paramètres de signal

Figure 8. Configuration des paramètres du signal

Ajoutez les signaux restants et configurez les paramètres nécessaires. Pour l'optimisation, ne laissez que le paramètre Poids pour tous les signaux.

La configuration des signaux est terminée. Cliquer sur Suivant pour continuer.

Figure 8. Paramètres des signaux EA (fin)

Figure 9. Paramètres des signaux EA (fin)


Étape 3. Sélection du module des positions trailing ouvertes

L'étape suivante consiste à sélectionner l'algorithme des positions trailing ouvertes (Trailing Stop). L'utilisation de trailing vous permet d'économiser vos gains de bénéfices.

La configuration de ce module est décrite en détail dans l'article sur l’Assistant MQL5 : Création d'Expert Advisors sans programmation. Dans notre cas, nous ne feront l’usage de trailing.

Figure 9. Sélection de l'algorithme trailing de position

Figure 10. Sélection de l'algorithme trailing de position


Étape 4. Sélection du module de gestion monétaire et des risques

À la dernière étape, vous devez sélectionner le système de gestion monétaire et des risques, qui sera utilisé dans votre Expert Advisor. La configuration de ce module est décrite en détail dans l'article sur l’Assistant MQL5 : Création d'Expert Advisors sans programmation. Dans notre cas, nous utiliserons un lot fixe.


Figure 10. Sélection de l'algorithme de gestion monétaire

Figure 11. Sélection de l'algorithme de gestion monétaire

Ça y est. Cliquez sur « Terminer ».


Vérification de l’Expert Advisor créé dans le testeur de stratégie de MetaTrader 5

Si tous les composants de la Bibliothèque standard sont présents, le code de l'Expert Advisor généré se compile avec succès. Le meilleur ensemble de paramètres d'Expert Advisor peut être trouvé après optimisation dans le testeur de stratégie de MetaTrader 5.

Pour l'optimisation de l'EA, sélectionnez la période du 01.01.10 au 01.01.11, exécutez-la en deux étapes.

La première étape : « Sélection des poids de signal, des seuils de déclenchement des conditions d'entrée/sortie et des niveaux de trade. »

Figure 11. Paramètres de l'optimisation de l'Expert Advisor

Figure 12. Paramètres de l'optimisation de l'Expert Advisor

Voici le résultat de la meilleure exécution d'optimisation.

Figure 12. Résultats de l'optimisation de l'Expert Advisor

Figure 13. Résultats de l'optimisation de l'Expert Advisor

Nous avons déjà de bons résultats (en termes de profit et d’encaissement maximum). Nous ne devons pas oublier que nous « tradons » avec un lot fixe.

Mais essayons d'améliorer encore les résultats. Pour cela, nous avons un autre signal (nous n'avons pas encore utilisé ses paramètres). Les valeurs trouvées en optimisant les paramètres décrivent un modèle de marché reconnu par l'Expert Advisor.

Mais disons que le modèle de marché qui en résulte ne fonctionne pas toujours aussi bien. Essayons d'appliquer le filtre temporel aux résultats d'optimisation.

Pour cela, optimisons l'Expert Advisor en fonction du paramètre « Mauvaises heures » des Signaux « IntradayTimeFilter ». Le paramètre « Mauvaises heures » est un bitmap de 24 bits (le nombre d'heures par jour). Chaque bit du masque de bits correspond de manière unique à l'une des heures (nombre de bits dans le masque et nombre d'heures dans une correspondance de jour). La valeur de tout bit égal à 1 remplacera tout résultat de vote si le numéro de l'heure actuelle est égal au numéro de ce bit (c'est-à-dire que l'heure est considérée comme mauvaise pour le trading).

Pour parcourir toutes les combinaisons possibles de « bonnes » et « mauvaises » heures, nous allons optimiser le paramètre de 0 à 2^24-1 (sous la forme naturelle 16 777 215) à un pas égal à 1.

Figure 13. Paramètres de l'optimisation de l'Expert Advisor

Figure 14. Paramètres de l'optimisation de l'Expert Advisor

À la suite de l'optimisation, nous obtenons 11 665 415. Pour comprendre ce que cela signifie, exprimons-le sous une forme binaire :

  •  1011001000000000000000111 - c'est-à-dire que les nombres de « mauvaises » heures sont 0, 1, 2, 17, 20, 21 et 23.

Voici les paramètres de l'Expert Advisor après toutes les optimisations.

Figure 14. Propriétés de l'Expert Advisor

Figure 15. Propriétés de l’Expert Advisor

Trouvez ci-joint le rapport d'un test unique contenant les meilleurs paramètres. Le bénéfice est plus élevé et l’encaissement est plus faible. On peut conclure qu'après le filtrage temporel, les résultats du système de trading à la période historique se sont améliorés.


Conclusion

L'utilisation des classes de stratégies de trading facilite considérablement la création de robots pour tester les idées de trading directement dans MetaEditor à l'aide de l’assistant MQL5 . Désormais, l'intégralité du code source de l'Expert Advisor peut être construit sur la base de la combinaison de modules prêts à l'emploi de la bibliothèque standard ou en utilisant vos propres modules.

Traduit du russe par MetaQuotes Ltd.
Article original : https://www.mql5.com/ru/articles/275

Fichiers joints |
sample.mq5 (8.75 KB)
Contrôles graphiques personnalisés. Partie 1 : Création d'un contrôle simple Contrôles graphiques personnalisés. Partie 1 : Création d'un contrôle simple
Cet article couvre les principes généraux de développement des contrôles graphiques. Nous allons préparer des outils pour un travail rapide et pratique avec des objets graphiques, analyser un exemple de création d'un champ simple de saisie de texte ou de données numériques ainsi que les manières de l'utiliser.
Utilisation des ressources en MQL5 Utilisation des ressources en MQL5
Les programmes MQL5 automatisent non seulement les calculs de routine, mais peuvent également créer un environnement graphique complet. Les fonctions de création de contrôles véritablement interactifs sont désormais pratiquement de la même richesse que celles des langages de programmation classiques. Si vous souhaitez écrire un programme autonome à part entière en MQL5, utilisez les ressources qu'il contient. Les programmes avec des ressources sont plus faciles à maintenir et à distribuer.
Contrôles graphiques personnalisés. Partie 2. Bibliothèque de contrôle Contrôles graphiques personnalisés. Partie 2. Bibliothèque de contrôle
Le deuxième article de la série « Contrôles graphiques personnalisés » présente une bibliothèque de contrôles permettant de traiter les principaux problèmes d'interaction entre un programme (Expert Advisor, script, indicateur) et un utilisateur. La bibliothèque contient un grand nombre de classes (CInputBox, CSpinInputBox, CCheckBox, CRadioGroup, CVSсrollBar, CHSсrollBar, CList, CListMS, CComBox, CHMenu, CVMenu, CHProgress, CDialer, CDialerInputBox, CTable) et des exemples de leur utilisation.
Les principes fondamentaux de tests dans MetaTrader 5 Les principes fondamentaux de tests dans MetaTrader 5
Quelles sont les différences entre les trois modes de test dans MetaTrader 5, et que faut-il particulièrement rechercher ? Comment se déroule le test d'un EA, tradant simultanément sur plusieurs instruments ? Quand et comment les valeurs des indicateurs sont-elles calculées lors des tests, et comment les événements sont-ils gérés ? Comment synchroniser les barres de différents instruments lors des tests en mode « prix d’ouverture uniquement » ? Cet article vise à apporter des réponses à ces questions et à bien d'autres.