MTC Combo : Optimisez votre EA sur MetaTrader 5

Mike 2017.01.20 01:56 13 0 0
Pièce jointe

Salut à tous les traders ! Aujourd'hui, parlons de l'optimisation d'un Expert Advisor (EA) sur MetaTrader 5, en particulier du MTC Combo. Nous allons voir ensemble comment intégrer une réseau de neurones pour améliorer vos stratégies de trading.

Objectif de l'EA : Imaginons que nous avons un système de trading de base (STB). L'idée est de concevoir et de former un réseau de neurones (RN) pour qu'il puisse compléter le STB en réalisant des actions que celui-ci ne peut pas effectuer. Au final, nous allons obtenir un système de trading combinant ces deux éléments, le STB et le RN, de manière complémentaire.

Pas besoin de réinventer la roue. Pourquoi apprendre à quelqu'un à courir vite si une voiture est là, ou à voler si un hélicoptère existe déjà ? Si nous avons un système de trading basé sur des tendances, il faut enseigner au réseau de neurones une stratégie de contre-tendance. Le système de tendances ne peut pas trader pendant des phases de consolidation (flats) et n'est pas toujours efficace pour identifier les retracements et les renversements. Bien sûr, on peut utiliser deux stratégies de trading (tendance et contre-tendance) sur un même graphique, mais pourquoi ne pas former un réseau de neurones pour qu'il renforce notre système de trading ?

Pour cela, nous avons développé un réseau de neurones à deux couches, avec deux perceptrons dans la couche inférieure et un perceptron dans la couche supérieure. Le réseau de neurones peut se trouver dans l'un des trois états suivants :

  1. Entrée longue
  2. Entrée courte
  3. Indéfini

Le troisième état signifie que le contrôle est transféré au STB, tandis que les signaux de trading sont générés par le réseau dans les deux premiers états.

Étapes de formation du réseau de neurones : La formation du réseau de neurones se divise en trois étapes, avec un perceptron formé à chaque étape. Le STB optimisé est présent à chaque étape pour guider les perceptrons.

La formation séparée des perceptrons avec l'algorithme génétique est nécessaire en raison d'un inconvénient de cet algorithme, à savoir le nombre limité de paramètres pouvant être sélectionnés. Cela dit, chaque phase de formation est cohérente et le réseau de neurones reste de taille raisonnable, donc l'ensemble du processus d'optimisation se déroule dans un temps acceptable.

La première étape, avant la formation du RN, est l'optimisation du STB.

Pour éviter toute confusion, le numéro de l'étape est spécifié dans l'entrée de l'EA avec l'identifiant pass. Les identifiants d'entrée correspondant au numéro d'étape se terminent par ce même numéro.

