Identifiant   Mot de passe       Oublie mot de passe?  Oublie login?  Creer un compte

Trading Automatique

Coder plus... pour gagner plus!

Forum Trading Auto

by pensera
Mar.13.10 17:46:51
by nvitale
Mar.13.10 11:58:15
by nvitale
Mar.11.10 21:08:44
by nvitale
Mar.10.10 17:08:38
by nvitale
Mar.08.10 23:27:41
by laurhaq
Mar.08.10 21:25:55
Animé par JoomlaMe
Backtest
Backtest et optimisation multi-coeurs sous MetaTrader 5 Envoyer

 

D'après une annonce de Metaquotes, MetaTrader 5 permettra de créer des environnements multi-coeurs pour accélérer le backtest et l'optimisation des stratégies. Ces environnements permettent d'optimiser les calculs en permettant de les distribuer sur plusieurs ordinateurs. De même, plusieurs agents de calcul pourront être installé sur un même ordinateur (un pour chaque coeur) afin de permettre une utilisation optimale des ressources.

Par défaut, le nombre d'agent est égal au nombre de processeurs sur la station et ces agents peuvent distribuer des tâches aux agents distants, c'est à dire situés sur des ordinateurs différents. Il est très facile d'installer des agents distants. Tout ce que vous avez à faire est d'utiliser MetaTester.exe (un seul fichier) et d'installer les agents comme des services un par un ou automatiquement selon le nombre de processeurs. Un accès séparé par mot de passe pour chaque agent est mis en place afin de s'assurer que seuls les utilisateurs autorisés pourront s'y connecter.

Voici le backtest d'un EA sur un coeur local. A la fois l'état et la charge du CPU sont montrés.

 

 

Démarrer un backtest sur un agent distant :

 

 
Outil de modélisation 3D des backtests et optimisation Metatrader Envoyer

Vous avez pu observer lors de la série d'articles à propos du système de trading IKH de Simon Depiets (allias "Lliane"), l'utilisation d'un outil maison de visualisation 3D pour analyser les backtests et optimisations de Metatrader.

Etant donné que c'est le premier Noël de Trading Automatique et que nous souhaitons tous vous remercier pour la confiance que vous avez témoigné à notre service de programmation, voici un cadeau à destination de tous les membres de notre communauté.

Nous vous offrons gratuitement l'outil permettant de visualiser en 3D les données générées par l'optimisateur de Metatrader 4. Vous pourrez visualiser les Profits, le Profit Factor, le Trade Moyen ou le Nombre de trades en fonction de 2 paramètres que vous souhaitez optimiser. Voici une capture d'écran de ce petit logiciel conçu en Java en utilisant GNU Octave pour le traçage de la surface :



L'installation de l'outil en 5 étapes

1 - L'outil est disponible gratuitement ici (connectez vous avant ou créez vous un compte si ce n'est pas déjà fait) - Utilisation Commerciale Interdite.
2 - Il faut au préalable télécharger et installer Gnu Octave http://sourceforge.net/projects/octave/ … e/download
3 - Installer Java si ce n'est déjà fait http://www.java.com/fr/download/index.jsp
4 - Puis linker mt2oct à Octave avec le bouton Select Octave Path (de base C:\Octave\3.2.3_gcc-4.4.0\bin\octave.exe )
5 - Ensuite coller le "clic-droit copier d'optimisation" des résultats dans le champ texte.
5 Bis - Vous pouvez déjà tester les données utilisées dans les précédents articles. Ouvrir un fichier qui contient ces données, ci-dessous les fichiers ayant servi a faire les graphes de cet article :
UT 1M
UT 5M
UT 15M
UT 1H
UT 4H
UT 1D
6 - Sélectionnez les 2 paramètres à visualiser en appuyant sur le boutton Convert
7 - Sélectionnez la troisième dimension à savoir les "Profits", "Nombre de Trades", "Profit Factor", ou "Trade Moyen" en appuyant sur le boutton correspondant.

Octave sera alors lancé et la fenêtre de visualisation 3D apparaitra.

 
Comment réaliser une optimisation sous Metatrader 4 Envoyer

 

Voici un petit tutoriel vidéo du blog ForexCapitalisation à destination de ceux qui se demandent comment réaliser une optimisation de leurs EAs sur Metatrader 4.

 

 
Comment évaluer les entrées de son système Envoyer

Jez Liberty est l'auteur du site Automated Trading System. Passionné par le trading et professionnel du développement logiciel depuis 8 ans à Londres, il nous documente son travail, étapes par étapes, pour mettre au point un système de trading automatique.

