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

Re: Création d’un robot parfait

par Edd » 02 nov. 2015 09:39

Soit doit être 1 épisode par mois non? :D

Re: Création d’un robot parfait

par Tartempion » 02 nov. 2015 15:34

Hello TripleFail ! JP Bouchaud = très bonne lecture ! (C'est un gars vraiment très brillant en tant que physicien cea/cnrs et son «theory of financial risk" fait référence.. Il a un peu changé d'avis sur sa discpline financière j'ai l'impression ces derniers temps mais c'est pas le sujet. Hurst et kalman c'est normal de passer par là. Beaucoup y sont passés. À la place des FFT je te conseille, si tu ne l'as déjà fait, de te pencher sur les ondelettes plus pertinentes ici à mon avis. Tu trouveras sur arxiv.org (mais tu connais peut-être déjà) pas mal de matière. En tout cas je vais suivre ta file, qui m'intéresse ! Bonne route !

Re: Création d’un robot parfait

par TripleFail » 02 nov. 2015 15:55

Pour les impatients voici la suite (mais pas encore la fin)
Pour Tartempion j'ai laissé cette approche de côté, pour le moment. Et merci de l'intérêt pour le sujet.


Période 2011-2013

Après les tentatives infructueuses précédentes, je me décide cette fois de changer de sous-jacent et utiliser les options que je viens d’apprendre à maitriser (livres : options futures et autres actifs dérivés, pricing et volatilité des options, faire de l’argent avec les options). Je crée un premier robot swing trader (en c++), utilisant un de mes indicateurs perso en UT journalière (voir article précédent) sur le S&P500, dow jones et dax30. Et là miracle performance élevée, taux de réussite énormes. Mais je ne passe qu’un ou deux ordres par mois, donc finalement je décide d’utiliser les options manuellement, il n’y a pas d’intérêt à automatiser cette stratégie (pour les curieux mes stratégies favorites sont, risk reversal, short strangle, front spread et skip strike butterfly).

Ensuite je m’intéresse à un algorithme génial que j’utilisais déjà dans la robotique ludique ou les jeux vidéos. L’algorithme génétique (voir l’article de wikipédia sur le sujet), cet algo permet de trouver une solution optimale à un problème, même si celui-ci n’a pas de solution précise. De plus cet algorithme est facile à mettre en place et peut-être réutilisé pour tout type de problèmes. Je fais donc un essai pour trouver le réglage optimal d’un robot (meta trader 4 permet de faire ça, mais je recommande de le faire en c++ pour des raisons de vitesses et éviter la sur-optimisation). Premier test fait, premier échec constaté, on a un résultat spectaculaire sur l’historique d’apprentissage mais complétement nul sur l’historique de validation. Donc finalement je refais un programme de A à Z de manière à éviter ce soucie, mais malheureusement les performances grimpent, mais de trop peu, donc je l’oublie pour ce genre d’usage. Quelques années plus tard j’aurais finalement crée un projet (voir capture d’écran) pour déterminer quelle ratio financier est le mieux et avec quels réglages pour créer un stock screener avec une stratégie parfaite, mais je n’ai pas retenue le projet (ayant plus performant et plus fiable à ce moment-là).

Image

Ensuite j’ai tenté le tout pour le tout, je savais qu’un réseaux de neurones a plusieurs couches permettaient d’apprendre n’importe quelle fonction non-linéaire. Après quelques tests fait sur des bases de données d’entrainement (prédire âge de coquillage, sexe d’une personne, apprendre une fonction mathématique, etc…) je décide de me lancer j’utilise un programme en c++ simple, programmer avec la librairie FANN, je fais apprendre des historiques de cours très longs (après avoir préparé les données, un réseau de neurones ne peut pas prendre de données brutes). Et je n’obtiens rien ! l’erreur moyenne en entrainement ou généralisation est de 0.7% ce qui correspond plus ou moins au mouvement moyen sur la période de test. Donc je décide de rajouté des données en entrée, différents indicateurs techniques, volumes etc… , mais les choses ne s’améliorent pas. Je décide de faire autrement et j’utilise le réseau pour trader comme un trader humain, dans l’historique j’indique en sortie ce que j’aurais fait, achat, vad, etc… le résultat est intéressant, on a l’impression de voir un trader humain à l’œuvre on est plus aussi psycho-rigide qu’avec des If et Else, mais les performances restent médiocre. Donc j’oublie les perceptrons multi-couche et time delay neural network (les 2 types de réseaux utilisés).

Dernière tentative pour la période utilisée l’intelligence humaine. Sur un site de trading virtuel, je récupère les positions des traders faisant à peut prêt la même stratégie. J’utilise l’algorithme aléatoire de majorité pondérée (intelligence artificielle de stuart russell et peter norvig) pour prendre les positions. Pour faire simple chaque trader a un poids qui évolue en fonction des bonnes ou mauvaises prévisions, ce poids est mis à jour après chaque prédictions, dans le temps on élimine les mauvais traders des bons, si le marché change de configuration les mauvais peuvent redevenir bon et en quelque tour être de nouveau privilégier. Sur le papier c’est bien, dans la réalité il aurait été nécessaire de créer le site de trading sur lequel on récupère les infos, la perfection, être courtier pour avoir les positions de ses clients. Donc j’ai gardé l’algorithme de côté pour d’autre usage et laissé tomber cette solution, n’étant ni webmaster, ni broker (on peut toujours l’utiliser pour faire une synthèse des prédictions de différents algos).

La suite au prochain épisode ;)

