ProRealTime
Pour partager sur le trading automatique, nos algorithmes, nos backtests

Scooby's Back test 2020

par Scooby » 06 Jan 2020 00:12

Bonjour,

Je profite de cette nouvelle année pour ouvrir une nouvelle file de discussion pour partager avec vous mon désir de faire un back test potentiellement intéressant et avoir certain retour pour corriger, orienter mon/mes backs tests. Et pourquoi pas partager les strats à tout un chacun :). L'objectif de cela est de faire un robot reprennant la ou les strats les plus rentables pour investir en réel.

Histoire de rentrer dans le sujet doucement, je ne suis pas un grand connaisseur des logiciels boursier (MT4 par exemple) pour les back test. J'ai donc utilisé un soft que je connais un poile: Excel.
J'ai également récupéré les sources en M5 de pas mal d'action via abcbourse pour pouvoir faire un back test sérieux. Bien sur les données n'étaient pas dans un format exploitable directement, j'ai donc déjà réalisé quelques macros pour réordonner complètement les données dans des fichiers. La macro prenant énormément de temps, j'ai extrait seulement d'avril 2002 à décembre 2006 pour les premiers back test.

Rentrons donc dans le vif du sujet, voici ma méthode de back test :
- Je récupère l'ensemble des données du CAC40 (j'ai pour l'instant back testé que cet indice)
- Je mise une valeur de départ de 30K€ (une valeur qu'il me serait facilement possible d'investir au départ en réel si mes back test me donnent satisfaction)
- A chaque fois que je détecte un achat à réaliser (voir comment après), j'achète toutes les actions qu'il m'est possible d'acheter
- A chaque fois que je détecte une ventre à réaliser, je revends toutes les actions

J'avais du mal avec la notion de Take Profite, je me suis mis en tête que s'il était possible de détecter une zone d'achat propice, c'était également possible de détecter une zone de vente possible pour maximiser les gains potentiel (au lieu de ne récupérer que le % du take profite programmé). J'ai donc joué avec le stochastique à la hausse et croisant les 20% pour les achats et pareil à la vente avec à la baisse et croisant les 80%.
J'ai utilisé pour cela des stochastiques moyennés (plusieurs essai, avec plusieurs moyennes)

Mon premier back-test en utilisant cette méthode a été une catastrophe. Mon meilleur résultat a été une perte de 3k€ sur 4.5 ans (l'échantillon que j'ai actuellement en main), en optimisant plusieurs de mes critères de départ. Avec un peu de recule je n'ai pas intégré aussi le non achat en début de séance et la vente à la fin de la séance qui aurait pu arranger les choses. Néanmoins le résultat est tellement loin d'être rentable que ca n'aurais pas été viable.

Ensuite, après ce premier échec, j'ai consulté ce fameux forum et ai trouvé une technique simple consistant à acheter lorsque la MME (moyenne mobile exponentielle) de 5 périodes coupe à la hausse la MMS (moyenne mobile simple) de 200 périodes. Tout cela en appliquant un stop loss et un take profit (chose qui ne me semblait pas forcément logique au premier abord).
Mes résultats ont été bien différents ! en optimisant les SL & TP, j'ai réussi à augmenter ma mise de 50% en 4.5 ans (+17.7K€). Vous me direz certainement que ce n'est pas très performant mais vu le premier back test j'ai trouvé cela pas mal :D
En cherchant encore un peu, j'ai fait des essais avec un technique pronnant la MMS à 144 périodes, chose qui a encore amélioré le back test avec cette fois 26.5K de gain en 4.5 ans.

Ensuite, en voyant que l'utilisation des SL/TP était bien plus profitable que de chercher absolument une valeur haute à la vente, j'ai décidé de revenir à mon premier back-test catastrophique et d'appliquer la même chose. et surprise (ou pas xD), j'ai eu un résultat quasiment identique aux MME/MMS (et meilleur d'ailleurs, avec 28.1K€)
Dans ces derniers back test je n'ai pas fait attention aux heures d'achat & de vente, chose que je devrais certainement faire j'imagine. Ma perte la plus violente est une perte suite à une baisse assez importante durant une nuit.

La suite que je souhaite donner est d'extraire plus de données (j'ai aujourd'hui extrait l'année 2007 et je vais laisser mon PC extraire les données les prochaines journées pour avoir le reste le plus rapidement possible).

