Création d'un algorythme de trading auto scalp + backtest

Forum sur le trading automatique et algorithmique : systèmes, backtests, robots de trading, résultats et limites, code à l'appui.
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Création d'un algorythme de trading auto scalp + backtest

Message non lu par Epitaf »

Bonjour à tous,

J'ai pu constater que la partie "robotisée" du trading n'emballe pas grand monde. Je me tente quand même à présenter mon projet.

Ce que je recherche : la performance, ou plutôt la régularité. Je ne suis absolument pas intéressé par un record de point dans une journée, mais plutôt par un record de journée positive. Je recherche donc mon équilibre entre ratio w/l et points gagnés

Dans la continuité de mon journal et depuis cet été où les marchés sont moins évidents à trader, j'ai entamé la création d'un algo de backtest au tick par tick que j'appelle personnellement BBT pour big backtest car j'y réalise des millions ( milliard ? ) de calculs.

Dans un premier temps je vais parler du côté purement technique

J'avais dans l'idée au début d'en créer un logiciel, puis j'ai rapidement été confronté à la limite de mon processeur ( 1h50 pour 1 calcul sur 1 an de tick par tick pour 1 sous jacent pour un i5-480M). J'ai alors complétement épuré l'algo et je l'ai complétement ( à mon niveau, est-ce qu'on peut mieux faire ? ) optimisé, je suis tombé à 14 secondes le calcul/an et je tombe à 3 secondes avec un i7 2600k à 8 coeurs.

J'ai réalisé quelques backtest tout récemment et j'en suis à l'analyse des résultats

Ce que j'analyse : Je ne vais pas rentrer dans les détails, ce n'est que la continuité de mon journal. Tous mes tests sont basés sur les seuils et indices les plus performants. Rien de bien sorcier, suffit de lire les 114 pages du blog bourse d'andlil et l'historique complet du forum :mrgreen:

Le comment : J'ai décidé de réaliser mon bbt et mon futur algo de trading auto ( que je vais appeler TAF ) en python. Pourquoi ? alors non je ne me suis pas réveillé en pleine nuit à 3h en criant python. J'ai découvert ce langage avec la L3 de falex. Et ça m'apporte deux choses, d'un : profiter de ce projet pour apprendre un langage en parallèle et de deux comprendre comment falex a réussi à se "brancher" avec l'api ( Falex si tu passes par là :mercichinois: )

Les prochaines étapes :
- Créer des graphiques pour analyser les résultats [OK]
- Étendre mes backtests, tester d'autres seuils et affiner la direction de mes recherches, ensuite je rajouterai divers facteurs important à prendre en compte ( idem que cité supra, je n'ai rien inventé, je n'ai fait que prendre ce que j'ai trouvé sur andlil et que j'ai analysé pendant ma période démo ) et je souhaite que mes futurs calculs se recoupent. Bon la, je crains un peu pour le temps du calcul.
- Créer mon TAF, ça à la rigueur, ça me fait moins peur
- Gagner mes premiers points :lol2:

J'ai déjà lu des commentaires sur le trading automatique, ce qu'il en ressort :

Des logiciels trop lourd: Je ne recherche pas un schéma redondant dans la matrice. Je ne fais que analyser minutieusement ce que j'ai déjà testé en démo pour le rendre encore plus efficace. De plus je ne compte pas créer un micro nano algo à la prt, mais je compte bien prendre en compte un maximummum d’élément que l'algo prendra en compte et il gérera les événements en fonction du "poids" de chaque information recueillie

Un marché qui change : D'où la création de mon bbt, chaque nouvelle journée sera re-analysée et ma stratégie en sera modifiée de façon infime

Je suis ouvert à toute critique ou conseil ;)
Et puis même si c'est pas pour parler de mon projet, au plaisir de re-discuter du monde automatique et de voir l'évolution de la vision des membres sur ce sujet :-)
Avatar du membre
bobbyO
Padawan
Messages : 407
Enregistré le : 30 janv. 2013 20:45

Re: Création d'un algorythme de trading auto perso

Message non lu par bobbyO »