Re: Création d’un robot parfait

par plataxis » 02 nov. 2015 16:20

Quel boulot ! Et quelle passion derrière tout ça m

On en redemande...

En version courte, sur l'ensemble de ta vie de trader, es-tu gagnant manuellement ? Es-tu gagnant avec un robot ? Cela représente-t-il de grosses sommes par rapport à ton capital / tes autres revenus ?

Re: Création d’un robot parfait

par TripleFail » 02 nov. 2015 21:21

@plataxis

En version courte, sur l'ensemble de ta vie de trader, es-tu gagnant manuellement ?

Oui, sur action/obligation (dans une approche long terme), je fais entre 15% (mauvaise année) et 85% (bonne année), multiplier par le levier utilisé (entre pas de levier et 1.66 via crédit lombard). Je n'ai jamais fait un calcul total précis, mais après impôts et retraits, le capital a été multiplié par 22 sur 12 ans (à long terme il y a d'énorme avantage sur la fiscalité). Sur option en swing trading je suis bénéficiaire aussi, mais sur des montants plus petit et une durée plus courte.

Es-tu gagnant avec un robot ?

Oui, sur des choses qui ne sont pas encore dévoilés. Dans ce qui a été dévoilé il y a des algorithmes gagnants, mais qui ne présentent pas d'intérêt à être automatisés ou qui s'avère moins performant que ma stratégie de long terme (surtout après impôts).

Cela représente-t-il de grosses sommes par rapport à ton capital / tes autres revenus ?

Non, ce qui a été testé en réel par le passé l'a été fait sur des petites sommes, donc je dirais un peu moins de 7000€ de gain cumulé, mais surtout le plus important la performance en % n'est pas aussi bonne que ce que je fais manuellement. Par la suite les choses changeront surement.

Re: Création d’un robot parfait

par plataxis » 02 nov. 2015 22:12

Je te le souhaite :)

Et bravo pour ce que tu as déjà réussi.

Re: Création d’un robot parfait

par Jeff719 » 06 nov. 2015 11:35

Félicitation pour ce dynamisme infatigable !

Concernant les algorithmes génétiques, je ne te suivrais pas tout fait.

Je ne crois pas qu'ils soient spécifiquement adaptés à une solution imprécise ou floue.

Leur rôle est d'explorer un espace, éventuellement gigantesque pour fournir dans un temps décent de calcul une solution proche de la meilleure. Ca ne fait qu'explorer efficacement les possibles. Marrant que ce soit les mécanismes de la vie qui aient donné l'idée de cette méthode qui a montré sont incroyable efficacité.

Si je dispose d'un ordinateur de puissance infini, à l'évidence je jette tous mes algo génets puis mouline toutes le combinaisons.

C'est tout.

Par ailleurs, je crains que la question du temps de calcul et celui de la sur optimisation ne soient pas le même sujet. Face à une problème complexe, j'ai tendance à le découper en sous problèmes, si tant est qu'ils soient indépendant.