Que pensez vous de cette démarche, de la méthode ? Entre le stochastique et le MMS/MME, laquelle des deux méthodes vous pensez la plus propice ?
Avez vous peut être d'autres méthodes plus rentable en tête pour que je test ?

J'espère que vous serez clément car je ne suis pas un expert en la matière ^^
Merci en tout cas si vous êtes arriver jusqu'à cette ligne, parce que c'était un peu long !

En attendant, je vous souhaite à tous une bonne année 2020, la plus rentable possible !

Re: Scooby's Back test 2020

par Falpa » 06 Jan 2020 10:48

Le marché entre 2002 et 2006 totalement différent du marché actuel. Backtester cette période n'a aucun sens pour gagner sur le marché actuel. Au lieu d'extraire les 4 premières années, je te conseil d'extraire les 4 dernières.

Tu dis que tu utilises des stochastiques moyennés avec plusieurs moyennes après plusieurs essais; cela ressemble à de la sur-optimisation. C'est l'un des plus gros pièges du trading automatique.
Quand tu parles d'optimiser SL et TP, c'est encore un cas flagrant de sur-optimisation. Méfies toi de cela.


Pour répondre à tes questions, je ne choisirais ni stochastique, ni moyennes mobiles pour un algo de trading automatique. Gagner sur les marchés sur le long terme n'est pas aussi simple que de trader des croisements de moyennes mobiles ou des croisements de ligne signale sur un stochastique.
Il faut que tu te dises que la bourse est le lieu où tous les plus grands génies de la planète se rassemblent pour gagner de l'argent au détriment de la masse. Pour gagner contre ces gens-là, et prendre ta part du gâteau, il faut être rusé et très bien connaitre la mécanique des cours et la psychologie des marchés.

Je ne pense pas que ce soit en appliquant sans réflexion des signaux connus et pratiqués par tous les débutants que tu pourras avoir des résultats sur les marchés.


Je suis désolé car mon retour peut te paraitre peu engageant, mais il est le résultat d'une constatation sur le long terme. Appliquer sans réflexion des formules mathématiques ont peu de chances d'être ta solution.

J'ai pour ma part fait un très grand nombre de backtests de ce type sur prorealtime, et ils se sont tous soldés par des échecs.

Re: Scooby's Back test 2020

par ouf2finance » 06 Jan 2020 11:37

Je trouve la démarche intéressante. Elle permet de se faire une idée et c'est vrai que l'on commence tous par là.

Il y a, à mon sens, un autre piège dans ces tests : tout ce qui fait qu'en réel un ordre ne sera pas exécuté au prix de la simulation : profondeur du carnet d'ordre, slippage, frais, gap, trou de cotation, ...

Avec ces données et ce framework, tu peut faire du multi-support et du multi-UTs. Ce qui est, il me semble, assez difficile à faire avec d'autres solution de trading auto plus classique. C'est un vrai avantage je pense !

Et cela peut apporter un autre regard, notamment le multi-UT.
L'expérience des indicateurs classiques peut amener à s'interroger sur pourquoi les stratégies ne fonctionnent pas. Et comment les améliorer. Le multi UT permet de choisir les positions à prendre sur une UT grande et les regarder sur une UT plus petite pour entrer ou non en position.
Je pense que de cette manière il est possible de ne garder que les meilleurs positions et de perdre moins lorsqu'elles sont perdantes.
Ce n'est qu'une idée mais je creuserai cette voie-là.

Re: Scooby's Back test 2020

par Scooby » 07 Jan 2020 22:50

Bonsoir à vous deux,

Je reviens pour donner quelques nouvelles et vous répondre.
@Falpa
Oui effectivement les données de 2002 à 2006 ne sont pas forcément les plus intéressantes, mais il faut bien commencer par quelque chose. Quand j'ai commencé je ne pensais pas que les extractions que je fais de mes fichiers Excel étaient si long. Mais dans quelques jours j'aurais finalement 2019 et pourrait essayer l'ensemble du spectre :). J'ai tout mon temps, et cela me permet pendant ce temps de tester plusieurs stratégies :).

