SelfLearningExperts : un EA performant pour MetaTrader 5

Mike 2012.11.30 20:13 12 0 0
Pièce jointe

L'Expert Advisor a été réécrit à partir de MQL4, par l'auteur lsv. Vous pouvez consulter la source ici : https://www.mql5.com/ru/code/9431.

Comment ça fonctionne

Ce système de trading fonctionne sur les ticks, peu importe la période choisie. Il analyse les motifs de prix du marché actuel pour en former plusieurs, avec des paramètres variés. Le nombre de motifs est défini par la variable Nidelt. Pour le premier motif, on utilise le paramètre dstop, pour le second - dstop*2, et ainsi de suite jusqu'à dstop*N, où N représente le nombre de motifs. Si le prix atteint la valeur dstop*N, un nouveau point de motif est enregistré. Le dernier point est supprimé, assurant ainsi que le motif conserve une longueur fixe de Nidelt points. Plus les valeurs des paramètres sont élevées, plus le motif plonge dans l'historique des prix, permettant de suivre le marché avec différentes profondeurs d’analyse.

Lorsque l'un des motifs change (par exemple, à cause d'une évolution du marché), une position virtuelle est ouverte. Le but ici est de lier cette position à une situation de marché précise. Cela se fait en convertissant la séquence de valeurs de prix en une séquence binaire : si la valeur d'un point est supérieure à celle du précédent, c'est un 1, sinon c'est un 0. À partir de cette séquence, un numéro de motif unique est calculé (c'est-à-dire la conversion du chiffre binaire en décimal).

Il peut ouvrir de une à trois positions virtuelles, chacune ayant des valeurs de Stop Loss et de Take Profit individuelles, mais les valeurs de Stop Loss et de Take Profit sont les mêmes pour chaque position. La valeur de Stop Loss/Take Profit est déterminée par le paramètre dstop : pour une position, on utilise dstop*1, pour une autre - dstop*2, etc. Si le prix monte, la probabilité de Stop Loss/Take Profit augmente, et vice versa si le prix descend. Des positions virtuelles sont ouvertes pour chacun des trois motifs : le paramètre du motif, le numéro du motif (sa forme) et pour chaque valeur de Stop Loss/Take Profit. De plus, pour chacune de ces combinaisons, une probabilité de trading à la hausse ou à la baisse est calculée.

Si, pour une combinaison de trois paramètres (paramètre, numéro, Stop Loss/Take Profit), au moins 10 transactions virtuelles sont générées, et si la même situation de marché se reproduit (un paramètre et un numéro de motif détectés automatiquement), alors on peut envisager d'ouvrir une position dont la direction est déterminée par la probabilité calculée sur la base de ces statistiques.

Rassembler des statistiques peut prendre beaucoup de temps. Comme l'indique l'auteur de l'Expert Advisor : "Cela peut prendre plusieurs semaines". Ce processus peut être accéléré à l'aide du testeur. Cependant, il est important de noter que les variations de prix sur le testeur et sur le marché réel peuvent différer considérablement. L'auteur recommande la méthode suivante : entraîner l'Expert Advisor sur le testeur, puis le faire fonctionner sur un compte démo pendant presque une semaine. Si l'EA montre des résultats positifs (ce qui signifie qu'il aura un peu appris), il pourra alors être utilisé sur un compte réel.

Préparation d'un Expert Advisor

La première étape de la préparation de l'Expert Advisor consiste à optimiser ses paramètres : Nidel, Nstop, dstop, forg, Probab, NN, delta. À ce stade, l'optimisation est effectuée avec les paramètres ReadHistory et SaveHistory désactivés. Une fois une combinaison acceptable de paramètres trouvée, il est nécessaire d'effectuer un test avec SaveHistory=true. Ensuite, lancez l'Expert Advisor sur un compte avec ReadHistory=true - l'EA commencera à fonctionner immédiatement, ayant déjà collecté suffisamment de statistiques dans le testeur. Il est conseillé d'activer SaveHistory lorsqu'il fonctionne sur le compte afin de sauvegarder automatiquement les données lorsque l'EA sera surappris et prêt à être relancé.

Lors de l'utilisation de SaveHistory dans le testeur, les données d'apprentissage sont sauvegardées dans un fichier nommé FD_[Symbole]. Par exemple, si l'EA teste sur EURUSD, le fichier sera nommé «FD_EURUSD», et ainsi de suite pour GBPUSD – «FD_GBPUSD», etc. Les fichiers sont enregistrés dans le dossier Files, qui est le dossier de données commun à tous les terminaux. Vous pouvez trouver le Dossier de Données Général via le menu principal de MetaEditor – pour ouvrir le dossier de données général. C'est à partir de ce dossier que les données sont lues par ReadHistory.

En plus de sauvegarder les résultats d'apprentissage, l'Expert Advisor enregistre deux fichiers nécessaires au processus de trading, nommés : FDlast_buy[Symbole][TimeFrame], et FDlast_sell[Symbole][TimeFrame]. Ne vous préoccupez pas de ces fichiers.

L'Expert Advisor dépend de la période uniquement pour la périodicité de la sauvegarde des données d'apprentissage et le temps minimal entre les transactions virtuelles. Cela équivaut à deux densités de bougies, donc il peut y avoir des différences dans les résultats de l'EA sur différentes périodes.

L'image ci-dessous montre les résultats d'apprentissage de l'Expert Advisor sur EURUSD M15 avec les paramètres par défaut.

 

Paramètres

  • ReadHistory - Lecture de l'historique enregistré de l'apprentissage.
  • SaveHistory - Sauvegarde de l'historique d'apprentissage. Pendant le test, l'historique est sauvegardé jusqu'à la fin du test, lorsque l'on travaille sur un compte - régulièrement par le biais de surapprentissage.
  • Lots - Volume de la position.
  • Nidelt - Le nombre de motifs ne doit pas dépasser 30.
  • Nstop - Nombre de paramètres de position virtuelle (valeurs différentes de Stop Loss et de Take Profit, Stop Loss et Take Profit étant égaux), 1, 2 ou 3.
  • dstop - Pas de changement des paramètres de positions virtuelles (Stop Loss et Take Profit).
  • forg - Taux d'oubli des résultats d'apprentissage, la valeur doit être légèrement supérieure à 1.
  • Probab - Niveau de probabilité défini par les résultats d'apprentissage sur lequel l'ouverture de position se base.
  • NN - La taille du motif ne doit pas dépasser 12.
  • delta - Pas de changement de paramètre de motif.
  • ReplaceStops - Pour modifier Stop Loss/Take Profit lors de nouveaux signaux d'ouverture. La transposition de Stop Loss/Take Profit n'est opérée que jusqu'à la direction de la position.
  • Trailing - Niveau de trailing stop ; lorsque la valeur est 0, le trailing stop est désactivé.
Liste
Commentaire 0