Backtesting/Optimisation - page 28

 

Imaginez, tous les jours à 00.00 l'ea (pendant son travail normal) commence une optimisation (avec des algorithmes génétiques) pour une quantité x de données (1 mois, 2mois, 1 an, 1 jour), et à la fin de l'optimisation il vérifie les résultats, et choisit les valeurs qui ont donné les meilleurs résultats (haut profit, faible drawdown), et modifie sa valeur avec les nouvelles, sans arrêter son travail !

Cela peut être fait manuellement, mais si cela peut être fait automatiquement, c'est encore mieux, non ?

 

Mes expériences

En supposant que vous avez une qualité de tick de 90 %, et que vous n'êtes pas un débutant,

1. Tester est un gros calibre. Il fonctionne si vous savez comment l'utiliser. Sinon, vous passez votre vie à tester des EA, et vous devez attendre au moins 2-3 ans pour avoir des données réelles.

2. Tester n'est pas adapté aux systèmes multi-temporels et multi-devises. Si votre système forçant des points complexes, demandez aux producteurs.

3. Il n'y a pas d'expert de valeur sur le net. Ce n'est donc pas le problème du testeur. Mais les gens disent que le testeur est mauvais. Non, nous sommes mauvais.

4. Les vagues du marché forex changent d'année en année. Si un système fonctionne une année, l'année suivante il peut échouer. Donc, un expert doit être formé pendant de nombreuses années.

5. La seule tendance fiable sur ce marché est la tendance (mensuelle) voire (quinquennale). Mais ces tendances ne sont pas adaptées à un effet de levier élevé. Cela réduit nos chances pour les EA à fort effet de levier.

Merci

Cengiz

 

les petits détails dans l'apprentissage automatique

w4rn1ng:
Imaginez, tous les jours à 00.00 l'ea (pendant son travail normal) commence une optimisation (avec des algorithmes génétiques) pour une quantité x de données (1 mois, 2mois, 1 an, 1 jour), et à la fin de l'optimisation il vérifie les résultats, et choisit les valeurs qui ont donné les meilleurs résultats (haut profit, faible drawdown), et modifie sa valeur avec les nouvelles, sans arrêter son travail ! Cela peut être fait manuellement, mais si cela peut être fait automatiquement, c'est encore mieux, non ?

tout ce qui peut être décrit exactement, peut aussi être programmé. Peut-être que mq4 n'est pas l'outil le plus approprié pour le faire, mais c'est possible.

Un détail pratique : en fonction de votre EA/vos indicateurs/votre intervalle d'optimisation, les optimisations automatiques peuvent prendre beaucoup de temps. Je veux dire : pour réoptimiser les paramètres pour le jour suivant, vous n'avez pas besoin de 5 minutes mais de 5 jours :-(.

Questions :

1.) avez-vous testé votre idée à la main ? A-t-elle été un succès ?

2.) Pourquoi 2 mois d'intervalle de réoptimisation ? Pourquoi pas 1.5 ou 2.5 ?

3.) Que signifie exactement "meilleur résultat" ? Préférez-vous 1000$ de profit après 500$ de drawdown, ou mieux 600$ de profit avec 100$ de drawdown ? Préférez-vous un système qui a fait 2000 $ (première semaine à 2200, les 7 semaines suivantes à 2000), OU préférez-vous un autre système qui a fait 100..200 $ chaque semaine (au total 1300$) ?

 

Je pense que le mieux est d'optimiser à la main et de trouver les meilleurs paramètres pour 2006, puis de les tester sur 2007. Si les deux montrent des résultats similaires, je vérifie la période 2004-2007. Si cela se passe bien, je garde ces paramètres.

Si vous optimisez tous les mois, l'EA ne sera pas capable de trader normalement - je l'ai déjà vérifié. Le meilleur résultat d'optimisation a été obtenu dans une optimisation annuelle.

Vous pouvez également optimiser en fonction des conditions du marché. Les périodes de tendance devraient utiliser un ensemble de paramètres, les périodes de marché lent/de marché secondaire - un autre ensemble. Mais qui peut dire quelle est la période actuelle ?

Une réoptimisation quotidienne donne un résultat médiocre.

Oh et à propos de ces données qui font que l'EA fonctionne mal - ne vous inquiétez pas. J'ai eu le même résultat lorsque j'ai téléchargé des données EUR/USD sur des données GBP/USD. Le résultat était des cotations mélangées. Si vous supprimez les cotations et redémarrez MT4 en mode hors ligne, puis téléchargez un seul ensemble de cotations (les bonnes), cela devrait fonctionner correctement.

Pour vérifier si la modélisation est correcte, je dispose de plusieurs copies distinctes de MT et je vérifie les EA sur différents MT de différents courtiers. Cela donne des résultats un peu différents mais rien de spécial (cela aide à identifier les problèmes).

 
autopips:
tout ce qui peut être décrit exactement, peut aussi être programmé. Peut-être que mq4 n'est pas l'outil le plus approprié pour le faire, mais cela peut être fait.