Oui, tu as raison de le rappeler, j'ai plusieurs fois lu ici même que l'optimisation à tout prix pouvait être néfaste. Je prends note :)

J'imagine que tu parles donc plutôt de stratégie de supports et résistances qui fond office de poumons boursier. Je voudrais essayer de travailler avec la détection de ces supports/résistances mais cela sera dans un deuxième temps. Je ne sais d'ailleurs pas si c'est possible de faire des robots qui arrivent à détecter les supports/résistances en automatique via plusieurs échelles de temps mais il faut que je me renseigne.

Non, je prends les informations que l'on me donne. Pour l'instant mes résultats sont encourageants de mon point de vue et de toute manière je ne me lancerait pas en réel sans une phase bien longue de test qui pourra me permettre de passer en revue un certain nombre de techniques différentes pour voir lesquelles s'adaptent les mieux aux différents marchés.

@Out2finance
Oui, pour l'instant je n'ai pas intégré ces paramètres à mes essais, c'est prévu quand j'aurais plus de données et approfondis les algorithmes (avec plusieurs techniques de surcroît)
Tu veux dire que les logiciels de test ne permettent pas de partager des informations entre plusieurs UT pour faire des algorithmes ?
Pour l'instant mes données ne me le permettent pas, mais je sais qu'avec un peu de travail je pourrais le faire. Comme dis précédemment j'aimerais tester de détecter les supports et résistance des marchés pour pouvoir me positionner en corrélation avec d'autres indicateurs de tendance pour me positionner à l'achat. Avec mes données sous Excel je pourrais y arriver logiquement.

Merci en tout cas pour vos retours.
De mon côté j'ai amélioré mes deux algorithmes très légèrement. Je voulais essayer de tater l'influence de mes différents paramètres sur le résultat et pourquoi cela se réalisait ainsi. Je pense que de ce côté j'ai fini cette partie tant que je n'ai pas d'autres données. Je vais donc commencer à me renseigner pour coder des algorithmes sur des plateformes disponibles pour me familiariser avec tout cela.

J'ai extrait jusqu'à fin 2009... encore 10 ans, bientôt la moitié :D

Re: Scooby's Back test 2020

par Falpa » 08 Jan 2020 09:49

Salut Scooby,

Oui de toute manière il faut faire ces propres erreurs pour évoluer. J'ai passé à peu prêt 2 ans a faire des calculs dans tous les sens et à me tromper, et je ne considère pas que c'est du temps totalement perdu.
J'ai également eu quelques backtests qui donnaient de bons résultats avec les méthodes que tu donnes, mais quand je les lançais en démo, ils ne donnaient plus de résultats corrects.

Il est possible de coder des algos sur supports/résistance, c'est juste plus complexe.
On peut tout faire en développement, comme repérer des circonstances ou on serait hésitant de rentrer en trading discrétionnaire, et donc détecter les phases ou le marché est frileux et va se mettre à ranger. Détecter l'euphorie, ou la panique, c'est mon but ultime, c'est de cette manière que j'appréhende les marchés, et cela permet de savoir si un support ou un résistance va casser.

Quand on commence à faire ce genre d'algos, tu vois que l’expérience est un prérequis au développement d’algorithmes. Et je trouve cela bien plus grisant qu'un algo mathématique simple.

Je suis très loin d'atteindre ce but, très certainement car mon expérience n'est pas suffisante.

Je te souhaite plein de réussite dans ton projet.

Re: Scooby's Back test 2020

par Falpa » 08 Jan 2020 11:17

Beaucoup de gens disent qu'en trading il faut rester simple. Je suis d'accord avec cela, mais même si le trading de support/résistance (break ou rebond) est un trading simple, il demande une grande expérience pour comprendre le marché.
Développer cette expérience est quelque chose de complexe. Je suis convaincu qu'un programme automatisant ces mécaniques ne peut pas être si simple, même si la stratégie d'origine peut être codée en quelque lignes.