La sur optimisation par ajustement des paramètres de back test est un problème récurrent, monstrueux, dévastateur et permanent. Chassez la sur optimisation et elle revient au galop. On arrive à sur optimiser sans optimiser de paramètre : juste quelques IF THEN sur une paire favorite qui marchent depuis quelques temps et ne marcheront pas dans le futur, c'est déjà de la sur optimisation.

Dans ce contexte - je ne vais pas écrire tout un article concernant la sur optimisation - je ne vois pas en quoi faire sa cuisine génétique en C++ plutôt que celle existante dans certains environnements, résolve en quoi que ce soit la question de la sur optimisation.

Concernant les NN, je crois que là, il y a un lien entre les deux problèmes : capacité d'apprentissage-temps de calcul- efficacité / sur optimisation.

Les processus sont peu explicites. Ils font des choses, mais il est difficile d'expliciter façon base de règle ce qu'ils font vraiment. La perception intuitive du nombre de degré de liberté est délicate. On ne sait pas sur quel nombre d'évènements s'ajustent certains paramètres. C'est une erreur récurrente de croire que le nombre d'évènements c'est le nombre de trades. S'il y a 3 phases de hausses et 4 phases de baisses de long terme l'ajustement de paramètres qui tiennent compte d'une tendance de long terme n'ont que 6 évènements : les retournements. Là, le out of sample ne donnera rien même si on fait 2000 scalps pendant l'historique étudié.

Un système complexe façon boite noire qui, quelque part et de façon non explicite, créera une pris en compte de cette tendance de long terme aura forcément des performance sur le passé non reproductible dans le futur. Ici la tendance de long terme n'est qu'un exemple. On peut aussi avoir des dimensions fractales - ou plutôt le gradient de dimension fractale - qui se trouve à un moment dans un TF puis dans un autre TF un moment plus tard. C'est peut être totalement aléatoire. Ou pas. L'illusion de prédictibilité est toujours fournie lorsque par hasard, de longues séries apparaisse dans l'historique de l'actif considéré. Plus le système est complexe, puissant et autonome, plus il aura le potentiel pour... se faire avoir !

C'est pourquoi je préfère un génétique - voir pas de génétique du tout - plutôt que des boites noires qui risquent surtout d'apprendre le bruit du passé.

Bonne continuation !

Re: Création d’un robot parfait

par plataxis » 06 nov. 2015 13:14

Je rejoins Jeff, avec un avis sur la question plutôt d'inspiration scientifique : pas forcément la meilleure approche pour les marchés mais un point logique à ne pas négliger.

Lorsque l'on fait des tests statistiques tout azimut, on finit par trouver des corrélations rigolotes (taille des passants / côté de la rue où ils passent, etc...) qui ne veulent rien dire. Si on les reproduits, la probabilité que ces corrélations soient confirmées est mince, mais pas inexistante. De ce fait, il est raisonnable de penser qu'un test statistique a priori n'a de valeur que s'il est sous-tendu par une hypothèse logique avec ce que l'on sait ou crois savoir : tester la corrélation entre pluviométrie et humidité a du sens, tester la corrélation entre pluviométrie et couleur de la veste du 1er ministre n'en a aucun (du moins dans mon système de pensée... :| )

Pour en revenir au trading, je pense important de limiter les backtests à des comportements logiques de marché : break-out initiant une tendance, rebond initiant un renversement, risque de renversement ou Consolidation en cas de sur achat / survente, etc.

Tester sans savoir ce que l'on test façon "boite noire" permet je pense de trouver des martingales amusantes sur le plan intellectuel mais sur lesquelles je ne miserais pas un centime.

Re: Création d’un robot parfait

par TripleFail » 06 nov. 2015 16:26

@Jeff719
Pour éviter toute sur-optimisation comme précisé dans l’un des premiers postes, je développe sur un historique et valide sur un autre, qu’importe la méthode, de plus si les deux sont validés sans modification je test sur d’autres valeurs et en réel.