Lorsque l'on définit un système de trading, nous énonçons des règles d'entrée et de sorties. Nous programmons ensuite notre automate à partir de ces règles et nous le backtestons. Le problème du backtest classique est que nous ne pouvons analyser que le système dans sa globalité. Chaque modification des règles de sortie ou du money management aura un grand impact sur les résultats obtenus et il devient assez difficile de savoir ce que valent vraiment nos règles d'entrées en tant que telles.

C'est pour répondre à ce problème que le e-Ratio nous vient en aide et Jez nous explique comment.

Vous pouvez lire l'article original en anglais ici : e-ratio. How to measure your trading edge in four steps

 

Le e-ratio est un indicateur qui mesure la qualité d'un composant d'un système de trading, c'est à dire sa capacité à identifier un biais du marché. Par exemple, nous pourrions l'utiliser pour évaluer le signal d'entrée d'un système basé sur le break out des canaux de Donchian.

Le concept

 

Le e-ratio donne une mesure de l'alpha (hedge/biais détecté) en calculant la quantité de trades qui vont en votre faveur par rapport à ceux qui font le contraire. Plus la valeur de l'e-ratio est grande, plus une quantité de trades important vont dans la bonne direction, ce qui nous donne une bonne estimation de l'alpha mesuré.

  1. Prenez tous les trades générés par le signal d'entrée.
  2. Fermez chaque trade après une certaine durée n fixée.
  3. Calculez le e-ratio basé sur les données de tous les trades (ce qui va être détaillé dans les 4 étapes de la suite). Ceci vous donne le e-ratio de votre entrée pour la durée choisie.
  4. Répétez l'opération pour diverses valeurs de n et représentez les résultats dans un graphique indiquant le e-ratio en fonction du temps (cf l'illustration ci-dessous).

 

Le e-ratio du critère d'entrée est représenté ci dessous. Plus la valeur est important, le meilleur est le biais que vous exploitez. La graphique ci-dessous représente le e-ratio en fonction du nombre de jours. Celui de 45 jours a une valeur de 1.21 mais chute à 1.07 pour 68 jours.

The e-ratio of the entry criteria is plotted above. The higher the value of the e-ratio, the better the edge. In the instance above the 45-day e-ratio is 1.21 but the edge degrades over time and the e-ratio value drops to 1.07 for day 68.


Etape 1: Enregistrez le MAE et MFE de chaque trade

Pour chaque trade mesurez l'Excurion Favorable Maximale et l'Excursion Adverse Maximale. Ces excursions  correspondent au montant maximum des pertes (Adverse) ou des gains (Favorables) qui surviennent pendant la durée du trade. Il est donc calculé en faisant la différence entre le prix d'entrée et le prix le plus haut et le plus bas survenant durant le trade. Notez que ces valeurs sont positives.


Etape 2: Normalisez le MAE et le MFE

Pour être capable de calculer et comparer le e-ratio sur différents marchés, les excursions devrait être normalisées à un dénominateur commun, comme une unité de volatilité. L'ATR (Average True Range) est une bonne mesure de volatilié. Dans de nombreux systèmes il est aussi utilisé pour calculer la taille des positions, ce qui le rend donc idéal. Divisez toutes les valeurs de MAE et MFE par les valeurs de ATR calculées au début de chaque trade. Dans cet exemple nous utilisons la même période pour l'ATR que pour les canaux de Donchian. Ceci nous donnes des valeurs comparables dans pour tous les marchés conditions.


Etape 3 : Moyenne des MAE et MFE sur tous les trades

Ce sont juste des mathématiques simples ici. Ajoutez tous les MAE et MFE normalisés et divisez par le nombre de trades. Vous obtiendrez alors les MFE et MAE moyens.

 

Etape 4: Division finale = e-ratio

Divisez simplement le MFE moyen par le MAE moyen pour obtenir le e-ratio associé à la durées des trade n. Une valeur positive est nécessaire pour indiquez que votre entrée possède un alpha sur cette longueur de trade.

Analyse

Représenter graphiquement le e-ratio en fonction de diverses périodes de trade vous permet de vérifier et d'analyser l'edge offert par votre système et surtout de choisir la timeframe qui est le plus appropriée à vos signaux.

Vous pouvez aussi calculer les e-ratios pour différentes parties de votre système pour observer comment ils impactent sur le résultat final.

Un autre composant d'un système de trading pourrait être un filtre, par exemple ne trader que dans le sens du trend dominant :

  • acheter seulement lorsque la MA d'un timeframe supérieur monte et est en dessous des prix
  • vendre seulement lorsque la MA d'un timeframe supérieur baisse et est en dessus des prix

 

