|
Recherche Stratégie
|
A propos de l'auteur: Mikhail Korolyuk trade sur le marché des
equity depuis 1995. Il développe des stratégies pour les marchés Russes et Occidentaux. Il considère que la discipline est l'un des facteurs clé déterminant le succès du trader. il est aussi le créateur d'une des premières ressource internet à destination des traders avec Moysha-online. Mr. Korolyuk est l'auteur d'une revue analytique périodique des marchés mondiaux sur le site web www.premierfunds.ru et d'autres médias de masse. L'article original en anglais est disponible ici.
NB: Trading Automatique a programmé cette stratégie de
Money Management et l'a rendue compatible avec tous les EAs de Metatrader. Pour plus de renseignements, vous pouvez suivre cette file du forum trading automatique ou me contacter. Les résultats des backtests sont disponibles dans ce nouvel article.
Nous pourrions discuter du pour et du contre du trading systématique pendant longtemps. Mais il est évident qu'il y a un nombre significatif de traders pour qui la seule manière de faire face à leurs émotions et donc survivre sur le marché, est d'utiliser des règles formelles d'ouverture et de clôture de positions. Cependant, l'utilisation efficace d'une approche de trading nécessite de bien connaître à la fois ses avantages et ses inconvénients.
La limitation principale des systèmes de trading automatique est le fait qu'ils sont rentables uniquement sous certaines conditions du marché. Si vous tradez un système de suivi de tendance, il sera inutile dans un marché sans direction; si vous êtes armé d'un système à contre-tendance, vous engrangerez de grosses pertes sur les marché caractérisées de fort mouvement de fond. Même la plus belle femme de France ne peut donner plus que ce qu'elle peut donner (Notes à la traduction: les femmes française sont donc apparemment renommées jusqu'en Russie...). Il existe la même chose avec les systèmes de trading. En tradant avec eux, vous ne pourrez pas gagner plus que ce que le marché vous autorise à ce moment.
C'est pourquoi l'un des éléments le plus important d'un système de trading est le choix du marché à trader, dont leur nature doit correspondre à votre système de trading. Cependant, personne ne vous garantira jamais que la nature du marché choisi ne changera pas plus tard. Par exemple, si vous êtes en train de trader un système de suivi de tendance et que votre marché est subitement rentré dans un range, vous ne réaliserez que pertes sur pertes.
Le dépôt brule comme un feu de de paille attisé par le vent, et le trader désespéré blâme son système pour ses mauvais résultats. Mais la chose qui fait le plus mal est de savoir que on système reprend vie un peu plus tard et et obtient de bon résultats... mais pas à vous.
Il serait assez raisonnable de trader un système quand les conditions de marché y correspondent, et de l'arrêter ou de réduire la taille des positions ouvertes lorsque le marché change.
Mais comment peut on savoir si le marché corresponds à notre système de trading ou non? L'analyse de la courbe de capitale peut nous donner un réponse. Il y a de nombreuses méthodes qui analysent l'efficacité d'un système de trading en utilisant la courbe de capital et nous permettent grâce à cette analyse de filtrer certains trades dont le risque excède les limites déterminées par le trader.
Appliquer ces filtres sur la base de l'analyse de la courbe de capital nous permets de réduire les risques du trading. Cependant, le revers de la médaille est de diminuer la profitabilité du système car l'ensemble des trades a en globalité une rentabilité positive attendue, et que le groupe des trades les plus risqués qui est filtré a aussi un espérance de rentabilité positive. C'est pourquoi le filtrage des trades a pour but de réaliser une diminution asymétrique des risques et du rendement, le risque étant plus réduit que le rendement. La réduction assymétrique du risque améliore l'efficacité du système en baissant la dispersion des résultats de trades et la profondeur du drawdown maximal.
Comme résultat du filtrage correct des trades les plus risqués, un nouveau système de trading voit le jour, pour lequel la rentabilité diminue d'une plus petite valeur que celle des drawdowns. De tels systèmes procurent aux traders différents choix, un étant de considérer que la diminution de la rentabilité a un taux raisonnable pour la diminution des drawdowns. Un autre choix serait d'utiliser un effet de
levier plus important avec le nouveau système, ce qui permettrait d'obtenir une rentabilité plus importante avec la même taille de drawdown que l'ancien système sans filtrage.
Nous aimerions offrir à nos lecteurs une méthode qui vous autorise d'évaluer numériquement la correspondance d'un système de trading avec les conditions de marché. La méthode est basée sur la recherche du coefficient de conformité du système de trading en fonction du marché.
Zero Return Curve - courbe de retour zero
Un système de trading qui ne produit ni profits, ni pertes, respecte la condition suivante (prenant en compte les frais de commisison) :
%Win * Avg.Win = %Loss * Avg.Loss
où:
- %Win - poucentage de trades gagnant;
- Avg.Win - la valeur moyenne d'un trade gagnant;
- %Loss - pourcentage de trades perdant;
- Avg. Loss - la valeur moyenne d'un trade perdant.
Puisque %Loss = 100% - %Win, l'expression peut être réécrite de la manière suivante (Formule 1):
Avg.Win / Avg.Loss = (100% - %Win) / %Win
En ayant résout cette équation pour les différentes valeurs des %Win et dessinée cette solution dans un graphique, nous obtiendront la "zero return curve". L'aire dessous cette courbe correspondra aux stratégies de trading perdantes, tandis que l'aire au dessus de cette courbe correspondra aux stratégies de trading gagnantes (Fig. 1).
 Fig.1. Zero Return Curve.