Pourquoi le c++ (j'utilise aussi le c#), plus rapide, permet de créer un logiciel de A à Z complexe, 1/3 tiers de mes projets ne sont pas réalisable sur une plateforme trop simple comme meta trader 4 ou 5. Un backtest meta-trader avec algo génétique prend des heures de calculs, là où il me faut que quelque minutes sur un programme c++ (8 * 2.2 ghz). Meta trader que soit le 4 ou 5 ne permet pas le multi threading. Sur un logiciel perso en une seule phase de test je peux passer de l’historique d’apprentissage à celui de validation pour voir l’évolution de l’erreur et donc ne pas attendre la fin pour me rendre compte que c’est du flan. Enfin et c’est énorme avec meta-trader 4 et 5 on peut trader pratiquement rien et peut d’informations son accessibles (et je suis gentil).

Concernant les NN, je dispose de 4 ans d’historique monstrueusement détaillés (sur 6000 actifs différents), de 15 ans détaillé et un siècle moins détaillé. Je sais que c’est des boites noires et ça ne me pose aucun souci, on ne peut pas arriver à une performance élevé avec des algorithmes classiques comme monsieur tout le monde. Et comme pour les autres algos il y a 2 historiques un d’apprentissage et un de validation. De plus la tentative de prédiction de cours était je savais vouer à l’échec, mais ça ne coûte rien d’essayer, de plus ça m’a permis de voir que certains sur le net mentais à ce propos et ça va éviter aux gens de faire la même erreur (j’ai même testé en réseau profond à 6 couches). Pour déterminer un cour future on n’aurait juste besoin du dernier cour connu (on verra sa plus tard en détail dans la suite) et par contre de beaucoup d’infos sur ce que font les autres (impossible à avoir avec meta trader justement). Après j’ai pas repris tout ce que vous avez dit pour ne pas spoiler la suite.

@Palataxis justement j’ai plusieurs protocoles pour éviter ça, en plus de l’historique d’apprentissage et celui de validation, j’utilise des formules pour tester si des variables sont prédictives ou juste une simple corrélation. Du coup pour spoiler un peu sur mes derniers joujoux j’ai complètement occulté l’analyse technique, certaines données macro-économiques (dite pourtant avancé). Et ensuite qu’est-ce qu’un comportement logique de marché ? Ce que vous dites ensuite est de l’analyse technique, une science imprécise avec un taux d’erreurs monstrueux, basé uniquement sur les cours, je pense qu’il est possible de faire mieux, certaines données ont un impact monstrueux sur les cours.

Re: Création d’un robot parfait

par Edd » 06 nov. 2015 17:24

Monstrueusement flou tout çà... :ugeek:
à mon avis le Monstre n'est pas près de naître... :musique:

c'est pourtant simple, :?
2 ou 3 actif (6000 lol), :shock:
de bonnes bases en analyse graphique (pas technique) :ugeek: ,
une bonne logique "If Else", :mrgreen:
une stratégie de passage d'ordre bien éguisée, :twisted:
et c'est tout... 8-)

m'enfin bon... :lol:
peut être que la surprise viendra de l'épisode 8 de la saison 4 :zzz:

Re: Création d’un robot parfait

par TripleFail » 06 nov. 2015 18:12

- Edd
Avec votre concept Edd on a des performances discutable, on enrichi son courtier et le fisc avant de s’enrichir soit même. Mon idée est de trouver la stratégie idéale pour m’enrichir, pas de faire un énième robot de trading bidon. J’ai quand même résumé en peu de temps 2007 à 2013 (en espérant n’avoir rien oublié). Dans tout ça il y a des choses utiles qui peuvent intéresser des traders moins exigeants :
-Améliorer des indicateurs techniques (filtrage, combinaison, etc…), pour améliorer les résultats.
-Si on souhait automatiser sa stratégie, il vaut mieux utilisés les réseaux de neurones, pour avoir une meilleur perception du marché et plus « d‘humanité » qu’avec les If Else.
-En créant un système inspiré de la théorie du chaos et des marchés fractales, on obtient des résultats sympas, proche de l’etf momentum.
-Les options grâce à un profil de gain non linéaire et des combinaisons bien précises permettent d’augmenter significativement le taux de réussite (mais pas d’intérêt à automatiser).
-Les algorithmes génétiques permettent (si on le fait dans de bonne condition) d’améliorer tout programme existant et même de trouver des stratégies de long terme intéressantes (dans notre exemple et en trouvant des réglages de stock screener bien sympa).
-Un réseau de neurones profond ne peut pas prédire les cours en utilisant uniquement des indicateurs techniques, point-pivot, résistance/support, les cours et les volumes. Il en faut plus.
-L’algorithme aléatoire de majorité pondéré, peut être sympa pour utiliser l’intelligence humaine (si on est broker), ou pour faire une synthèse de plusieurs algos.

Petit oublie en 2011 j’ai essayé aussi le pair trading, sa marche bien, mais on enrichie surtout son courtier par le volume d’ordre. Pour ceux intéressé il y a des codes sources déposés sur quantcode qui peuvent faire une bonne base pour se lancer.

Re: Création d’un robot parfait

par Mister Hyde » 06 nov. 2015 21:05

Lecteur assidu de la file et intéressé par le tading auto, quantitatif et machine learning, je te remercie pour le partage d'expérience, et en plus, c'est bien écrit. :mercichinois:

Re: Création d’un robot parfait

par takapoto » 22 nov. 2015 08:28

Bonjour TripleFail,

Je viens enfin de prendre le temps de lire ton blog https://iafinance.wordpress.com et je voudrais te remercier car c’est une des lectures les plus intéressante que j’ai pu faire sur le sujet depuis longtemps.

Dans ta présentation tu dis que tu n’est pas très partageur, mais qu’est ce que ce serait si tu l’étais !

Re: Création d’un robot parfait

par swapping » 22 nov. 2015 09:29

Tout comme takapoto, je trouve ton blog vraiment bien écrit avec des explications claires sur des sujets pas aussi simple que l'on pourrait croire
Je te remercie pour ce partage et souhaite que tu réussisse à créer un robot qui puisse être "profitable" :mercichinois:

bonne continuation, je vais prendre le temps de lire l'intégralité de ton blog :top:

Re: Création d’un robot parfait

par Ano782345 » 22 nov. 2015 11:59

Je suis impressionner par vos connesense et je prend beaucoup de plaisir à vous lire, je ne suis pas programmeur mes capacités se son arrêter à faire tournée tous les pcs de la maison en même temps sur mt5, quelque ligne en c pure dois sûrement tourner plus vite.
Sur le fond j’ai quand même l’impression qu’on cherche de rationaliser le Hazard, j’aime les paraels avec la météorologie.

Deux aspect qui m’intrigue toujours le première et fibo que beaucoup on chercher à expliquer mai qui reste toujours un miser pour moi.
Le deuxième qui a mon avis à de l’avenir et les testes avec google pour prévoir les mouvements boursier.

Re: Création d’un robot parfait

par Jeff719 » 22 nov. 2015 12:13

Fibo, c'est de la foutaise.

Opinion que j'ai développée sur un site ami :

http://www.videobourse.fr/forum-forex/viewtopic.php?f=10&t=12759

Re: Création d’un robot parfait

par Ano782345 » 22 nov. 2015 13:00

J’attend l’avis des autres, pour ma pare j’utilise fibo comme des niveaux psychologique peu importe que se sois 1.5 ou 1.68 il est un indicateur de niveau que je mais en parallèle avec les pivots et les niveau SR supérieur quand j’ai trois niveaux proche et un indicateur de sur achat par exemple je s’est que les probabilitées d’un retournement même temporaire est élever.

Re: Création d’un robot parfait

par Jeff719 » 22 nov. 2015 13:16

Oui, tu as parfaitement raison et c'est bien le propos que je développe dans l'article.

Ce qui importe, c'est à un moment donné d'avoir une grandeur à la louche qui peut bien valoir 1.6, 1.618 ou 1.7 peu importe. Ce qu'il faut c'est à un moment appliquer cette projection car il faut bien essayer de sortir en gain un jour.

L'erreur de raisonnement que font les gens c'est de conclure que si la stratégie est gagnante, alors c'est la preuve que 1.618 et la bonne mesure (alors que 1.7 donne le même résultat).

Re: Création d’un robot parfait

par TripleFail » 22 nov. 2015 20:18

-Mister Hyde, merci pour le compliment sa donne toujours envie de continuer.

-- c’est effectivement des bons livres de débutants, on peut ajouter aussi Algorithmic Trading and DMA: An introduction to direct access trading strategies de Barry Johnson, j’avais aussi trouvé un livre énorme sur le sujet (1200 pages) mais qui était particulièrement nulle (on croirait que l’auteur à fait un mémo de ses connaissances, sans approfondir). Inside the Black Box: A Simple Guide to Quantitative and High Frequency Trading de Rishi K. Narang est très bon aussi. Pour les personnes intéressées tous ces livres se trouvent en PDF. Mais j’ai trouvé les choses les plus intéressantes en PDF (malheureusement je n’ai plus les liens, je peux toujours données des noms, mais sans savoir si cela m’a aidé ou pas , j’ai plusieurs centaines de pdf), sur des sites comme quantcode, quantpedia, etc…

-takapoto et swapping, merci du compliment. Pour le coté partage, certains aimeraient que je donne les codes sources, les applis (surtout ceux qui me connaissent IRL et qui ont vu mes derniers joujoux), les bases de données etc…. pour les articles sur les stratégies d’investissement, que je détails plus les formules etc…. Que je donne mes positions réels (j’ai fait ça pendant un temps mais je suis trop paresseux pour le faire sérieusement). Donc ma nouvelle ligne directrice c’est plus d’articles, condensés, claires et j’invite les gens à approfondir par eux même ou sur des sites qui détail plus.

-Ano782345 et Jeff719 (dans une moindre mesure, sur le fibo), je ne cherche plus à rationaliser le hasard, j’essaie de vraiment comprendre le marché. Pour moi les indicateurs techniques, figure chartiste, fibo, ligne de gan, etc…. sont juste fonctionnel par le coté prophétie auto-réalisatrice et basé sur rien de sérieux (d’où le fait que sa marche quand même un peu, mais qu’avec une faible probabilité de réussite, d’où l’importance du money management et de la psychologie) et j’oubliais, gap, support et résistance sont pour moi plus sérieux car dans mon analyse sur des ut courtes on peut les deviner dans le carnet d’ordre. Il y a des choses qui ont un impact réel ou du moins je le pense et essais d’analyser tout ça : analyse financière (une entreprise fini toujours pas rejoindre sa vrais valeur), impact des changements de notes d’analyste, carnet d’ordre, volume du marché option, transaction d’initié, opa, profit warning, annonce de résultat, c.o.t., macro économie etc… Certains ont un impact sur une durée limité d’autre beaucoup plus longtemps. Evidement c’est mes convictions personnelles ça peut être soumis à débats, mais je cherche vraiment à tout essayer combiner et peut être trouvé le saint graal lol. Le parallèle avec la météorologie est vraiment intéressant car la météo et la bourse sont deux systèmes chaotiques.

Sinon, j’ai déjà préparé la suite de mes articles, mais ce n’est pas terminé, je manque de temps en ce moment et j’ai une orthographe catastrophique ce qui ajoute du temps de correction (dont je ne suis même pas sure de la qualité).

Re: Création d’un robot parfait

par Ano782345 » 22 nov. 2015 20:37

A sur l'orthographe bienvenue au club, s'est un point que tu n'est pas prêt de me battre.

:) ;)

Sujets similaires
Création et suivi de mon premier robot
par Zefran » 28 mars 2019 13:03 (1 Réponses)
Cinéma : la recette du héros parfait
par loilodan » 28 déc. 2018 10:30 (2 Réponses)
Test du Casque sans fil QuietComfort 35 II un casque parfait
par noko » 06 janv. 2019 20:54 (8 Réponses)
Le geste parfait : Le rasage traditionnel
Fichier(s) joint(s) par meco215 » 23 juil. 2019 22:17 (7 Réponses)
Vers la quête du son parfait pour les vidéos YouTube
Fichier(s) joint(s) par helio » 13 mai 2020 16:50 (145 Réponses)
Instant parfait à fleur d’eau
Fichier(s) joint(s) par ChristelleP » 11 mars 2021 20:01 (2 Réponses)
L’instant parfait
Fichier(s) joint(s) par Amarantine » 06 avr. 2021 18:14 (8 Réponses)
Quel indicateur prendre en compte pour un robot trader
par jctrader » 24 mai 2014 16:44 (18 Réponses)
Takaticks : Partageons nos scripts Petit Robot
par plataxis » 16 avr. 2015 00:57 (5 Réponses)