Le second e-ratio représenté est obtenu par la combinaison du système et du filtre que nous avons défini. Vous pouvez vous rendre compte de l'ammélioration que le filtre apporte ici.

 

The second e-ratio plotted is from a combined entry signal and trade filter. You can see the improvement a filter logic makes!

 

Le e-ratio est un des outils à la disposition des développeurs de systèmes de trading automatique. il peut rapidement vous donner un sentiment général lors de l'introduction d'un composant à votre stratégie de trading.

Credits: le e-ratio a été introduit par Curtis Faithdans son livre Way of the Turtle.

Note: le e-ratio a été calculé en utilisant TradersStudio (et Excel). Le système testé était un Breakout des canaux Donchian (17 jours) avec 7 marchés futurs. La MA utilisée pour le filtrage est de 108 jours.

Vous pouvez accéder aux codes de Jez permettant de calculer le e-ratio, ainsi que le système pour les plateformes TraderStudio et Amibroker :

 
Backtest et optimisation sous Metatrader Envoyer

 

Pour obtenir le meilleur de votre stratégie et l'évaluer, vous avez besoin de la backtester et de l'optimiser raisonnablement. Nous allons vous donner dans cet article la marche à suivre avec Metatrader.

Bien que que le test en live sur un compte démo est essentiel pour plusieurs raisons, le backtest à l'avantage de vous permettre de simuler le fonctionnement de votre robot de trading sur de très longues périodes en seulement quelques minutes voir secondes. Et grâce à l'outil d'optimisation intégré au backtest, vous pouvez déterminer quels sont les paramètres qui permettent de maximiser les gains de la stratégie sur une certaine période passée.

Il y a un débat important autours de la précision des backtests réalisés avec Metatrader. Backtester vous offrira il est vrai seulement une approximation proche de la manière dont vos trades seraient exécutées en temps réel. Mais c'est le seul outil existant sous Metatrader qui vous permettra de tester rapidement toute stratégie sur un nombre importants de contextes de trading différents. Il est donc indispensable de savoir correctement s'en servir lorsqu'on se lance dans le trading automatique.

Commencez donc par ouvrir le Strategy Tester dans Metatrader en cliquant sur le bouton appropriée sur la barre de tâche ou en sélectionnant le "Cadre stratégie" via Affichage ou encore juste par le raccourci Ctrl+R.

Données Historiques

Avant de commencer à optimiser ou backtester quoi que ce soit, il faut s'assurer que votre base de données historiques est complète et précise, notamment si vous utilisez le mode "Every Tick".  Si vous voyez des erreurs "mismatched chart" dans votre journal de log, ou si votre qualité de modélisation est inférieure à 90%, vos données historiques ne sont pas assez complètes pour générer des "ticks" précis.

Pour la procédure à suivre afin de télécharger les données historiques je vous renvoie vers cet article.

 

Optimisation

L'outil d'optimisation de Metatrader vous permets de tester des milliers de combinaisons pour les valeurs des paramètres de votre EA dans le but de trouver ceux qui maximiseront les gains dans l'échelle de temps et timeframe choisis. Cette optimisation est notamment importante pour les EAs basés sur des indicateurs avec des paramètres comme la période par exemple.

Attention cependant, tandis que l'optimiseur vous donnera les paramètres les plus efficaces sur une certaine période de temps, il n'y a pas de garanties que ces paramètres seront profitables dans le future. Les conditions de marché changent et il est donc conseillé de vérifier le résultat de l'optimisation sur des données cachées au moment de l'optimisation et/ou de réoptimiser votre stratégie régulièrement.

 

backtest metatrader

 

Afin d'optimiser votre EA, commencez par le sélectionner dans la liste déroulante. Puis sélectionnez la paire choisie ainsi que la période voulue. Au niveau du modèle de backtest (pour en savoir plus) choisissez "Open Prices Only" (plus rapide à effectuer ce qui est important pour une optimisation)  à moins que vous utilisez chaque ticks dans votre stratégie et dans ce cas utilisez "each tick". Puis activez la sélection de dates et configurez celle qui vous convient. Enfin assurez vous que l'option optimisation est cochée.

Maintenant passons à la configuration de l'optimisation. Cliquez sur le bouton "propriétés de l'expert" puis allez sur l'onglet "Paramètres d'entrées". C'est ici que vous allez sélectionner les variables à optimiser ainsi que le pas de l'optimisation et les valeurs minimales et maximales. La colonne "Valeur initiale" donne la valeur la plus basse à tester, la colonne "stop" indique la valeur maximale et le "Pas" donne l'incrément entre deux valeurs testées.

optimiser backtest

 