Deux considération sont évidentes ici: tout d'abord, plus les résultats des tests des systèmes de trading sont situés hauts, le mieux c'est. Ensuite, si nous prenons les résultats du système de trading dans une fenêtre de temps mobile, ils "migreront" dans une direction puis une autre jusqu'à parfois même tomber sous la zero return curve. Cette "migration" reflête le degré de concordance aux changements du système par rapport au marché: dans les période de bonne correspondence avec le marché, les résultats seront situés bien au dessus de la courbe tandis qu'ils plongeront probablement sous la courbe lorsque le système s'effondre.
Lorsque l'on choisit un système de trading pour une utilisation réelle, nous voulons généralement que ces paramètres (Avg.Win/Avg.Loss et %Win) soient situés à une certaine distance de sécurité de la zero return curve, afin que les fluctuations des résultats du système ne fassent pas passer le système dans la zone de perte. Cependant, quelle distance peut être considérée comme étant suffisemment sûre. Nous suivons l'approche décrite par Ryan Jones dans son livre "The Trading Game": "The standard for a very good system is to generally take a 10 percent lower winning percentage while maintaining a 1.0 better win/loss ratio over the breakeven point. If this combination exists, you are about as close to a Holy Grail strategy as you are going to get."
Exprimons le critère de sécurité dans la formule suivante:
Avg.Win/Avg.Loss = (100% -( %Win-10%)) / (%Win-10%) + 1
Résolvons maintenant cette équation et dessinons les valeurs de la courbe de sécurité obtenue (Fig. 2) :
 Fig. 2. Zero Return Curve et Courbe de Sécurité.