Bonjour Sevice,
Interessant ...
Je me suis également lancé dans un projet assez ressemblant :
- Backtest en ticks. Pour l'instant, j'ai des backtests positifs sous PRT dans toutes les UT (3T, 4T, 5T, 10T, ...) mais je voudrais faire du multi-UT pour des détections de trades automatique
- Utilisation de l'API IG en C# .NET
- Utilisation de la librairie TA-LIB pour les indicateurs
- Comme toi, visualisation graphique pour les résultats (pour l'instant, pas commencé mais je suis intéressé par la manière dont tu vas t'y prendre
- Visualisation des equity curve et indicateurs du backtest (Le report tool de beni me semble d'un bonne inspiration)
- A priori pas de trading automatique mais plutôt du semi-automatique qui me permette de me donner les points d'entrée et sortie théorique pour du trading manuel. Mais il est vrai qu'avec cette API IG, des portes se sont ouvertes pour aller plus loin

Ton projet ressemble beaucoup au mien, je pense que l'on pourra partager pas mal de points.
lemerou
Apprenti Jedi
Messages : 626
Enregistré le : 01 juil. 2013 14:17

Re: Création d'un algorythme de trading auto perso

Message non lu par lemerou »

Entre le mandarin et le trading auto, tu ne chomes pas, on dirait :D
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

Bonjour bobbyO,

Oh ok, j'ai testé prt, mais j'étais trop limité dans la programmation :-) Et je n'ai même pas envisagé pour l'instant du multi UT. J'ai déjà beaucoup de boulot sur mon projet actuel.

Je connais peu le C et encore moins TA-LIB

ça y est j'ai mes graphiques ! Je vais faire chauffer l'imprimante au boulot cette aprèm. J'ai utilisé Numpy et tout un tas d'autres librairies, c'est simple et très efficace :-)

Pour ce qui est de la visualisation de l'equity et des indicateurs, ça se rapproche de ce que je voulais faire avec mon tableau de bord en php, je récurerais les flux réel en ajax, calcul du rsi,, etc

Tu en es où dans ton projet ?

@lemerou : Non je ne chôme pas, j'ai même entamé l'écriture d'un livre ;-)
Avatar du membre
Benoist Rousseau
Trader Futures / CME Member
Messages : 174717
Enregistré le : 06 sept. 2011 22:45

Re: Création d'un algorythme de trading auto perso

Message non lu par [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/src/Extension/CoreExtension.php on line 570: strtr(): Ignoring replacement of empty string
Benoist Rousseau
»

beau projet, je ne peux pas beaucoup t'aider, je code pas ou très mal
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

Merci Benoist :-)

Premier ordre automatique passé !
Au boulot j'ai peaufiné mes bbt, j'ai maintenant plusieurs stratégies très précises à convertir en automatique.
Aujourd'hui je fais ça, mais d'abord petite sieste :mrgreen:

Prochaine étape, faire fonctionner le taf sur plusieurs sous-jacent en même temps

Est-ce que quelqu'un sait comment compiler python ?
Avatar du membre
bobbyO
Padawan
Messages : 407
Enregistré le : 30 janv. 2013 20:45

Re: Création d'un algorythme de trading auto perso

Message non lu par bobbyO »

Bonjour Sevice,

Je ne connais pas Numpy, mais apparemment c'est fait pour Python. ça me parait différent de TA-LIB qui est une librairie de fonctions de trading.

A propos d'où j'en suis dans mon projet, comme je l'ai dit, j'ai d'un côté des backtests positifs sur PRT dans différentes UT. En parallele je fais 2 choses : améliorations de ces backtests PRT et migration en C# avec l'API IG pour merger les différentes UT en un seul backtest, puis simuler en trading auto dans un compte demo à voir .... La première partie est opérationnelle, la 2ème est en cours (disons 20%).
Mais je trouve que ça avance trop lentement . A un moment donné, je pensais décrire mon avancement dans un journal de trading dans le but d'expliquer mes points de blocage et vérifier que finalement avec le temps ça avance mais je n'ai pas franchi le pas encore.
Difficile également de trouver du temps :(
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

Oups, désolé bobby, je ne t'ai pas répondu.
Heikin Ashi bon une librairie de trading, ho je vais voir ça :-)

Tu codes en C ! whoo, j'aimerai bien savoir le faire, ça doit être bien plus rapide :-)
Oui ça avance lentement, tellement de petit truc à faire, à améliorer, à tester.
La j'ai été bloqué par le poids des fichiers log, j'ai un gros backtest de 1.3Million de calcul à réaliser, mais après un calcul de primaire, j'ai réalisé que j'allais me retrouver avec 60Gio de donnée à trier ... Donc, j'ai du tout repenser, éliminer toute information inutile, limiter les caractères au strict minimum et j'ai divisé par 40 le poids, au final ça me fera 1.5Gio.

J'ai accéléré tant que j'ai pu mon algo bbt. pour un calcul sur un an d'historique au tick par tick ( 200 fichiers avec parfois 180.000 lignes ), ça me prend 0.05 seconde, mais multiplié par 1.300.000, ça prend 18 heures ... pour un i72600k.

J'ai failli me résigner à acheter un nouveau processeur de compet', mais après avoir vu les différences de perf avec les nouveaux modèles, c'est pas mirobolant par rapport à l'investissement ..

Mais !! après ce premier backtest, j'enclenche mon algo trieur et j'adapte immédiatement en démo les stats optimales, peut être mes premiers tests en démo demain !!!

A faire ensuite : le même backtest sur le dax, dow, etc, et je vais multiplier les algos TAF en démo !
A faire aussi, les backtests sur d'autres seuils, puis rajouter des facteurs, bref, plein de boulot :-) Mais ça me pationne :-)

N'hésite pas à me solliciter si tu as besoin d'aide vu qu’apparemment, je suis en avance sur ton projet :-)
Bon par contre en temps libre, j'en ai énormément de mon côté, c'est important pour un tel projet sinon ça va te prendre des mois.
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