Un détail pratique : en fonction de votre EA/vos indicateurs/votre intervalle d'optimisation, les optimisations automatiques peuvent prendre beaucoup de temps. Je veux dire : pour réoptimiser les paramètres pour le jour suivant, vous n'avez pas besoin de 5 minutes mais de 5 jours :-(.

Questions :

1.) avez-vous testé votre idée à la main ? A-t-elle été un succès ?

2.) Pourquoi 2 mois d'intervalle de réoptimisation ? Pourquoi pas 1.5 ou 2.5 ?

3.) Que signifie exactement "meilleur résultat" ? Préférez-vous un profit de 1000$ après un drawdown de 500$, ou mieux un profit de 600$ avec un drawdown de 100$ ? Préférez-vous un système qui a fait 2000 $ (première semaine à 2200, 7 semaines suivantes à 2000), OU préférez-vous un autre système qui a fait 100..200 $ chaque semaine (1300 $ au total) ?

Oui, il est probablement nécessaire de coder un nouveau programme pour assister mt4 dans ce processus, mais je suis d'accord que cela peut être fait ! L'idée n'est pas mauvaise, mais comme vous le savez le marché change continuellement, donc une bonne façon de permettre à un EA d'être toujours en jeu est de le ré-optimiser chaque jour, et c'est là qu'intervient le besoin d'un processus automatique. Mon EA fait une opération toutes les 4 heures (ou toutes les 8 ou 12 ou 16..etc...).), au début de la bougie de 4h il regarde si c'est le cas d'entrer ou de sortir du marché, et dès qu'il a pris ou sorti la position il attend encore 4 heures ou plus, donc nous n'avons pas besoin d'un tickbytick 90% de qualité de modélisation, l'optimisation (celle qui peut nécessiter 1 jour de travail CPU) nécessite 5-10 minutes et pas plus (et les résultats sont les mêmes que 90% de qualité mod ou forwardtest), mon idée est de laisser l'EA être sur-optimisé tous les jours, une bonne façon peut être de laisser l'EA vérifier à 00.00 (par exemple) un fichier xml sur un serveur distant (mon serveur de bureau) et de télécharger les paramètres de ce fichier (comme l'indicateur de nouvelles), évidemment dans l'autre côté (le serveur qui donnera le xml à l'EA) il y aura moi qui fait l'optimisation jour après jour, ou il peut y avoir un autre programme qui en conjonction avec mt4 optimiser et mettre les résultats dans le fichier xml totalement automatique !

 
mcbalta:

4. Les vagues du marché du forex changent d'année en année. Si un système fonctionne une année, il peut échouer l'année suivante. Ainsi, un expert doit être formé pendant de nombreuses années.

Exactement, vous avez raison, je pense qu'elles changent aussi de mois en mois (peut-être qu'il y a un mois de faible volatilité et de forte tendance à la baisse, le mois suivant est un marché totalement agité avec une forte volatilité, etc. un EA, s'il est optimisé pour le mois précédent, aura une mentalité de suivi de tendance le mois suivant, et gaspillera beaucoup d'argent dans le mois agité), mais si vous regardez, le "changement" des conditions du marché à une autre n'est pas quelque chose qui se produit en 1 minute, oui le marché change continuellement mais il change lentement, le trader qui est bon et remarque qu'il y a une fin de période de tendance et un début de période hachée (qui peut durer un mois, une semaine ou un an, aucune différence) changera sa stratégie et aura des bénéfices, l'autre trader qui ne comprend pas le changement et continue à trader dans une mentalité de suivi de tendance (juste dans cet exemple) perdra beaucoup d'argent, et à la fin du mois regardera le graphique et dira : "Maintenant, je vois clairement que j'ai tradé le mois chaotique comme s'il s'agissait d'un mois de tendance ! Quel idiot je suis !".

Si nous optimisons l'ea jour après jour, l'ea comprendra et changera jour après jour sa stratégie de trading, de tendance à choppy, et il aura du profit le premier et le deuxième mois aussi ! (en supposant que vous ayez un bon ea capable de trader à la fois sur les marchés à tendance et sur les marchés agités [évidemment avec des paramètres différents]).

C'est ce que je veux dire, le marché change continuellement, c'est un marché dynamique, les ea's échouent parce qu'ils ne sont pas dynamiques. Mais que se passe-t-il si un EA devient dynamique ?

 

Aide pour la fusion des données tick

Bonjour,