Préparatifs pour l'optimisation et la formation du RN :

  • Définissez le dépôt initial dans le testeur à 100 € (pour éviter un appel de marge artificiel pendant l'optimisation).
  • Optimisez le paramètre Balance + max Sharpe Ratio.
  • Choisissez le type d'optimisation Algorithme génétique rapide.

Ensuite, allez dans l'onglet des entrées des propriétés de l'EA. Définissez la taille des lots des positions ouvertes en attribuant la valeur de 0,01 à l'identifiant lots.

L'optimisation doit être effectuée selon le modèle Open prices only, choisi pour sa rapidité. De plus, l'algorithme de l'EA gère les nouvelles barres.

Première étape : optimisation du STB :

Définissez pass à 1. Optimisez uniquement les entrées correspondant à la première étape, avec tous leurs identifiants se terminant par un. Par conséquent, activez les marques d'optimisation sur celles-ci et retirez-les des autres paramètres.

tp1 - prise de profit du STB. Optimisé avec des valeurs de 100 à 1000 par pas de 10.
sl1 - stop loss du STB. Optimisé avec des valeurs de 100 à 1000 par pas de 10.
p1 - période de l'oscillateur CCI appliqué dans le STB. Optimisé avec des valeurs de 3 à 100 par pas de 1.

Démarrez la formation via l'optimisation par algorithme génétique.

Deuxième étape : formation du perceptron responsable des positions courtes :

Définissez l'entrée 'pass' à 2 (pour qu'elle corresponde au numéro de l'étape). Retirez les marques d'optimisation définies à l'étape précédente. Enregistrez les entrées obtenues pendant la phase précédente dans un fichier, au cas où.

Définissez les marques d'optimisation pour les paramètres de la deuxième étape (identifiants se terminant par deux) :

x12, x22, x32, x42 - ratios de poids du perceptron reconnaissant les positions courtes. Optimisés avec des valeurs de 0 à 200 par pas de 1.
tp2 - prise de profit des positions ouvertes par le perceptron. Optimisé avec des valeurs de 100 à 1000 par pas de 10.
sl2 - stop loss des positions ouvertes par le perceptron. Optimisé avec des valeurs de 100 à 1000 par pas de 10.
p2 - période des valeurs de différence de prix analysées par le perceptron. Optimisé avec des valeurs de 3 à 100 par pas de 1.

Démarrez la formation via l'optimisation par algorithme génétique.

Troisième étape : formation du perceptron responsable des positions longues :

Définissez l'entrée 'pass' à 3 (pour qu'elle corresponde au numéro de l'étape). Retirez les marques d'optimisation de la phase précédente. Enregistrez les entrées obtenues durant la phase précédente dans un fichier, au cas où.

Définissez les marques d'optimisation pour les paramètres de la troisième étape (identifiants se terminant par trois) :

x13, x23, x33, x43 - ratios de poids du perceptron reconnaissant les positions longues. Optimisés avec des valeurs de 0 à 200 par pas de 1.
tp3 - prise de profit des positions ouvertes par le perceptron. Optimisé avec des valeurs de 100 à 1000 par pas de 10.
sl3 - stop loss des positions ouvertes par le perceptron. Optimisé avec des valeurs de 100 à 1000 par pas de 10.
p3 - période des valeurs de différence de prix analysées par le perceptron. Optimisé avec des valeurs de 3 à 100 par pas de 1.

Démarrez la formation via l'optimisation par algorithme génétique.

Quatrième étape finale :

Formation de la première couche (le perceptron de la couche supérieure) :

Définissez l'entrée 'pass' à 4 (pour qu'elle corresponde au numéro de l'étape). Retirez les marques d'optimisation de l'étape précédente. Enregistrez les entrées obtenues durant la phase précédente dans un fichier, au cas où.

Définissez les marques d'optimisation pour les paramètres de la quatrième étape (identifiants se terminant par quatre) :

x14, x24, x34, x44 - ratios de poids du perceptron de la première couche. Optimisés avec des valeurs de 0 à 200 par pas de 1.
p4 - période des valeurs de différence de prix analysées par le perceptron. Optimisé avec des valeurs de 3 à 100 par pas de 1.

Démarrez la formation via l'optimisation par algorithme génétique.

C'est tout ! Le réseau de neurones est maintenant formé.

L'EA possède également un autre identifiant non optimisable 'mn' - numéro magique qui permet au système de distinguer ses propres ordres parmi ceux ouverts manuellement ou par d'autres EAs. Ce numéro magique doit être unique.

P.S.

  • La taille du dépôt initial est définie comme un drawdown absolu multiplié par deux (marge de sécurité).
  • Le code source de l'EA n'a pas été optimisé.
  • Changez le contenu de la fonction basicTradingSystem() si vous souhaitez remplacer le STB intégré par un autre système de trading.
  • Ré-optimisez l'EA durant les week-ends si les résultats de la semaine précédente étaient non rentables. Les pertes signalent des changements sur le marché et la nécessité de ré-optimisation. Si l'EA est rentable, aucune ré-optimisation n'est nécessaire, car le robot reconnaît très bien les schémas du marché.
Liste
Commentaire 0