Calcul première stratégie sur CAC40 -> OK !!!

J'avais fait des petits calculs avec peu de boucle, mais la je suis passé au niveau supérieur.
Test effectué sur 16 stops, 200 entrées différentes ( au dixième de point ), 20 limites différentes, et 20 autres facteurs soit 1.3 million de boucle.

Une boucle teste la stratégie sur 200+ jours au tick par tick.
Environ 30 heures de calcul

J'ai été freiné par le fichier log qui sortait, plusieurs dizaines de Gio ( 60 de mémoire ). Après épuration, il sort 1.4Gio.

Ensuite gros problème pour le traitement des données, car j'avais 80 millions de trade à analyser ensuite. Je remercie chaleureusement un membre avec qui j'ai pu skyper qui m'a donné la solution. "Seulement" 18 heures de calcul supplémentaires et ça y est !

J'ai vite remis au travail mon pc, il calcule maintenant le DAX.
Ce week-end, j'adapte mes stratégies sur mon TAF et j'espère mes premiers trades lundi !
Avatar du membre
swapping
Maître Jedi
Messages : 4618
Enregistré le : 14 août 2014 06:49

Re: Création d'un algorythme de trading auto perso

Message non lu par swapping »

Vrai Quiche en programmation, je te souhaite bonne chance pour ce projet qui doit être passionnant :top:
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

- Swapping : Oui, il faut être passionné ( ou fou :mrgreen: ), il ne faut pas que je compte le nombre d'heure de développement :-)

- - : Merci pour ton intervention et ton point de vue :)

C'est la deuxième fois aujourd'hui que tu mentionnes Matlab. Je vais décortiquer les nombres que tu avances, Il y a 10 millions de minute en 20 ans. Et ça te prend quelques secondes pour un seul backtest, calcul et analyse.

De mon côté j'ai 20 millions de tick en 1 an.
Un seul backtest me prend ( en moyenne ) 0.084 seconde
L'analyse d'un backtest me prend ( en moyenne ) 0.05 seconde

Soit 0.134 seconde / backtest

En fait je m'approche d'un algorithme génétique. Quand je dis que j'ai réalisé 1.3 millions de boucle, c'est en fait 1.3 million de backtest. La même stratégie calculée inlassablement dixième de point par dixième de point, limite par limite, etc pour obtenir le trade le plus parfait possible.
Alors si un seul backtest me prenait 5 secondes, je serai en train de mélanger alcool et doliprane :lol2:
Je vais me pencher sur ta solution mais pour l'instant le temps de calcul que tu m'avances me semble peu optimisé
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

C'est l'inconvénient de rendre mon travail public, c'est que l'on me demande quel carburant je met dans ma mobylette pour qu'elle aille aussi vite :lol2:

C'est une mixture perso, je veux bien en parler à certains passionné comme toi mais en privé :-) Et si il le faut j'irai encore plus vite avec ton logiciel ;-)
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

Bon je suis passé au DAX, j'ai eu droit à mes 30 heures de calcul, mais par contre l'analyse va me prendre 42 heures au lieu des 20 pour le cac, différence du au nombre de trade qui doit être plus du double, je vais dépasser les 160 millions de trade.

C'est décidé, je vais investir dans de la ram, ainsi je vais pouvoir monter en mémoire beaucoup plus de tableau.