Re: Scooby's Back test 2020

par ouf2finance » 08 Jan 2020 11:50

"La simplicité est la sophistication suprême !"
Récupérer des données et créer un système pour tester des stratégies est déjà un superbe outil ! Les plateformes actuelles sont à mon sens un peu limitées pour du backtest sauf si ce que l'on veut faire est dans ce qu'ils permettent de faire.
Avoir son outil permet de sortir des sentiers battus.
J'aborde le trading et surtout l'approche de codage comme un problème ouvert et ultra-complexe sur lequel toute la meilleure matière grise du monde phosphore dessus.
Il faut donc de la connaissance, de l'expérience et de la rigueur pour se lancer dans cette recherche. Je rejoins Falpa, ce chemin est tout aussi satisfaisant que le but recherché !

Re: Scooby's Back test 2020

par Falpa » 08 Jan 2020 12:24

Ah oui c'est sûr que c'est plus difficile à coder sur les plateformes traditionnelles... Mais on peut quand même faire pas mal de chose sympathiques sur PRT en se donnant la peine.
Pour ma part, je développe en JAVA qui est bien plus adapté.

Merci pour le soutient ouf2finance, je ne sais pas si on est très nombreux à avoir cette approche.

Re: Scooby's Back test 2020

par Scooby » 08 Jan 2020 13:42

Falpa,

Tu dis que tu as déjà réalisé pas mal de backtest maison et qu'après avoir trouvé ton bonheur celui ci n'a pas fonctionné en démo. Avec ton expérience, sais tu qu'elles sont les différences qui fond que les résultats ont été différents ?

J'aimerais tester mes paramétrages sur PRT en back test. Cela le demande de prendre un abonnement alors que je pensais que cette partie était gratuite, je me trompe ?
Pour faire quelques simulations vous connaissez quelque chose qui peut m'aiguiller pas a pas pour mes débuts ? :)

Merci

Re: Scooby's Back test 2020

par Falpa » 08 Jan 2020 14:17

Il y a plein de raisons qui peuvent faire qu'un backtest soit correcte mais ne fonctionne pas en live.
La sur-optimisation peut être une des causes. On optimise jusqu’à avoir un très gros résultat, c'est satisfaisant car les courbes sont très belles, les gains sont très gros et les pertes petites... Mais dans les faits, cela ne fonctionne pas car l'algo a été fait pour le marché qui a été backtesté.
Par exemple tu peux faire un programme qui va te donner de bons réultats sur les 6 derniers mois. Tu l'optimises jusqu'a avoir un gros chiffre, mais ces optimisations vont grossir les résultats sur des journées particulières qui ne se reproduiront plus. Si tu les retires du backtest, tu verras que ton programme ne marche pas.

Dans ce thème, on peut également imaginer une stratégie qui moyenne à la baisse. Ces stratégies sont gagnantes dans l’immense majorité des positions. Le bascktest sera beau. Mais en réel, il suffit d'un seul faux pas pour perdre tout son capital.

Une autre raison est l'évolution naturelle du marché. Des indicateurs techniques fonctionnaient très bien il y a 30 ans, et ils sont maintenant dépassés. Ou encore des réactions du marché à des annonces économiques imprévues...

Il y a aussi des raisons techniques. Par exemple IG peut très bien décider d'augmenter la taille du stop minimum (dans le cas du stop garanti), ce qui va empêcher ton algo de fonctionner et fausser les résultats.

Bref, il y a un écart entre le backtest et le réel, et d'ailleurs IG le rappel bien en disant que les performances du passé ne sont pas représentatives des performances à venir.

Le jour où tu trouves un algo qui fonctionne dans n'importe quelle condition de marché (quelque soit la psychologie actuelle des intervenants), tu seras gagnant sur le long terme, et cela est très difficile.

Je crois que proorder est gratuit avec IG. En tout cas c'était le cas avant. Mais cela fait longtemps que je ne l'utilise plus.

Articles en relation
Test et optimisation de strategie forex.
Fichier(s) joint(s) par BearIsDead » 26 Mai 2017 11:41 (41 Réponses)

ProRealTime