Dans la Fig. 2, deux courbes qui respectent les critères précédents sont tracées ce qui crée trois zones: la zone de trading relativement sécurisée au dessus de la courbe de sécurité, la zone rentable mais plus risquée entre les deux courbes et enfin la zone de perte en dessous de la courbe de zéro retour. Voyons comment nous pouvons utiliser ces aires détectées afin d'utiliser les stratégies de trading de manière optimale.
Trading System Safety Factor - Facteur de Sécurité d'un Système de Trading (TSSF)
Pour évaluer numériquement juqu'à quelle degré un système de trading est sûre, nous utiliserons une fenêtre temporelle de N trades et les valeurs de Avg.Win/Avg.Loss et %Win à l'intérieure de cette fenêtre. Dans cet article, la fenêtre est déterminée à 20 trades, donc, lorsque nous parlons des résultats actuels d'un système , nous évoquons les Avg.Win/Avg.Loss et %Win déterminés par les résultats des 20 derniers trades. Cependant, la taille de la fenêtre peut varier de ce nombre pris aléatoirement.
Il est préférable de choisir une fenêtre temporelle sur la base des meilleurs/pires séquences historiques de trades, c'est à dire que si la plus grande série de trades gagnant est de 9, de pertes est de 4 et le %Win est égal à 60%, alors il n'y a pas de raison d'utiliser une fenêtre plus petit que 23 1.5*9/0.6 (ou 30=2*9/0.6). (Une remarque de Sergey Fishchenko (alias FSV)).
Connaissant la valeur de %Win pour les 20 derniers trades, nous pouvons utiliser la formule du dessus pour obtenir la valeur de Avg.Win/Avg.Loss qui correspondrait à la courbe de sécurité. Nous déterminons le ratio entre la valeur réelle de Avg.Win/Avg.Loss pour les 20 derniers trades et la valeur de Avg.Win/Avg.Loss de "sécurité" appelée Facteur de Sécurité du Système de Trading (TSSF).
Pour calculer le TSSF, nous pouvons utiliser la formule suivante :
Avg.Win / Avg.Loss ((110% - %Win) / (%Win-10%) + 1)
Il est clair que plus la valeur du TSSF est haute, plus le système était profitable récemment et donc le plus il correspondanit au marché. Si le TSSF chute en dessous de 1, cela signifie qu'il s'est déplacé dans la zone de trading à risques. Si les valeurs sont encore plus basses, alors le système s'est déplacé dans la zone de perte. Cependant, nous sommes intéressés à seulement une chose: est ce que le système est situé dans la zone de trading sûre ou non? En relation à cela, nous pouvons utiliser plusieurs stratégies de trading. Considérons quelques alternatives possibles.
Théoriquement, lorsque nous trouvons les résultats actuels d'un système de trading dans chaque zone, nous pouvons déterminer le volume de positions de la mnière suivante :
- pour ouvrir une position avec le plus grand effet levier possible.
- pour ouvrir une position avec tout le capital disponible sans levier.
- pour ouvrir une position en proportion du TSSF.
- pour ne pas ouvrir du tout de positions.
Il y a d'autres alternatives possibles, mais nous considèrerons ici seulement ceux de la lsite ci-dessus. Rapellez vous que nous sommes seulement intéressés à savoir si nous sommes dans la zone de trading "sûre" ou pas. Ensuite, après avoir écarté certaines alternatives non raisonnables (par exemple ouvrir une position utilisant le maximum de crédit en étant au dessous de la courbe de sureté, ou ne pas ouvrir de position lorsqu'on y est en dessus), nous obtiendront les combinaisons suivantes :
Nb Stratégie
| Ouverture position au dessus courbe de sécurité | Ouverture de position en dessous courbe de sécurité |
| 1 |
Avec le levier maximum |
Avec le levier maximum |
| 2 |
Avec le levier maximum |
Avec le capital entier sans levier |
| 3 |
Avec le levier maximum |
En proportion du TSSF |
| 4 |
Avec le levier maximum |
Ne pas ouvrir de position
|
| 5 |
Avec le capital entier sans levier
|
Avec le capital entier sans levier |
| 6 |
Avec le capital entier sans levier |
En proportion du TSSF |
| 7 |
Avec le capital entier sans levier |
Ne pas ouvrir de position |
| 8 |
En proportion du TSSF |
Avec le capital entier sans levier |
| 9 |
En proportion du TSSF |
En proportion du TSSF |
| 10 |
En proportion du TSSF |
Ne pas ouvrir de position |
Deux des stratégies listées n'utilisent pas la courbe de sécurité et, c'est pourquoi, ne peuvent pas être considérées comme un groupe de contrôle. C'est la stratégie 1 ouvrant une position dans chaque cas avec le capital entier et le levier maximum, et la stratégie numéro 5 utilisant dans chaque cas le capital entier sans levier.
Regardons comment ses stratégies fonctionnent dans un exemple réel. J'utilise un système basé sur les cassures de résistance de l'échelle de temps H1. Ce système est réalisé pour ne prendre que des positions long et es tradé sur un portefeuille de 8 actions russes du MICEX ((RAO UES of Russia, Sberbank, Rostelecom, NorNickel GMK, LUKoil, Surgutneftegaz, Yukos, et Tatneft)) avec les même paramètres. Dans les Fig. 3 et 4, les valeurs des %Win et Avg.Win/Avg.Loss sont données pour la pèriode allant du début de 1998 à la mi-juin 2002 avec une fenêtre de 20 trades.
 Fig. 3. Valeur changeante du %Win.
 Fig. 4. Valeur Changeante de Avg.Win/Avg.Loss.
Caculons le TSSF en utilisant la formule ci dessus - cf Fig.5:
 Fig. 5. Les valeurs du TSSF.
Il faut rappeler que si la valeur du TSSF est inférieure à 1, le système quitte la zone de trading relativement "sûre". La figure montre de manière évidente le fait énoncé précédemment : vous ne pouvez gagner des profits de manière continue sur le marché. Le facteur de sécurité de ce système était inférieure à 1 pendant certaines périodes qui correspondaient aux dradowns du compte (Fig. 6):
 Fig.6. Drawdowns du Système de Trading.