Je cherche des développeurs Delphi (ou Java, ou C#) pour m'aider à fusionner les données tick que j'ai collectées. J'ai plusieurs ordinateurs avec différents fournisseurs d'accès Internet qui enregistrent chaque tick de 2 courtiers. Je veux fusionner tous ces ticks collectés depuis les différents ordinateurs dans 2 bases de données (pour chacun des 2 brokers). Le(s) développeur(s) qui voudra(ont) m'aider aura accès à toutes les données de tick que j'ai collectées jusqu'à présent - à partir du 1er janvier 2007. Veuillez m'envoyer un message ou un e-mail à l'adresse suivante : hiller159 [at] yahoo [dot] com

 

Merci.

FX_Babe

holyguy7:
Étape par étape, comment obtenir de meilleurs résultats de backtesting

1. Téléchargez les données MT4 pour la paire de devises que vous voulez backtester en cliquant ICI. Assurez-vous de télécharger les données M1. Cela devrait vous donner des données pour chaque minute jusqu'en 2004 (environ 1,5 ans de données rétrospectives).

2. Après avoir décompressé les données sur votre disque dur, vous devez importer les données dans Metatrader 4.

3. Ouvrez Metatrader 4 (Lancez le programme)

4. Vous devez aller dans votre Centre d'historique dans Metatrader 4. Appuyez sur la touche F2 de votre clavier. Ou cliquez en haut de Metatrader : Outils et choisissez Centre d'historique

5. Ouvrez Forex, ouvrez la paire de devises à importer et ouvrez M1.

6. Cliquez sur Importer et naviguez jusqu'à l'emplacement où vous avez décompressé les données de la paire de devises.

7. Assurez-vous que le Type de fichier est sur les fichiers Metaquotes. Cliquez sur Ouvrir et OK. Puis fermez.

8. Maintenant, dans la fenêtre du Navigateur sur le côté gauche de votre programme Metatrader 4, ouvrez Scripts. Il doit se trouver juste en dessous de Custom Indicators.

9. Ouvrez le graphique hors ligne en allant à File- Openoffline - SELECT et ouvrez la paire sur M1 Timeframe.

10. Vous devez avoir le graphique M1 (hors ligne) ouvert de la paire de devises. Vous devez double-cliquer sur le script Period Converter.

10. Cliquez sur l'onglet Input et vous devriez voir la valeur 3. Vous devez changer la valeur en 5 (M5), 15 (M15), 30 (M30), 60 (H1), 240 (H4), 1440 (D1).

11. Maintenant, cliquez sur l'onglet Outils- Options- Graphiques et changez la valeur de Max Bars in History et Max Bars in Chart en 999999999999 et cliquez sur OK.

En fait, vous convertissez les données M1 que vous avez importées dans les différentes échéances que vous souhaitez tester. Vous pouvez en faire une à la fois ou toutes les convertir.

En général, je commence et je choisis 5, puis je clique sur OK. Ensuite, je double-clique à nouveau sur le convertisseur de période et je change la valeur à 15, puis je clique sur OK, puis je clique à nouveau et je change la valeur à 30, puis je clique sur OK, jusqu'à ce que j'aie terminé les périodes.

NOTE : Il vous donnera un avertissement, "Voulez-vous vraiment arrêter 'period_converter' et exécuter 'period_converter' sur le graphique M1 ?

Il suffit de cliquer sur YES et de double-cliquer à nouveau sur le period_converter pour continuer à convertir les données de M1 vers toutes les périodes.

J'ai fait cela avec toutes les paires de devises que je peux télécharger sur tous les horizons temporels. Il est bon d'avoir cela car cela vous donne une idée si quelque chose va fonctionner ou non.

J'espère que cela vous aidera.
 
w4rn1ng:
Bonjour, voici ce que je veux faire :

Je veux laisser mon EA s'auto-optimiser (une optimisation des 2 derniers mois), et il doit changer ses variables automatiquement s'il a trouvé de meilleures variables pendant l'optimisation (il va optimiser 24h/24, toute la journée, tous les jours).

Je ne sais pas ce que je vais faire, je ne sais pas ce que je vais faire, je ne sais pas ce que je vais faire, je ne sais pas ce que je vais faire, je ne sais pas ce que je vais faire, je ne sais pas ce que je vais faire.

Voici un lien vers un article russe qui traite de l'auto-optimisation des EAs.

Автоматическая оптимизация торгового робота в процесе реальной торговли - Статьи по MQL4

et est un lien vers un site web pour traduire en anglais.

AltaVista - Traduction de Babel Fish

Wackena

 
Wackena:
Voici un lien vers un article russe qui traite de l'auto-optimisation des EAs.

Автоматическая оптимизация торгового робота в процесе реальной торговли - Статьи по MQL4

et est un lien vers un site web pour traduire en anglais.

AltaVista - Traduction de Babel Fish

Wackena

Bonjour, merci pour votre réponse, oui je l'ai déjà trouvé il y a quelques semaines, en tout cas merci pour votre aide, c'est une très bonne chose !