Cochez les paramètres que vous souhaitez optimiser. Dans l'image ci dessus nous sommes en train d'optimiser les périodes d'un système à croisement de deux moyennes mobiles. Nous pourrions aussi  d'ailleurs optimiser les stop loss, take profite, etc. Prenons l'exemple de la moyenne longue. L'optimiseur va tester toutes les valeurs entre 20 et 100 avec un pas de 2, c'est à dire 22, 24, 26, etc.

Les variables non optimisées utiliseront la valeur présente dans la colonne "valeur" lors des backtests/optimisations. Selon la période, l'ampleur de l'historique testé, la stratégie et le nombre de paramètres testés, l'optimisation peut aller de quelques minutes à plusieurs heures. Si c'est trop long réduisez la durée de l'historique testé et donner un pas plus important aux paramètres testés.

optimisation metatrader


Une fois que l'optimisation est finie, ouvrez l'onglet "optimisation des résultats" et double cliquez sur la colonne "rémunérations" pour trier les résultats. Double cliquez sur n'importe quel résultat pour le charger dans le testeur et appuyez sur Start pour lancer le backtest avec les paramètres sélectionnés.

Backtesting

Désormais vous devriez pouvoir vous débrouiller pour utiliser comme des grands le backtester. Renseignez à nouveau si nécessaire l'EA, la période, la paire, les dates de début et e fin, etc, sans oublier de décocher le paramètre "optimisation". Vous pouvez sélectionner en outre le mode visuel pour comme son nom l'indique vous souhaitez regarder bougies après bougies comment se comporte sur le graphique votre robot. Pour un backtest, il est recommandé que vous utilisiez le mode "each tick" pour être le plus proche possible de la réalité.

Appuyez sur le bouton "Propriétés de l'expert" pour modifier, charger ou enregistrer les paramètres par défauts. Pour le backtest il est inutile de toucher aux colonnes correspondantes à l'optimisation. Seulement la colonne "Valeurs" nous est ici utile. Les check box et les colonnes "Valeur initiale", "pas" et "stop" sont ignorées.

Fermez la boîte de dialogue et appuyez sur le bouton Start pour commencer le backtest. Encore une fois cela peut être très rapide ou très long selon la stratégie testée et les paramètres du backtest. Une fois le backtest fini allez voir les résultats sur le graphique et dans la partie "rapport".

backtest metatrader

Quelques statistiques intéressantes:

  • Profit Total Net - Les profits moins les pertes.
  • Facteur de Profit - Le rapport entre le total des gains et celui des pertes. Plus le chiffre est élevé, mieux c'est.
  • Chute Absolue (Absolute drawdown) - La chute maximale entre un plus haut et un plus bas intermédiaire. Le but est de ramener le drawdown a une valeur la plus faible possible pour limiter les risques de grosses pertes.
  • Profit des Trades - Le pourcentage de trade gagnant.A noter que le terme est une mauvaise traduction...
  • Qualité du modelage - Important seulement si vous testez en mode "every tick". Dans ce cas, il devrait être ramené à 90%. Si ce n'est pas le cas, suivez les instructions du début de cet article pour télécharger l'historique de données M1.

 

Le tableau "Résultats" vous donne quand à lui le détail de chaque ordre d'ouverture ou de fermeture de trade avec l'heure et la date, le prix, le stop, le take profit, etc. Il est important de mener au préalable des backtests visuels pour vous assurer du bon fonctionnement de votre stratégie.

 

Conseils pour obtenir les meilleurs résultats

Lorsque vous optimisez vos EAs, utilisez le plus petit nombre de paramètres possibles. Trop d'optimisation débouche sur ce que l'on appelle en anglais du "curve-fitting" qui produit des résultats impressionnant sur vos données mais des performances pauvres en temps réel. Pensez donc à tester votre optimisation sur une période que vous n'avez pas utilisez lors de l'optimisation. Backtestez une année plus tard ou plus tôt par exemple.

De manière générale il vaut mieux utilisez des données importantes pour l'optimisation en soit puis des données plus courtes mais significatives (25% de celles de l'optimisation par exemple) pour tester si l'optimisation tient la route. Par exemple on peut prendre 2 ans d'optimisations, puis les six mois précédents ou suivant pour son test.

Pour les EAs basés sur des indicateur, la période aura un grand impact sur les résultats. Attention de ne pas mettre des valeurs non cohérentes avec votre prise de risque pour les stop loss.

Un article suivra pour étudier des exemples précis d'optimisation enfin d'en éviter les pièges.

 
<< Début < Précédent 1 2 3 Suivant > Fin >>

Page 1 sur 3

Articles en rapport :

 
Joomla 1.5 Templates by Joomlashack