Aide MetaTrader 5Trading Algorithmique, Robots de TradingTypes d'Optimisation

Types d'Optimisation

Deux types d'optimisations sont disponibles dans le testeur. Vous pouvez sélectionner celui de votre choix dans l'onglet Paramètres du Testeur de Stratégie.

Algorithme Lent Complet

Dans ce mode, les passes d'optimisation sont effectuées pour toutes les combinaisons possibles de valeurs des variables d'entrées sélectionnées dans l'onglet correspondant.

Cette méthode est la plus précise. Cependant, exécuter l'Expert Advisor avec toutes les combinaisons possibles prend énormément de temps.

Algorithme Rapide Génétique

Ce type d'optimisation est basé sur un algorithme génétique de recherche de la meilleure valeur des paramètres d'entrée. Ce type d'optimisation est beaucoup plus rapide et est quasiment de la même qualité. L'optimisation lente complète qui nécessiterait plusieurs années peut être effectuée en quelques heures grâce à l'algorithme génétique.

Chaque individu a un ensemble de gènes correspondant à l'ensemble de ses paramètres. L'optimisation génétique est basée sur la sélection constante des paramètres les plus "adaptés" (les valeurs qui donnent le meilleur résultat). De manière générale, l'algorithme peut être représenté de la façon suivante :

  • Depuis le nombre total de toutes les combinaisons possibles de paramètres, 2 populations (ensembles) sont sélectionnées par un échantillonnage aléatoire ;
  • Les deux ensembles sont testés et celui ayant obtenu les meilleurs résultats (selon le critère d'optimisation) est conservé ;
  • Les membres de l'ensemble sont croisés les uns avec les autres de façon aléatoire, générant des mutations aléatoires et des inversions de paramètres ;
  • Les descendants sont triés suivant les meilleurs résultats, et le croisement se répète ;
  • Les opérations de tri et de croisement sont répétées tant que les résultats s'améliorent (le meilleur résultat parmi les descendants est meilleur que le meilleur de ses parents). Si les valeurs du critère d'optimisation ne se sont pas améliorées durant les derniers croisements (générations), l'optimisation est terminée.

Nombre d'Exécutions de Tests

Durant l'optimisation génétique, le nombre d'exécution de tests est bien inférieur, ce qui fournit une optimisation plus rapide. Après le lancement de l'optimisation génétique, une estimation du nombre d'exécution de tests est affichée dans l'onglet Paramètres. Elle est calculée suivant la formule suivante :

Taille de la population * (Nombre inconditionnel de générations + Nombre de générations pour l'estimation de convergence)

avec :

  • La taille de la population est calculée suivant le nombre possible de combinaisons des paramètres d'optimisation, pouvant varier de 64 à 256 ;
  • Le nombre inconditionnel de générations peut varier de 15 à 31. Il est défini par la présence d'amélioration des critères d'optimisation. 15 générations sont testées dans toutes les optimisations. Si une génération dans la gamme de 15 à 31 n'améliore pas le critère d'optimisation, un test supplémentaire est lancé pour l'estimation de la convergence.
  • Le nombre de générations pour l'estimation de convergence est calculé comme étant un tiers du nombre inconditionnel de générations. Si le nombre inconditionnel de générations est 18 (La 17ème génération a montré les meilleurs résultats et aucune amélioration n'est sortie pour la 18ème génération) alors 5 nouvelles générations seront testées : la 18ème génération n'a montré aucune amélioration, et pour l'estimation de la convergence, nous avons besoin de 18/3 = 6 générations sans aucune amélioration du critère d'optimisation. Si aucune amélioration n'est trouvée par le nombre spécifié de générations, l'optimisation est stoppée.
  • Si le nombre total d'étapes d'optimisation est supérieur à 1.000.000 sur un système 32 bits ou 100.000.000 sur un système 64 bits, le mode d'optimisation génétique démarre automatiquement.
  • Pendant l'optimisation génétique, les résultats intermédiaires sont sauvegardés dans un système de cache après le calcul de chaque génération (dans un fichier situé dans <répertoire de données de la plateforme>/tester/cache/*.gen). Le processus d'optimisation peut donc être interrompu à tout moment. Même si le processus d'optimisation génétique est interrompu à cause d'un facteur externe (par exemple, une panne de courant), l'optimisation sera poursuivie automatiquement depuis la dernière génération calculée. Le cache de l'optimisation génétique est stocké tant que les paramètres d'optimisation ne sont pas changés ou que le processus d'optimisation n'est pas terminé.
  • Au moment de l'arrêt normal de l'optimisation (lorsque vous appuyez sur le bouton Stop) toutes les exécutions précédemment calculées sont sauvegardées. Lorsque le processus d'optimisation reprend, il continue depuis la dernière exécution calculée.

Critère d'Optimisation #

Un critère d'optimisation est un certain facteur définissant la qualité d'un ensemble de paramètres testés. Plus haute est la valeur du critère d'optimisation, meilleurs seront les résultats pour les paramètres donnés. Ce facteur peut être sélectionné dans un champ situé à droite de "Optimisation" dans l'onglet Paramètres.

Le critère d'optimisation est requis pour l'algorithme génétique.

Les critères d'optimisation suivants sont disponibles :

  • Balance max – la plus haute balance.
  • Facteur de Profit max – la valeur la plus élevée du facteur de profit.
  • Remboursement Attendu maximum – la valeur la plus élevée du gain attendu.
  • Drawdown min – dans ce cas, la chute relative du solde en pourcentage est prise en compte.
  • Facteur de Récupération max – la valeur la plus élevée du facteur de récupération.
  • Ratio de Sharpe max – la valeur la plus élevée du ratio de Sharpe.
  • Max personnalisé – ici le critère d'optimisation est la valeur de la fonction OnTester() de l'Expert Advisor. Ce paramètre permet d'utiliser n'importe quelle valeur pour l'optimisation des Expert Advisors.

Une autre option consiste à utiliser "Crtière Complexe max". Il s'agit d'une mesure intégrale et complexe de la qualité d'un test réussi. Elle mesure plusieurs paramètres :

  • Nombre de Transactions
  • Drawdown
  • Facteur de Récupération
  • Rendement Attendu
  • Ratio de Sharpe

En utilisant ce critère, vous pouvez voir que la valeur la plus élevée d'un paramètre (par exemple le profit) n'est pas toujours la meilleure option en termes d'analyse complexe. Le critère complexe sélectionne progressivement les meilleures passes : d'abord, par le nombre de transactions, puis par le gain attendu, le facteur de récupération, et ainsi de suite. La nouvelle option permet de recevoir les meilleures passes d'optimisation en fonction de tous les paramètres. De plus, vous pouvez sélectionner la passe optimale en fonction du paramètre souhaité, tel que le profit le plus élevé.

Tous les symboles Sélectionnés dans le Market Watch

Contrairement aux types d'optimisation décrits ci-dessus, celui-ci permet de tester un Expert Advisor avec les mêmes paramètres d'entrée, mais avec des symboles différents. Seul le symbole principal de test est changé à chaque passe, c'est-à-dire le symbole du graphique auquel l'EA sera attaché.

L'optimisation n'est effectuée que sur les symboles qui sont actuellement choisis dans le Market Watch. Vous pouvez donc de cette façon gérer l'optimisation en ajustant l'ensemble des symboles sélectionnés.

  • Veuillez noter que le téléchargement des données de prix nécessaires depuis le serveur peut nécessiter du temps. Cependant, le ralentissement de l'optimisation dû au téléchargement des données ne se produit que lors du premier lancement pour un symbole, la fois suivante, seules les données manquantes seront téléchargées.
  • Les valeurs actuelles des paramètres d'entrées spécifiées dans le champ "Valeur" sont utilisées pour l'optimisation par symbole.