Maintenant, essayons de voir s'il est possible de réaliser la réduction asymétrique des risques du système de trading en utilisant les stratégies vues plus hauts. Comme exemple de la méthode à mettre en place, comparons les stratégies 5 et 7. La stratégie 5 implique de réaliser les achats avec tout le capitale disponible (étant donné qu'il y a 8 actions dans le portefeuille, 1/8 du capital est utilisé pour chaque achat). La stratégie numéro 7 implique d'acheter avec tout le capital si le TSSF > 1 et ne pas acheter du tout si TSSF <1.
Les statistiques du système de trading utilisant ces stratégies sont résumées dans le tableau ci dessous :
| Paramètre | Stratégie 5 | Stratégie 7 |
Nombre de trades
|
664 |
366 |
| Retour (sans réinvestment) |
+230% |
+172% |
| Maximal drawdown |
- 10.2% |
- 4.7% |
| Taux Retour/Maximal DD |
22.6 |
36.6 |
La stratégie 7 aboutit donc bien à la réduction dissymétrique du retour et du risque: le risque diminue plus fortement que le retour (cf le taux Retour/Maximal DD).
Les traders conservateurs peuvent être satisfaits de cette diminution du risque. Quand aux plus agressifs, ils pourront utiliser un effet de levier avec la stratégie numéro 7. Les résultats de l'utilisation d'effets de levier sont visibles dans le tableau suivant :
| Paramètre | Stratégie 5 | Stratégie 7 | Stratégie 7 levier 1.5 | Stratégie 7 levier 2 |
| Nombre de trades |
664 |
366 |
366 |
366 |
| Retour (sans réinvestment) |
+230% |
+172% |
+250% |
+354% |
| Maximal drawdown |
- 10.2% |
- 4.7% |
- 7.54% |
- 10.59% |
| Taux Retour/Maximal DD |
22.6 |
36.6 |
33.2 |
33.4 |
La stratégie de trading 7 avec l'effet de levier 1.5 nous permets d'obtenir le même retour que la stratégie 5 mais avec un risque moindre.Le levier de la stratégie 2 procure avec un risque identique au premier, un retour 50 % plus important que la stratégie initiale.
Nous avons donc considéré seulement une alternative à la stratégie utilisant le TSSF qui filtre les trades avec un TSSF < 1. Nous obtenons alors 3 stratégies de Money Management :
- réduction à la fois du risque (dans une plus grande mesure) et des retours.
- réduction du risque pour des retours identiques.
- augmentation des retours pour un risque identique.
Un trader peut choisir parmi ces trois versions celle qui correspond le mieux à ses attentes. Une analyse complètede toutes les stratégies avec leurs caractéristiques spéciales peut prendre beaucoup de temps. Cependnt, l'information résultant d'une telle analyse peutêtre très importante et utile. Vous pouvez pratiquement toujours trouver une telle version de Money Management qui amméliorera la version initiale. Vous devriez avant tout réaliser qu'un trader ne doit pas toujours trader de la même manière indépendamment des conditions de marché.A l'opposé, prendre en considération les phases du marché et les relations existantes avec les méthodes de trading utilisées, rendra votre tading plus flexible avec un plus fort rendement ou des risques amoindris.
Article Original: http://championship.
mql4.com/2008/news/366 Auteur: Mikhail Korolyuk Traduction: Nicolas Vitale MQL4 is a trade mark of MetaQuotes Software Corp. and all related materials are reserved for MetaQuotes
|
|
Cet article prend la suite de l'article intitulé "Fonctionnement du backtest avec Metatrader". Introduction Cet article rentre plus en détail dans les caractéristiques et limitations du backtesteur de stratégie MetaTrader4. Caractéristiques spéciales du testeur de stratégies sur des données historiques : - Certaines fonctions sont exécutés sans sorties. Ce sont Sleep(), Alert(), SendMail(), PlaySound(), MessageBox(), WindowFind(), WindowHandle(), WindowIsVisible()
- Le trading est permis pour la paire sous test seulement. Il n'y a pas de possibilité de
backtest pour un portefeuille entier. Les tentatives de trade utilisant d'autres paires retourneront une erreur. - La taille des lots incluant la taille initiale, l'incrément, les commissions et les swaps sont ceux des caractéristiques du compte actif. Avant de lancer le backtest, vérifiez qu'il y ait au moins un compte activé dans la liste de la fenêtre "Navigator" du terminal.
- Tous les swaps, les obligations de marge, les expirations et les ordres GTC sont modélisés. Le backtest est réalisé de manière la plus porche des conditions du serveur de trading. Mais il peut arriver des inexactitudes d'estimation des marges nécessaires sur une paire à cause d'un manque d'informations précises sur les prix à chaque instant.
- Le début d'une bougie d'une autre échelle de temps pour la même paire sous tests est modélisée approximativement : Open = correct Open, Close = correct Close, Low = min (Open,Close), High = max (Open,Close), Volume = final Volume (false).
- Le mode d'Exécution Instantannée est considérée comme utilisée durant les trades, réalisé sans
slippage. - Réalisation des ordres d'ouverture et de fermeture des trades sans slippage.
- Test des stops après StopOut.
- Les échelles de temps Hebdomadaires, Mensuelles et d'autres irrégulières ne sont pas testées.
- La monnaie du dépôt peut être changée, mais les taux de conversion sont établis et le taux de change courant est utilisé.
- Il n'y a pas de délais dans l'exécution des trades. Un délai de setup est prévu d'être rajouté dans l'exécution des transactions.
- L'historique du compte est complètement disponible et ne dépends pas de la configuration.
- Si d'autres paires et pèriodes sont très utilisées, il est préférable de les télécharger toutes les profondeurs possibles. I
- Au niveau de modélisation "tous les ticks", le backtesteur utilise toutes les échelles de temps de la paire sous tests de manière indépendante.
- L'utilisation de la fonction MarketInfo génère des erreurs ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE(4059), cependant, les informations correctes à propos des prix courants de la paire testée, de la dimension des nieveaux de stop, de la taille des points et du spread de chaque paire est fournie.
Caractéristiques spéciales du Processus d'Optimisation - Rien n'est écrit dans le journal ou par la fonction Print(). Ce choix a été fait pour accélérer le backtest et sauver de l'espace disque. Si les logs complets étaient, ils prendraient des centaines de Mo.
- Les objets dessinés ne sont pas réellement réalisés. Les objets sont désactivés afin d'accélérer le backtest.
- La fonction "Sauter les résultats inutiles "est utilisée. Afin de ne pas surcharger le tableau et le graphique avec les résultats des test, la possibilité de laisser tomber les mauvais résultats est utilisée. Cette fonction peut être activée dans le menu contextuel "Résultats d'Optimisation"-> "Skip useless results".
Traduction: Nicolas Vitale Source: http://articles.
mql4.com/72 "MQL4 is a trade mark of MetaQuotes Software Corp. and all related materials are reserved for MetaQuotes"
|
Introduction De nombreux programmes d'analyse technique permettent de tester des stratégies sur des données historiques (
backtest). Dans la plupart des cas, le backtest est réalisé sur des données déjà établies, sans qu'il soit tenté de modéliser la tendance des cours à l'intérieure d'une bougie. Le backtest peut alors être réalisé rapidement mais sans grande précision. Il est important de choisir une bonne manière de modéliser les prix d'une bougie pour avoir une meilleur qualité de test d'une stratégie de trading. La solution idéale est de posséder un historique complet dont la précision est le tick. Mais il est malheureusement très difficile pour un trader avec des moyens classiques de posséder de tels historiques sur des grandes périodes de temps. Pour résoudre ce problème, les données des périodes les plus précises peuvent être utilisés comme des points de référence permettant de modéliser l'évolution des prix à l'intérieure d'une bougie. Manières de Modéliser les Prix des Bougies Il y a trois manières de modéliser le développement des bougies dans Metatrader 4. Tous les ticks (la méthode la plus précise basée sur l'intervalle de temps le plus petit disponible) Points de Contrôle (une méthode grossière basée sur l'intervalle de temps inférieur) Prix d'ouverture (une méthode rapide sur les bougies complètes, à utiliser seulement par les Expert Advisor qui utilisent explicitement l'ouverture des bougies)
Les prix intermédiaires sont générés avant de commencer le backtest, et les résultats sont sauvegardés dans un fichier (par exemple: /tester/history/eurusd_1440_1.fxt). A chaque fois que le bouton "Start" est cliqué, le module de backtest génère à nouveau le fichier contenant la séquence des ticks à tester. Les fichiers ".fxt" sont faciles à ouvrir hors connexion dans le terminale par File -> Open offline. Ce principe permets de réaliser les backtests avec ses propres données. Il suffit de sauvegarder les données dans le format ".fxt" et de les placer dans le répertoire /tester/history/. Ensuite il faut ouvrir le fichier dans un graphique hors connexion.. Exemples de Modélisation
Commençons avec la méthode la plus simple de modélisation basée sur un graphe de granularité une heure. Étudions la bougie d'une heure entourée du cercle rouge. Prix d'Ouverture Certain traders ne souhaitent pas dépendre des particularités de la modélisation "intrabougie". Ils créent donc des Experts Advisors qui tradent sur des bougies déjà complétées. Le fait est que l'on peut savoir qu'une bougie est finie une fois seulement que la suivante apparait. Ce sont pour ces Expert Advisor que la modélisation du "Prix d'Ouverture" est réalisée. Dans ce mode, à l'ouverture de la bougie on a Ouverture = Haut = Bas = Fermeture et Volume =1 (Open = High = Low = Close, Volume=1). C'est cette caractéristique qui permet à l'Expert Advisor d'identifier la fin de la bougie précédente. C'est sur cette bougie naissante que l'Expert Advisor est lancé. A la prochaine étape, la bougie courante est formée, mais aucun calcul y est effectué. Points de Contrôle
La méthode de modélisation des points de contrôle est réalisée pour une estimation grossière destination des Experts Advisor qui tradent à l'intérieur des bougies. Pour utiliser cette méthode, des données historiques de l'échelle de temps infèrieure la plus proche doivent être utilisées. Dans certain cas, les données disponibles de l'échelle de temps inférieur ne couvre pas totalement la période de test. Dans ce cas là, les bougies sont générées à base d'un template de vague, comme c'était le cas pour la version 3 de Metatrader. Dès que les données historiques de l'échelle de temps inférieure apparaissent, ce sont ces données qui sont interpolées. Cependant, les prix OHLC (Open High Low Close) réels existant apparaissent comme des points de contrôle. Dans la plupart des cas, les résultats de backtests d'Expert Advisor réalisés avec cette méthode ne peuvent être considérés que comme des estimations, et donc comme des résultats intermédiaires. La figure ci dessous montre la bougie de la précédente figure développée avec la méthode des points de contrôle. Tous les ticks
Ce mode permet de modéliser les mouvements des prix à l'intérieure d'une bougie de la manière la plus précise. A la différence des "points de contrôle", cette méthode se base pas seulement sur l'utilisation des données de l'échelle de temps inférieure, mais aussi sur celles d'échelle de temps les plus petites. Pour chaque période est utilisée l'échelle de temps la plus petite disponible. Pour générer les mouvements de prix entre les points de contrôle , l'interpolation basée sur les templates prédéfinis est aussi utilisée. Il est donc conseillé de disposer des données de l'échelle de temps une minute sur tout l'étendue de la période du backtest. Il peut arriver que plusieurs ticks identiques soient générés les uns après les autres. Dans ce cas, les cotations dupliquées sont filtrées et le volume de la dernière est mis à jour. Une grosse quantité de données générées doit être considérée. Ceci peut influencer la consommation des ressources du système et la vitesse du backtest.
Attention: Il n'y a aucun intérêt de lancer la méthode de backtest "tous les ticks" si il n'y a pas de données d'une échelle de temps plus petite couvrant la période du backtest. Utilisation de la plage de dates lors de la Modélisation
La plage de dates (fin et début du backtest) peut être utilisée à la fois pour le backtest d'Expert Advisor et la génération des séquences de bougies pour le backtest. Il n'y a souvent pas besoin de générer des données sur l'historique complet, en particulier pour la modélisation "tous les ticks", où la quantité de données inutilisées peut être très importante. Donc, si lors de la génération des séquences de backtest il y a la possibilité d'utiliser la plage des dates, les bougies excédant les dates ne seront pas générées mais plutôt écrasées dans la séquence de sortie. Les données ne sont pas exclues de la séquence afin d'être capable de calculer correctement les indicateurs sur toute la période du backtest (par exemple une moyenne mobile nécessite des bougies précédant le début du backtest). Il doit être aussi souligné que les 100 premières bougies ne sont pas non plus générées, mais cette limitation ne dépend de l'établissement de la plage de dates. Référence à l'échelle M1 Pour vérifier la précision de la modélisation intrabougie, le graphique minute du 5 septembre 2007 entre 10 et 11h sera utilisé. Dans le mode "tous les ticks", la séquence suivante a été générée: Puisque le volume moyen de chaque bougie à l'intérieure de la plage n'excède pas 5, la séquence a été générée avec le minimum d'interpolation. En pratique tous les prix sont de véritables prix OHLC existant. En superposant le graphique une minute sur celui basé une heure (les prix de clôture du graphique une heure sont indiqués en vert), on se rend compte qu'ils sont presque identiques. Conclusions La précision du backtest et la véracité de la simulation sont maximales s'il y a des données auxiliaires qui couvrent la totalité de l'échelle de temps sous laquelle se déroule le backtest. La problème de la précision du backtest revient donc à celui de la recherche d'historiques les plus détaillés possibles... Note de Trading Automatique: Un tutoriel en cours de réalisation va vous expliquer étapes après étapes comment obtenir un environnement de backtest le plus précis possible avec Metatrader. Traduction: Nicolas Vitale Source: http://articles.
mql4.com/70 "MQL4 is a trade mark of MetaQuotes Software Corp. and all related materials are reserved for MetaQuotes"
|
Avertissement Les informations contenues dans cet article ne sont que mon point de vue. En tant qu'auteur, je ne vous demande pas d'agir selon l'algorithme décrit ci dessous. En outre, je vous avertis que des pertes potentielles pourraient être le résultat de l'utilisation de cet algorithme. Introduction L'article contient la description d'une méthode de trading basée sur l'accumulation en volume des profits. Je suppose que seulement les trades profitables peuvent être accumulées. L'article explique la manière optimale d'implémenter ceci et contient le code d'un EA qui aide à exécuter de tels trades correctement. Concept de l'Algorithme Accumuler le volume de trades fructueux permet de gagner un profit maximum du mouvement de marché que l'on est en train de suivre. Mais le volume doit être accumulé d'une telle manière qu'il n'augmente pas la prise de risque. Un des algorithmes d'une telle accumulation de volume est décrit dans cet article. Premièrement, nous avons besoin d'un point de référence, le premier trade. Le premier trade qui est également le principal, doit être d'un volume plus important que celui des tardes auxiliaires. Supposons que le volume du trade principal est de 0.2
lot et celui des trades auxiliaires soit de 0.1 lot. Un Trailing Stop Loss (suiveur) est utilisé pour chaque trade, que nous fixons par exemple à 50 points. Lorsque les profits du trade principale atteignent +100 points, le Stop Loss, sera a +50 points. A ce moment, un trade de 0.1 lot est ouvert dans la même direction avec un stop Loss de -50 points. Si les prix se retournent, les deux trades seront clôturés pare les ordres Stop. Le profit accumulé sera égal à 50 points avec 0.2 lot et une perte de 50 points avec 0.1 lot.Le bilan sera donc un profit de 50 points avec un volume de 0.1 lot. La protection du trade est donc conservée même si le volume en jeux augmente. Si au contraire les cours poursuivent leur mouvement dans la bonne direction, lorsque les profits du trade auxiliaire atteindront 50 points, le Trailing Stop Loss sera activé. Lorsqu'un profit de 200 points est atteint par le trade principal (et donc 100 point pour l'auxiliaire), un nouveau trade auxiliaire sera ouvert. le Stop Loss sera à nouveau placé à -50 points, etc. Cette méthode simple permet de réaliser de bon profits grâce à l'accumulation des lots. En même temps les risques sont minimisés. En fait, le seul risque ici est de perdre une partie des gains du trade principal, c'est à dire le risque que les tardes auxiliaires perdent de l'argent. Mais ce n'est pas un risque de perte, c'est un risque de ne pas obtenir le profit maximal. Se rajoute évidemment à ça le risque de réaliser un mauvais trade au départ, mais celui ci est obligatoire et n'est pas pris en compte dans le système. Le Trailing Stop Standard permets de suivre l'évolution des cours seulement si il y a un profit. Mais, si c'est fait sur les tardes auxiliaires avant que le profit nécessaire soit atteint, la profitabilité d'une telle approche d'accumulation des lots peut être augmenté. Vous pouvez aussi optimiser l'ouverture des ordres auxiliaires grâce à MLQ4. DéveloppementL'Expert Advisor développé dans ce but est basé sur l'EA décrit dans l'article "Scalping Confortable". Dans cet article, l'EA a combiné une fonction de jeu d'entrainement et d'ouverture de trades. Dans le cadre de cet article, nous supprimons la fonction ludique d'entrainement. Par conséquent l'Expert Advisor dessine deux flèches sur la dernière bougie: un haute et une basse. La suppression d'une flèche est un signal d'ouverture de trades dans une direction. Par exemple, supprimer une flèche basse laisse sur le graphique la flèche haute. L'EA va donc ouvrir une position d'achat, placer les ordres Stop et d'achats différés. L'ordre au marché est l'ordre principale. Les ordres différés représentent les ordres auxiliaires qui seront éventuellement déclenchés. Pour le calcul de la "fréquence" d'ouverture des trades auxiliaires et de leur quantité, deux notions sont utilisées. La première est l'objectif ultime, à savoir le Take Profit. Il est identique pour tous les ordres (principale et auxiliaires). La seconde notion est le seuil à atteindre pour l'ouverture des ordres différés. Selon l'objectif ultime, l'EA calcule combien d'ordres peuvent être placés dans l'intervalle du prix courant à celui du Take Profit. Par exemple, si nous utilisons un Take Profit de 400 points et des seuils de 100 points pour l'ouverture des ordres auxiliaires, , 4 ordres seront ouverts à l'achat. Le premier est un achat au prix du marché (Ask price) qui correspond à l'ordre principale. Le second est un ordre d'achat différé au prix Ask+100 points. Le troisième est un ordre d'achat différé au prix Ask+200 points. Le quatrième est un ordre d'achat différé au prix Ask+300 points.Les Take Profits de chaque ordre seront placés à Ask + 400 point, c'est à dire que pour le premier ordre ce sera 400 points, 300 points pour le troisième, 200 pour le second, et 100 pour le quatrième et dernier ordre.
Le Trailing Stop Loss pour le trade principale ne fonctionne seulement si un profit est obtenu (par défaut 50 points). Pour les tardes auxiliaires, cela fonctionne au moment de l'ouverture. Le niveau du Trailing Stop Loss est identiqaue pour chaque trade. En outre le Trailing Stop Loss du trade principale est le niveau de Stop Loss des tardes auxiliaires. Si l'ordre principal est clôturé, les ordres différés en attente sont supprimés. Après cela, deux flèches sont à nouveau dessinées sur le graphique. Ceci indique la capacité de l'EA à ouvrir de nouvelles positions. Tout cela semble peut être complexe, mais est facilement programmable grâce à Metatrader et
MQL4. Vous pouvez accéder ici au code commenté - Accès réservé aux membres enregistrés. Les variables sont:
gap – niveau de placement des flèches (graphique) TP – niveau de Take Profit; SL – niveau de Stop Loss Lots1 – lots du trade principale; Lots2 – lots des trades auxilières;
slippage – niveau acceptable de slippage; MagicNumber1 – nombre magique du trade principale; MagicNumber2 – nombre magique des trades auxiliaires;Open_Step – seuil d'ouverture des trades auxiliaires UseTrailing – activation/désactivation T-SL; TrailingStop – Niveau du Trailing Stop Loss; TrailingStep – Seuil du Trailing Stop Loss.
Lorsque l'Expert Advisor est attaché à un graphique, il dessine deux flèches: La flèche restante sera présente jusqu'à la fin de la bougie courante. Si une flèche est supprimée, l'EA ouvre les trades: Vous voyez que la flèche restante n'est pas montrée sur la capture d'écran, comme nous l'avons expliqué précédemment. Elle est supprimée sur la bougie suivante et n'apparaitra pas tant que les trades seront ouverts. Dès que le profit du premier trade atteint le niveau nécessaire, le Trailing Stop Loss commence à fonctionner (il marche toujours pour les trades auxiliaires). Conclusion Pour conclure, j'aimerais ajouter que les niveaux du Trailing Stop Loss, du Take Profit, et d'ouverture des trades auxiliaires devraient être choisis pour chaque paire de manière individuelle. Il faut aussi noter que pour une utilisation optimale le niveau d'ouverture des trades auxiliaires doivent être plus grand que le niveau du Trailing Stop Loss et que pour le trade principale il est recommandé d'utiliser un volume plus important que les auxiliaires. Traduction: Nicolas Vitale Source: http://articles.mql4.com/637 "MQL4 is a trade mark of MetaQuotes Software Corp. and all related materials are reserved for MetaQuotes"
|
|
Le
backtest est un élément indispensable du trading systématique et automatique. En effet, le backtest est un moyen de vérifier une stratégie en prenant en compte les données historiques du produits financier que l'on trade. Le backtest permet à l'utilisateur d'avoir une base de donnée consistante et ainsi de vérifier si sa stratégie est efficace ou non. Attention cependant, par définition, le backtest utilise des données historiques. Il va donc controler la validité de la stratégie... dans le passé. Les conditions de marché changeant, rien ne vous garantira absolument que cette stratégie vous fera gagner de l'argent dans le future... Mais ceci est une généralité dans le trading. Plusieurs critères obtenus lors du backtest sont utilisés pour vérifier la validité d'une stratégie et la caractériser: - Le plus connu est certainement la courbe d'
equity (equity curve) qui correspond à l'évolution du montant du compte de trading. Vous aurez compris qu'une courbe ascendante est préférable. - Le drawdown maximum qui correspond à la perte de la plus grande période de pertes de votre système. Ce critère est peut être plus important que la pente d'equity si vous souhaitez limiter vos risques. Il est généralement admis de couper un système tradant en rééel une fois qu'il a dépassé 1,5 à 2 fois son drawdown maximum.
- Le Sharpe Ratio qui définit la régularité de la pente de l'equity curve.
- Pourcentage de trades gagnants et la moyenne des gains.
- Pourcentage de trades perdants et la moyenne des pertes
Une des problématiques du backtest est donc de se procurer des données valides sur une durée plus ou moins longue. Un article à venir vous donnera des astuces pour récupérer des données historiques si cela vous intéresse. Quelques conseils à appliquer lors de vos backtests:- Assurez vous de la validité de vos données et du bon fonctionnement de l'outil de backtest.
- Si votre stratégie est basée sur de l'optimisation de paramètres, n'oubliez pas de backtester sur des données cachées lors de l'optimisation.
- Utilisez des données représentatives de toutes les conditions de marché (bullish, bearish, forte volatilité, range, etc).
- Rapelez vous que le future ne reproduit pas forcément le passé...
N'hésitez pas à participer sur le forum pour poser vos questions ou faire des demandes d'articles.
|
|
|
|
|
<< Début < Précédent 1 2 3 4 5 6 7 Suivant > Fin >>
|
|
Page 7 sur 7 |
|