Bon la sur la photo c'est descendu à 3Gio sur 4, je pense que windows cherche à vider en permanence des tableaux ou il doit attendre qu'un tableau soit terminé avant de passer au suivant
IMG_20150907_091820.jpg
IMG_20150907_091820.jpg (64.63 Kio) Vu 2882 fois
Je vais m'acheter 16Gio de ram, ou peut être carrément l'ensemble proc/cm/mv

Et ça y est, mon algo est fonctionnel, minimaliste pour l'instant

Il récupère le cours via api
Je l'ai programmé pour qu'il ne fasse qu'un seul trade à la fois.
Il regarde s'il touche un seuil
Il regarde si le marché est haussier/baissier
Il se fixe des conditions d'entrées -> Si ok, il passe un ordre sur mon compte démo avec limite et stop déjà pré-configuré.

Tant que le trade est présent il est inactif.
Très simple, mais .. pas eu le temps de faire plus pour l'instant, puis chaque soit il va falloir que je passe au crible les graphiques de la journée et vérifier si tout s'est correctement déroulé.
Je vais ensuite l'améliorer par petite touche et vérifier chaque soir qu'il n'y ait pas de bug.

A faire :
Un deuxième algo pour le DAX
Calcul du DOW
Continuer à analyser les calculs et voir si je peux lancer plusieurs ordre sur le même seuil
Créer script détecteur de haute volatilité
Créer nouveau BBT sur seuil N°2
A suivre ..
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

Bonjour -,

Merci pour ton message :-)
Cette file servira au prochain motivé souhaitant se créer son propre algorithme :-)
Je ménage ma monture, je lui ai offert un ventilateur énorme, le noctua d14 et aucun overclooking ;-)
Avatar du membre
OpenBar
Chevalier Jedi
Messages : 2812
Enregistré le : 03 févr. 2015 13:24

Re: Création d'un algorythme de trading auto perso

Message non lu par OpenBar »

Intéressant, ça a l'air très carré. C'est bien.

Petite question : le fait de faire un algorithme génétique, est-ce que ça ne revient pas à faire du "curve fitting" ?
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

Peut-être, je ne connais pas ce terme, c'est quoi ?
Mon concept, je sais d'où partir. Je donne donc tout les éléments à algorithme. Il les décompose et se déplace jusqu'à trouver les conditions optimales
Avatar du membre
OpenBar
Chevalier Jedi
Messages : 2812
Enregistré le : 03 févr. 2015 13:24

Re: Création d'un algorythme de trading auto perso

Message non lu par OpenBar »

Le curve fitting, dans ce domaine, c'est adapter un algorithme à des conditions de marché précises.

Plus l'algorithme colle à certaines conditions, meilleurs seront les résultats sur le backtest. L'inconvénient est que l'algorithme va se spécialiser sur ces cours passés. En présence de nouvelles conditions, son efficacité sera énormément réduite car il sera en quelques sortes "perdu" face à ce monde nouveau.

Un curve fitting extrême serait de lui dire jour par jour ou acheter et ou vendre, aux moments des plus hauts et plus bas du jour. Résultat merveilleux sur le backtest, par contre une fois branché sur le monde présent, le zéro pointé serait assuré.
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

Exact,
L'historique que j'utilise ne dépasse pas 1 an.
Et mon objectif final est de lancer une analyse quotidienne après chaque journée et de vérifier si les meilleures variables le sont toujours et les modifier immédiatement si le marché évolue.

Je ne recherche pas les plus hauts et les plus bas.
recall

Re: Création d'un algorythme de trading auto perso

Message non lu par recall »

bonsoir sevice

je n'ai absolument aucune compétence dans ton champ d'application, en revanche j'ai chez moi trois Workstation Z800 HP 2x Quad Core de 48 Go de RAM chacune sur disc SSD
J'en n'ai bien évidemment besoin durant la journée en revanche si tu souhaites m'initier à ta problématique je peux faire tourner mes machines la nuit pour toi!
Bien à toi
Avatar du membre
Epitaf
Compagnon Jedi
Messages : 1241
Enregistré le : 25 mai 2015 17:30

Re: Création d'un algorythme de trading auto perso

Message non lu par Epitaf »

Bonsoir recall, ta proposition est alléchante, pour l'instant le temps de calcul ne me dérange pas, j'ai beaucoup de travail en attente. Mais j'espère monter d'un cran et encore multiplier mes boucles et mes tableaux, peut-être que j'accepterai ton aide :-) c'est en tout cas très gentil de ta part.

-, je me suis penché sur matlab, ça a l'air de correspondre à mes besoins, spécialisé dans la gestion de tableau. Ça me donne très envie. Mais son coût est prohibitif