Human computation, ton cerveau m’intéresse!

{plusone}

Note: Cet article invité a été rédigé par Christophe Méheut. Christophe Méheut, ingénieur Arts et Métiers est l’architecte technique des Krabott. A 43 ans, Christophe est expert dans les systèmes de calcul intensif faisant notamment appel au calcul parallèle sur GPU (CUDA). La partie théorique de Krabott s’appuie sur un projet de thèse en finance quantitative de l’Ecole des Mines de Paris.
La résolution d’un simple captcha, l’association de tags à des images, la reconnaissance d’une signature manuscrite : toutes ces taches qui paraissent pourtant simples résistent encore à l’automatisation. Le cerveau humain aurait-il un meilleur processeur que les machines ?

C’est en partant de ce constat que Luis von Ahn va poser en 2005 dans sa thèse le concept de « Human computation », un concept placé aux côtés de l’intelligence collective ou du crowdsourcing. Partant du constant que les logiciels d’OCR (reconnaissance automatique de caractères) atteignent rapidement leurs limites lorsque les ouvrages sont anciens ou lorsqu’il s’agit de s’approcher d’une fiabilité à 100%, il a l’idée de mutualiser « du temps de cerveau disponible » pour réaliser cette tache. C’est le projet reCAPTCHA.

Le CAPTCHA est un test informatique bien connu, permettant d’éviter qu’un robot vienne polluer les inscriptions d’un forum par exemple ou créer des millions de faux utilisateurs. reCAPTCHA est une sorte de CAPTCHA qui vérifie qu’un humain est bien derrière la machine en lui demandant de retaper des mots scannés présentés à l’écran sous forme de petites images. Mais ces mots scannés sont ceux d’un document réel ou d’un ouvrage en cours de numérisation. Ainsi, sans le savoir l’utilisateur participe à un travail de digitalisation qui serait couteux et de moins bonne qualité s’il avait été confié à un logiciel d’OCR.

 

 

reCAPTCHA est donc un banal logiciel d’OCR mais qui a la particularité de s’appuyer sur une puissance de calcul humaine phénoménale : l’équivalent de 23 000 personnes travaillant 7j/7 et 24h24, soit 23 000 processeurs humains.

 

 

 

Il serait alléchant de pouvoir disposer d’une telle puissance de calcul pour du trading algorithmique : des milliers voire des millions d’utilisateurs viendraient mettre à disposition leur temps, leur énergie et leur intuition pour concevoir et améliorer sans cesse des stratégies de trading. Et gratuitement si possible!

Utopique ? Pas tout à fait. En 2001, un chercheur Alexander Kosorukoff définit le concept de « human based genetic algorithm » ancêtre en quelque sorte de l’algorithme de reCAPTCHA. Il s’agissait de faire intervenir des humains au cœur même d’un processus d’optimisation et d’exploration algorithmique : c’est à dire aux étapes cruciales de sélection et de reproduction qui sont au fondement de la théorie des algorithmes génétiques. Alexander Kosorukoff a démontré dans ses publications qu’un processus qui mettait l’homme au service de la machine donnait des résultats plus performants que la machine seule.

Le projet Krabott, initialement développé au CERNA (Laboratoire de l’Ecole des Mines de Paris) en 2009 s’appuie sur le « human based genetic algorithm » pour appliquer un principe de Human computation dans la sphère du trading algorithmique. Il s’agit de recruter des utilisateurs pour participer aux étapes de sélection et de reproduction de stratégie de trading, sur le modèle défini par Alexander Kosorukoff. L’utilisateur a pour mission d’« adopter » un dizaine de stratégies de trading, pour les évaluer, les comparer et en créer des nouvelles par croisement « génétique » de deux stratégies « parents ».

Krabott est présenté sous forme d’un jeu, on peut y participer pour la compétition en face des autres « desk » ou pour bénéficier soi-même de stratégies de trading « entrainées » par la communauté. Particularité de Krabott, on y joue en « aveugle » le contenu des stratégies n’est pas connu des joueurs qui ne peuvent visualiser que leurs performances macro (P&L et ratio de Sharpe). Il est ainsi ouvert à des joueurs amateurs sans aucune connaissance du trading*.  Toutes les stratégies sont appliquées sur le marché du FOREX et sur la paire EURUSD, sur une fréquence à la minute. La plate-forme calcule toutes les minutes les positions de dizaines de milliers de Krabott sur le marché en simulant des passages d’ordres dans des conditions réelles (temps réel, spread…), ce processus fait appel à du calcul sur carte graphique (CUDA).

En concurrence de ces utilisateurs humains, des machines de calcul réalisent des millions d’opérations génétiques visant à améliorer le contenu des stratégies de trading existantes, et constituer un vivier de solutions possibles. Ce vivier sert à la fois de base initiale de travail pour les joueurs et de référentiel pour mesurer la performance de l’ensemble du processus.

Les premiers résultats qui seront publiés cette année sont étonnants :  ainsi 70% des meilleures stratégies de trading sont issues du travail des joueurs alors même que les stratégies « joueurs » ne représentent que 16% du total des stratégies évaluées dans le jeu (les autres sont purement issues du calcul). Idem pour le ratio de Sharpe qui est très sensiblement meilleur avec des Krabott issus d’interventions humaines.

Mais Krabott a démarré en 2010 avec des stratégies de trading très basiques dont les performances moyennes sont médiocres et peu spéculatives. Une seconde version de Krabott prévue début novembre 2012 apportera de nouvelles stratégies plus spéculatives et le multidevise (EURUSD, EURJPY, EURCHF, EURGBP).

Quelles applications concrètes pour le Human computing dans le trading ? Un système comme Krabott permettrait à la fois de confier à un ordinateur « humain » l’optimisation des paramètres d’une stratégie de trading existante ou d’explorer de nouvelles combinaisons à partir d’une stratégie donnée, avec une capacité d’adaptation temps réel en fonction des comportements du marché.

Reste à trouver l’incentive qui sera capable de réunir en permanence des milliers ou des millions de joueurs !

Krabott sur le web : www.krabott.com
Krabott optimisé mobile : www.mkrabott.com et sur l’App Store « Krabott »
En savoir plus sur le Human computation : http://humancomputing.blog.lemonde.fr/

(*) Cette ignorance des joueurs rejoint un autre projet scientifique né un peu plus tôt, et également fondé sur le jeu et le human computation : Fold-it.

Introduction aux séries temporelles en finance

 

Voici le début d’une série de tutoriels vidéos réalisés et partagés par Curunir sur le sujet du forum “Arbitrage statistique et Pairs trading“.

La première vidéo est une introduction aux séries temporelles en finance.

Et la correction des exercices…

Merci beaucoup à Curunir pour le partage!

OrderBookFx, tradez avec un coup d’avance

 

Comme j’en parlais dans l’édito du mois de mars, OrderBookFx est un nouveau service assez innovant pour les traders individuels. Il permet en effet d’obtenir le carnet d’ordres d’une paire Forex. Impossible? Le forex est un marché de gré à gré ? Vous avez raison, contrairement aux contrats listes comme les actions ou les futures, il n’y a pas de prix officiel sur le Forex. Tout le monde peut plus ou moins proposer son prix et trader sur celui-ci s’il trouve une contre-partie.

Il existe cependant des ECN utilisés par les institutionnels comme Currenex, HotspotFXi, Integral, FXAll et LavaFX qui proposent leur propre carnet d’ordres synthétisant les offres de leurs clients. Y avoir accès n’est généralement pas chose faisable pour un client particulier… Du moins jusqu’à ce qu’apparaisse OrderBookFx.

OrderBookFx aggrège en effet les données de ces différents fournisseurs de liquidités et les transmet dans un flux real time haute fréquence. Et devinez quoi? Le service en beta actuellement est gratuit! Aucune raison de ne pas essayer donc.

 

orderbookfx

 

OrderBookFx propose egalement un indicateur disponible sur MT4 afin de surperposer les informations du carnet d’ordres directement sur le graphe. Il est donc tres pratique de comparer les updates fournies par votre broker avec celles d’OrderBookFx. Petite astuce, pensez à ajouter le tracé de la ligne de niveau Ask sur MT4 (dans les propriétés de la fenêtre en faisant un clic droit), puisque le niveau par défaut est celui du Bid. Avec en blanc le Bid broker, en rouge sur toute la fenêtre le Ask broker et en rouge/vert les données de OrderBookFx, on obtient ceci :

 

orderbookfx

 

Par cet article, je ne vais pas rentrer dans les détails de toutes les informations que l’on peut obtenir via le carnet d’ordres. Cela demanderait un bouquin entier… Je vais donc plutôt me concentrer sur un aspect qui m’a sauté directement aux yeux.

 

orderbookfx

Cliquez pour aggrandir

 

Si l’on observe les prix, on remarque que les données présentent des moments calmes où pas grand-chose se passe, puis certains décalages, accélérations se produisent Je parle bien ici de décalages classiques qui n’ont rien à voir avec les spikes que l’on obtient pendant les news. Pendant ces décalage, on remarque clairement que les data de OrderBookFx sont en avance. Le carnet d’ordre entier décale fortement puis se pause. Enfin, le broker met à jour en 2 ou trois ticks ses propres niveaux bid/ask pour matcher ceux des flux aggrégés. OrderBookFx permet donc assez clairement de trader avec un coup d’avance. Peut-être pas sur le broker qui retombera sur ses pattes d’une manière ou d’une autre, mais au moins sur la foule de ses clients retails.

Certains brokers présentent de temps en temps des freezes de leurs quotes. Avec cet outil, on ne pourra plus vous cacher l’évolution du marché…

Rapide, mais rapide a quel point me direz-vous? Visuellement, on peut configurer des updates toutes les 50 ms, ceci pour ne pas consommer trop de CPU inutilement car aller en dessous n’aurait qu’un intérêt limité si vous êtes un humain normal. Toutefois, si vous souhaitez logger l’order book complet, vous pouvez atteindre des fichiers de 20MB par minute en pic d’activité, autant dire que ça va plus vite que toute solution accessible aux particuliers que j’ai pu voir…

Il n’en fallait donc pas plus pour que nous devenions partenaire technique d’OrderBookFx. Nous pouvons donc fournir désormais à nos clients et ceux d’OrderBookFx des solutions d’analyses ou de trading intégrant cet outil qui me semble révolutionnaire pour les traders non institutionnels.

Comment trader la corrélation sous Mt4

Ha la corrélation, sujet qui déchaine les passions, mais qui pourtant est bien souvent mal compris et mal appréhendé!

Cet article n’a pas pour but de vous expliquer ce qu’est la corrélation ou la co-intégration et encore moins de vous proposer des définitions pour des mots compliqués tels :

Stationnarité d’une série temporelle;

Test de Dickey Fuller;

Non non, ici nous passons directement à la pratique, sous MetaTrader 4, avec tout de même quelques petites explications, ceci afin de ne pas rester sans armes lorsque sera venu pour vous le moment de trader ces fameuses corrélations.

D’abord, commençons par répondre à une question que beaucoup de gens se posent :

La co-intégration est-elle facilement applicable sur le Forex?

La réponse à cette question va certainement soulever des avis divergents, et pour cause, le forex est le marché qui est le plus abordable concernant les frais de transactions, spread ou valeurs des pips en argent comptant, ce qui fait que les personnes ayant de trop petits comptes pour trader autre chose ont du mal à accepter ces frais.

Déjà par définition, sur le forex on trade des paires. Mais pour autant, ce marché est un marché où il est difficile d’appliquer des stratégies de co-intégration, car les prix ne sont pas forcement toujours corrélés…… d’ailleurs qui a dit qu’ils devaient l’être?

Prenons les cas de la devise européenne et de quelques-unes de ses paires:

  • EURUSD;
  • EURCHF;
  • EURGBP;

 

Ainsi qu’un graphique qui met ces trois paires en scène et qui met en exergue des moments où ce genre de stratégie serait risqué sur le Forex:

 

 

Voyez comme toutes ne suivent pas le même mouvement, simplement parce que sur le forex, outre le fait que vous tradez l’Euro dans cet exemple, il faut prendre en compte les devises opposées à ce dernier, ici donc CHF et GBP et ce sont ces devises qui font que les paires Euro ne suivent pas forcement la même marche.

Il est donc difficile d’appliquer ce genre de stratégies sur le Forex …… mais cependant pas infaisable non plus Wink

Le mieux est encore de trader des couples dont nous sommes sûrs qu’ils sont co-intégrés et qu’ils suivent le même mouvement quasi instantanément (forcément) tels :

  • Cac 40 et Dax 30;
  • Google et Yahoo;
  • L’argent et l’or;

 

Il est mieux de commencer vos recherches par secteurs, matières premières, bancaire, multimédia ou encore informatique.

 

Tester la corrélation/co-integration

 

Vous avez trouvé deux support probablement corrélés et vous voulez savoir s’il le sont vraiment pour leurs appliquer une stratégie?

Rien de plus simple, il vous suffit de trouver R Tongue out

R est en fait le résultat mathématique de la fonction suivante :

Log(Prix_A)/Log(Prix_B);

Rassurez vous, Trading-Automatique propose à ses membres enregistrés de télécharger un indicateur qui s’en occupera à votre place (vous devez être connectés).

Comme vous l’avez constaté, nous utilisons une échelle logarithmique pour comparer les courbes de prix.

R est présenté sous la forme d’une courbe, et pour que deux support soient effectivement co-intégrés, cette courbe doit rester stationnaire dans le temps, c’est à dire qu’elle ne doit pas former de tendances (ou très peu) et rester dans un “éternel range”

Ainsi, voyons ce que donne R en comparant le Cac 40 et le Dax 30:

 

On y voit très bien que ces deux support sont très corrélés ,non seulement en comparant leurs graphiques de prix (Cac en haut et Dax en bas), mais aussi en regardant la courbe R qui est en effet stationnaire et sous forme de range.

Nous verrons dans un prochain article que R possède tout de même quelques vertus sur le forex, notamment pour trouver les meilleurs rapports de force entre les paires de devises Laughing.

Mesurer les écarts

Très bien, maintenant que nous avons nos deux supports très corrélés (en l’occurrence Cac et Dax) et que R est correct, nous allons mesurer les écarts qu’il présente par rapport à sa propre moyenne mobile.

En effet, ce sont ces écarts qui nous donneront une éventuelle alerte d’achat ou de vente, voire d’arbitrage car un écart trop grand signifie que quelques chose ne tourne pas rond dans la relation entre les deux prix et qu’il est grand temps d’y remédier!

Pour ce faire, rien de plus simple, nous allons construire un oscillateur qui nous dira combien d’écarts-types séparent R de sa moyenne.

Une fois de plus, cet indicateur est livré gratuitement aux membres de Trading Automatique. (Nous sommes généreux, n’est-ce pas?)

Chaque duo de prix a ses propres caractéristiques, écarts. Ainsi, pour le Cac et le Dax, je note qu’un écart de 2 et -2 sur l’oscillateur est très bien pour entrer sur le marché, par contre ce n’est pas valable pour tous, à vous d’étudier correctement les duos que vous sélectionnez.

Voici quelques exemples d’entrées que l’indicateur a donnés pour notre Cac 40 comparé au Dax 30:

 

Sympa n’est ce pas?Tongue out

Bien entendu, il y a des signaux plus ou moins bons.

En temps normal, les sorties de trade se font lorsque R retrouve sa moyenne mobile, c’est à dire qu’ici l’indicateur croise la ligne 0, mais ceci n’est que théorique. Si vous êtes dans un trend, pourquoi ne pas pousser vos trades plus loin?

D’ailleurs, le plus souvent, lorsqu’un signal est donné, il est “conseillé” de vendre l’un et d’acheter l’autre……. certes cela fonctionne, mais pas toujours, à vous de voir là aussi ce que vous recherchez et désirez.

En parlant de “désirs” sachez que Trading Automatique se fera un plaisir de coder les vôtres. Que ce soit en EA ou en indicateurs, les corrélations et co-intégrations donnent lieu à de nombreuses stratégies qu’il serait triste de laisser de coté.

Voilà, c’est tout pour aujourd’hui, j’espère que cet article vous à plu et qu’il vous aidera à gagner quelques trades ou arbitrages 😉

Damien Soudant

Selectionnez la période optimale de vos indicateurs

 

Si il y a bien une question récurrente et logique que se posent beaucoup de traders, c’est bien:

« Mais qu’elle période vais-je bien pouvoir mettre à mon indicateur ? »

En voilà une question qu’elle est bonne et pourtant, peux savent y répondre !

 

La réponse est bien souvent donnée de manière discrétionnaire et non fondée.

Quand certains préfèrent suivre Raghee Horner pour le choix d’une moyenne mobile, d’autre iront à tâtons en sélectionnant la période qui aurait permis de prendre rapidement le plus beau trend de l’année (et ne me dite pas que ce n’est pas vrai…).

D’autres encore y vont en essayant les périodes une par une, ce qui, vous en conviendrez, n’est pas ce qu’il y a de plus simple ….. et surtout pas de plus rapide !

 

Le but de cet article est donc de vous présenter un moyen de choisir la période de vos indicateurs, de manière simple et basé sur des statistiques mathématiques.

Cette manière de faire est peu commune et pourtant s’avère très utile.

 

Si vous êtes spécialiste en électronique,  ingénieur du son ou encore musicien, les mots que je vais citer plus bas vous seront très certainement familiers. dans le cas contraire, ne partez pas tout de suite en courant…

Il s’agit de :

  • Traitement du signal ;
  • Spectre de fréquence ;
  • Transformée Rapide de Fourier  (Fast Fourier Transform dit FFT) ;

 

En effet, ces mots, qui peuvent paraitre difficiles à digérer au début, feront, je l’espère, partis de votre arsenal de trading.

 

Ce que nous allons étudier ici  est l’analyse spectrale (en voilà un joli nom), et plus précisément les spectres de fréquence.

Pour votre culture générale, je vous invite à lire ces différents articles qui traitent du sujet:

 

Application au trading et à l’investissement

 

L’un des premier à avoir utilisé et appliqué l’analyse spectrale et la transformée de Fourier au trading est le scientifique J.M Hurst, hauteur de plusieurs ouvrages sur le trading dans les années 60/70, dont le plus connu est certainement The Profit Magic of Stock Transaction Timing.

Il est aussi le premier à avoir utilisé des enveloppes autour du prix, qu’il a appelé Curvilinéar Enveloppes, plus connues sous le nom de bandes de Hurst. Ses travaux sont spectaculaires lorsque l’on sait qu’à l’époque les ordinateurs personnels n’existaient pas et qu’il fallait tout faire à la main sur papier millimétré .. et je ne vous raconte pas pour calculer la Transformé de Fourier!

Image issue de l’ouvrage The Profit Magic of Stock Transaction Timing illustrant les bandes de Hurst:

 

 

Trêve de commentaires, passons au choses sérieuses si vous le voulez bien!

Dans un premier temps, je vous invite à télécharger et à installer l’outil “Digital Filter Générator”, qui nous offrira de jolis graphiques spectraux:

Site de l’auteur (en russe …. ils ont toujours eu une longueur d’avance au niveau programmation, ceci dit, nous les francophones sommes autant rusés qu’eux Tongue out) :http://fx.qrz.ru/

Prévenez moi quand vous êtes prêts…

 

Ok, On y va? Très bien.Smile

 

Digital filters générator a été conçu pour créer des filtres numériques en indicateurs compatibles avec plusieurs plates-formes de trading, entre autre Mt4.

Il permet donc de créer des filtres de types band pass, low pass, Pcci (perfect cci), ect. Vous pourrez consulter des discussions sur le sujet qui vous seront très certainement utiles sur Forex TSD, dans la partie Digital Filters.

Il permet aussi et c’est ça qui nous intéresse ici, de consulter le spectre du prix, via des fichiers archives CSV que vous pouvez extraire avec Mt4.

Pour que le spectre renvoi des informations cohérentes, il est préférable d’avoir un historique assez long!*

Commençons donc pas aller chercher notre fichier archive, pour ce faire, ouvrez Mt4 puis allez dans:

outils => archives => sélectionnez la paire dont vous voulez connaitre le spectre => choisissez le TimeFrame => puis exportez dans un dossier quelconque (personnellement c’est sur le bureau).

Il est possible d’agrandir vos historiques dans la fenêtre archives en cliquant sur “Télécharger”.

 

Ouvrez à présent Digital Filter Générator, vous obtenez cette fenêtre, cliquez sur le boutons avec la grille et un point d’interrogation:

 

 

La partie étude de spectre s’ouvre à vous Smile.

Cliquez à présent sur le bouton avec pour image un dossier, ceci vas vous permettre d’aller chercher le fichier CSV que nous avons précédemment enregistrer via Mt4.

Sélectionnez votre fichier puis “Ouvrir”.

A présent, le logiciel montre le graphique bougies du CSV, ainsi que le nombre de bougies/données présente sur le fichier, ne reste qu’à cliquer sur le bouton “calculate”.

 

 

Et voilà, vous avez votre spectre, ou plutôt celui de la paire que vous étudiez! Tongue out

Dans cet exemple, j’ai choisi d’étudier EURUSD en M30, mon fichier CSV contient plus de 132 000 bougies.

L’échelle horizontale du spectre nous renvoi les période, allant au maximum jusqu’à 150.

Remarquez les pics et les creux sur le tracé, que nous disent-ils?

 

 

Plus un pic est haut, plus la période (encore appelée cycle) qu’il représente est significative!

Les 3 pics hauts entourés sur l’image on aussi l’avantage d’être assez éloignés, ce qui permet d’utiliser ces trois période bien distinctes qui sont:

  • 15;
  • 40;
  • et 85;

 

Ce sont donc ces 3 périodes que nous allons utiliser pour paramétrer nos indicateurs.

En revanche, le pic bas qui met en exergue la période 25 est nulle, c’est à dire que, d’après l’analyse spectrale, cette période ne renvoie rien de bien intéressant.

Ceci dit, ce n’est pas pour ça que vous ne devez pas l’utiliser ….. mais ce n’est pas la période optimale pour cette paire et ce TimeFrame.

 

Vous remarquez que je ne me suis pas trop aventuré dans la partie théorique, tout simplement parce que c’est un sujet très complexe et qu’il est préférable pour vous (et pour moi) de vous renseigner sur le net, le nombres de tutoriels/cours sur l’analyse spectrale sont nombreux!

 

Lorsque vous avez plusieurs pics très proches au niveau période, il est préférable de n’en choisir qu’un seul,en effet il est mieux de sélectionner des périodes assez éloignées, pour que les infos renvoyées par vos indicateurs ne soient pas récurrentes et ne vous induisent pas en erreur!

L’importance des historiques

 

Rien ne vaut un exemple pratique pour vous montrer à quel point il est important d’avoir un historique assez conséquent!

Pour cette exemple, j’ai choisi d’étudier le spectre de GBPUSD en H4, seulement ici, avec une nouvelle installation de la plate-forme, je n’ai pas encore télécharger de données.

De ce fait mon fichier ne contient que 1042 bougies, soit pas assez pour extraire un spectre cohérent tellement l’échantillon est court!

Analysons un peut ces données dans Digital Filters Générator:

 

 

Le spectre ici est difficile à lire et à interpréter, les pics sont très proches et il est bruyant!

 

Maintenant, je télécharge un historique plus long et me voilà en présence d’un historique avoisinant les 17 000 bougies (16 972 pour être précis)!

Avec ça, le spectre devrait être plus lisse et compréhensible, voyons ensemble:

 

C’est beaucoup mieux non?

Sur l’image on voit très bien que les cycles 25, 40 et 93 on fait les 3 plus haut pics et vous avez ainsi  aucunes difficultés de lecture Smile!

Petite info:

Digital Filter Générator ne prend en compte que la colonne “close” pour calculer le spectre, de ce fait vous pouvez y mettre ce que vous voulez….. votre équity pourquoi pas!

Sur metattrader 4 il est possible de créer un script qui va créer un fichier historique….. et mettre ce que vous voulez dans la colonne “close” et vous pourrez emmener l’étude spectrale plus loin!

 

Voilà, en attendant un prochain article, traitant cette fois ci de Hurst et ses fameuses bandes, je vous souhaite une agréable étude et utilisation des spectres, pour que ces derniers vous permettent de trader mieux, mais surtout de ne plus être sans armes face à la question :Qu’elle période utiliser?

 

Damien Soudant pour Trading Automatique.

Des marchés plus efficients?

 

Voici un article de Jennifer Nille auteur du blog Fair Trade dont l’objectif est de faire découvrir le monde obscur du trading. Jennifer décrit comment les dark pools, algo-traders, MTFs,… fonctionnent, et ce qu’ils entraînent comme changement sur les marchés. Les autres acteurs (régulateurs et Bourses traditionnelles) sont également épinglés.

685765

“Les marchés sont devenus beaucoup plus efficients  avec l’arbitrage des hedge funds, beaucoup plus qu’il y a 20 ans”.

Ce commentaire vient de Philippe Brugère, gestionnaire de fonds chez Franklin Templeton. Voilà qui devrait faire plaisir à Eugène Fama, le père de la théorie de l’efficience des marchés. Une théorie bien malmenée depuis cette crise financière.

Pour suivre la logique de Fama, si les marchés sont efficients, il ne faut pas chercher à les battre. Une simple approche buy& hold devrait suffire.

Mais ces dix dernières années, les performances du S&P500 et des indices européens ont montré qu’il s’avérait mal avisé de suivre une telle stratégie. L’investisseur buy&hold aura même perdu de l’argent.

L’analyse fondamentale,où sont épluchés bilans,résultats,… d’une société a elle aussi présenté ses limites. “Sur les deux dernières années, l’approche Value (qui met l’accent sur les sociétés avec une décote)a traversé une période difficile. Les gens ne se sont plus préoccupés des fondamentaux. Ce sont les titres de médiocre qualité, fortement joués à la baisse, qui ont le plus rebondi” commente Philippe Brugère.

Par contre, il serait intéressant de constater sur la décennie les performances des bots, ces programmes informatiques servant  au trading.

Eugène Fama a souligné dans notre supplément sur le futur du capitalisme que si les marchés s’avèrent efficients, ils doivent être régulés pour pouvoir fonctionner. Il a pointé du doigt le problème des fausses informations.

Force est de constater que depuis dix ans, la vitesse des transactions et de circulation de l’information a fortement augmenté. Et certains spécialistes avancent qu’il serait hasardeux de vouloir ralentir tout ça.

Les fausses informations peuvent se propager plus vite. Exemple: le 8 septembre 2008, l’action United Airlines a dégringolé de 12 à 3 dollars en moins de dix minutes suite à la publication d’une information erronée, sa mise en faillite datant de …2002. Lorsque l’information a été démentie, le cours s’est spectaculairement redressé.

Le krach éclair du 6 mai s’inscrit dans la même veine. Mais la Securities and Exchange Commission doit encore tirer les choses au clair.

Et cette affaire a montré les limites de la régulation. Pour les régulateurs, surveiller ces “gangsters” (comme le dit Fama) qui propagent des fausses informations, la vitesse actuelle des flux pose problème.

D’où cette question: s’ils ne peuvent être régulés, les marchés sont-ils efficients?

Réseaux de Neurones avec Algodeal

 

Lliane de Trading Automatique revient sur la nouvelle plateforme d’Algodeal en mettant en oeuvre un cas pratique : une stratégie de trading basée sur les réseaux de neurones…

 

Un réseau de neurones artificiel est un modèle de calcul dont la conception est très schématiquement inspirée du fonctionnement des neurones biologiques (humains ou non).Les réseaux de neurones sont généralement optimisés par des méthodes d’apprentissage de type statistique, si bien qu’ils sont placés d’une part dans la famille des applications statistiques, qu’ils enrichissent avec un ensemble de paradigmes permettant de générer de vastes espaces fonctionnels, souples et partiellement structurés, et d’autre part dans la famille des méthodes de l’intelligence artificielle qu’ils enrichissent en permettant de prendre des décisions s’appuyant davantage sur la perception que sur le raisonnement logique formel. En modélisation des circuits biologiques, ils permettent de tester les hypothèses fonctionnelles issues de la neurophysiologie ou de tester les conséquences de ces hypothèses afin de les comparer aux réseaux réels. (Wikipédia)

L’objectif de mon implémentation d’un réseau de neurones est l’apprentissage par celui-ci de conditions externes dynamiques. J’ai d’abord essayé de faire en sorte que chaque neurone représente une stratégie. Le problème était que j’orientais donc la prise de décision en éliminant les stratégies qui ne fonctionnent pas (autrement dit 99.9% des stratégies imaginables). J’obtenais un amalgame de stratégies et au final je n’en créais pas une nouvelle (même simple) et j’étais donc loin de mon objectif.

Cela faisait quelques mois déjà que j’avais l’intention de créer un tel algorithme de prise de décision, au départ MetaTrader 5 était la plateforme privilégiée. Faute de mode backtest, c’est finalement vers le tout nouvel Algodeal que je me suis tourné, une plateforme dont Nicolas vous a déjà parlé. Algodeal dispose d’une API en Java et j’avais donc tout loisir pour faire du code orienté objet dessus.

Les noeuds

Je suis donc parti sur la piste de créer un Nœud par Indicateur, le premier Nœud que j’ai implémenté est celui du RSI. Un nœud contient un ensemble de propriétés :

–    spectrum : La variance de la loi normale de pondération que nous verrons plus tard (ne me demandez pas pourquoi spectrum)
–    min : La valeur du plus petit sous-nœud
–    max : La valeur du plus grand sous-nœud
–    step : L’écart de valeur entre deux sous-nœuds
–    vsn : Le Vector de Sous-Nœuds
–    name : Le nom du nœud

Et un ensemble de méthodes :

–    Node : Un constructeur qui crée aussi l’ensemble des sous-noeuds
–    new_weight : Prend en paramètre le nombre de pips depuis l’UT précédente et value la valeur du précédent RSI et pondère les sous-nœuds.
–    normal_law : qui calcule une loi normale, placé ici
–    dump : Une fonction de débogage qui affiche toutes les poids des sous-nœuds

RSINode

 

Cette classe est une classe abstraite, je vais donc créer une classe RSINode pour implémenter mon nœud RSI. Cette classe contiendra quelques propriétés :

–    rsi : L’indicateur rsi
–    rsiLength : La longueur du RSI (14 UT dans l’exemple)

Et implémentera une seule méthode en plus de son constructeur :

–    get_weight : Récupère le poids sur le bon sous-nœud, c’est le seul endroit avec new_weight où on a vraiment besoin de la valeur du RSI. Mais j’utilise une astuce de programmation pour ne pas avoir à recoder new_weight à chaque nouveau type de nœuds (l’ancien poids est stocké dans la partie abstraite lors d’un appel à get_weight).

SubNode

 

Le sous-nœud est le deuxième niveau du réseau de neurones (qui en compte pour l’instant 2). Pour chaque nœud, par exemple un NoeudRSI14, il y a (max – min) / step SubNodes. Par exemple avec min = 0, max = 100 et min = 1.0 on a un subnode à 0, un à 1, un à 2, etc. jusqu’à 100.
Les SubNodes ont 4 paramètres :

–    value : est la valeur du SubNode (dans le cas du RSI 1, 2, 3, etc.)
–    weight : est le poids du SubNode, le plus important, un poids négatif est un signal de vente, un poids positif un signal d’achat
–    wu : Un coefficient multiplicateur lors d’une augmentation de poids
–    wd : Un coefficient multiplicateur lors d’une diminution de poids

Ils ont également trois méthodes :

–    weight : récupère le poids du SubNode
–    weight_up : augmente le poids du SubNode
–    weight_down : diminue le poids du SubNode

Fonctionnement

 

  

Initialisation

A l’initialisation les nœuds sont crées et stockés dans un vecteur, chaque nœud crée également ses sous-nœuds et leur donne un poids (nul ou issu de précédentes expériences).

Mise à jour du poids

Au début les nœuds ont un poids nul, on observe donc le marché sans agir, imaginons que le 1er Mars le FCE soit à 4000 points avec un RSI(14) à 60 et que le 2 Mars le FCE passe à 4020 points. Je souhaite donc faire connaître à mon SubNode(60) que le marché à tendance à monter quand le RSI est à 60. Je vais donc augmenter le poids de tous les SubNodes avec la formule suivante :

NouveauPoids = AncienPoids + CoefficientWU * Log(1+EcartPips) * LoiNormale(SubNode)

La loi normale me sert ici à augmenter non seulement le nœud 60, mais également dans une moindre mesure les nœuds alentours :

 

Loi normale

Cette formule est bien entendu à raffiner au fur et à mesure des expérimentations et des résultats mais ce n’est pas l’objet de ce Proof of Concept.

Récupération du poids

Je suis maintenant à 4020 et mon RSI est à 65, je vais récupérer la valeur du SubNode(65) , si celle-ci est positif je vais acheter, si celle-ci est négative je vais vendre. Afin de vérifier que mon apprentissage fonctionnait j’ai affiché les valeurs des différents SubNode à la fin de l’expérience (10 ans de backtest sur FCE).
 

Valeur des SubNodes RSI 14 après 10 ans de backtest :
 

Valeur des SubNodes RSI 50 après 10 ans de backtest

On peut observer que globalement quand un RSI est supérieur à 50 le marché monte le jour suivant… attention la formule n’étant pas parfaite les anomalies statistiques sont très « puissantes ».

Améliorations possibles

La liste des améliorations possible est longue, voire infinie, puisqu’il me suffit de rajouter des Nœuds sur les milliers d’indicateurs existants. Si ils ne sont pas efficients (comprendre aléatoires) leur poids devrait de toute façon être négligeable par rapport aux autres. Parmi les améliorations notables :

–    SubNodes à plusieurs valeurs (RSI hier et RSI avant-hier, ou MACD par exemple)
–    Recherche de coefficients efficaces (wu, wd, variance de la loi normale)
–    Pondération plus efficace pour éliminer rapidement les indicateurs peu efficaces et faire sortir du lot les indicateurs efficaces.
–    MoneyManagement

Résultats

Les résultats n’ont aucune importance à ce stade mais les voici quand-même

Un beau suivi de tendance avec le RSI 50…

 

…avec le P&L classique de ce genre de stratégies

 

Si vous aussi souhaitez programmer votre stratégie sous la plateforme d’Algodeal, contactez notre service de programmation.

Apprendre le trading algorithmique – Partie 3

 

Voici  le dernier volet mais pas le moindre de cette série concernant l’apprentissage du trading quantitatif / algorithmique par les livres (extrait traduit et complété du blog Quantivity)

 

Partie 1 :  Aperçu de la finance quantitative
Partie 2 :  Les fondamentaux des mathématiques financières

Partie 3 :  Modélisation et analyses mathématiques financières modernes

 

Cette troisième partie se concentre sur l’analyse et la modélisation financière en considérant que le lecteur a une bonne compréhension des mathématiques financières grâce à la partie 2 et un aperçu général du trading systématique et quantitatif grâce à la partie 1. Après cela, vous devriez être capable à la fois de construire des systèmes de trading intéressants et de comprendre la dynamique des microstructures qui dirige le market making moderne (sell side) et le trading de blocs (buy side).

 

Commençons par une introduction au séries financières, à la dynamique des actifs, à la volatilité et la modélisation des prédictions :

 

Continuons par la théorie moderne des portefeuilles et l’ingénierie financière :

 

Puis la volatilité pour les options et la corrélation/dispersion pour l’arbitrage :

 

Enfin, étudions la haute fréquence et les microstructures du marché pour appréhender les bases du sell et buy side moderne :

 

Voilà, vous pouvez dès à présent vous plonger dans les publications scientifiques actuelles pour en savoir plus.

Apprendre le trading algorithmique – Partie 2

Après avoir eu un aperçu sur la finance quantitative dans la première partie, nous continuons notre apprentissage du trading algorithmique avec une nouvelle partie plus technique toujours tirée du blog Quantivity.

Partie 1 :  Aperçu de la finance quantitative
Partie 2 :  Les fondamentaux des mathématiques financières

Partie 3 :  Modélisation et analyses mathématiques financières modernes

Cette deuxième partie se concentre sur les disciplines entremêlées qui sont à la base des mathématiques financières modernes et dont la connaissance est donc généralement assumée par les professionnels et la littérature actuelle.

La partie 3 réutilisera ces connaissances pour se spécialiser sur la modélisation et analyse financière qui est le domaine nous intéressant ici au final.

Pour commencer, voici une liste de livres donnant de solides bases sur les théories économétriques, en insistant particulièrement sur les séries temporelles (assumant une connaissance solide an algèbre linéaire et matrix)

Time Series Analysis, par Hamilton: livre classique sur les séries temporelles économétriques
Econometric Analysis, par Greene: livre classique sur les théories économétriques

 

Puis creusons les notions de filtrage et de vaguelettes :

Wavelet Methods for Time Series Analysis, par Percival et Walden: ouvrage standard sur les vaguelettes
An Introduction to Wavelets and Other Filtering Methods in Finance and Economics, par Gençay, Selçuk, et Whitcher: filtrage et vaguelettes appliqués la finance et l’économie

 

Explorez les notions de modern statistical / machine learning pour approcher l’intelligence artificielle:

Artificial Intelligence: A Modern Approach, par Russell et Norvig: introduction classique à l’Intelligence Artificielle standard
Apprentissage Artificiel : Concepts et Algorithmes, par Antoine Cornuéjols et Laurent Miclet : ouvrage français de référence (merci npernot)
The Elements of Statistical Learning, par Hastie, Tibshirani, and Friedman: apprentissage standard et statistique intermédiaire
Pattern Recognition and Machine Learning,par Bishop: intermediate classification and learning
Pattern Classification, par Duda: introduction standard à la classification

 

Voici des références concernant l’optimisation mathématique :

* Linear and Nonlinear Programming, par Luenberger: introduction standard à l’optimisation
* Nonlinear Programming, par Bazaraa et al.: optimisation standard non-linéaire
* Convex Optimization, par Boyd et Vandenberghe: optimisation standard convexe

 

Finalement, pour ceux qui sont intéressés par les options et vol, intéressez vous aux calculs stochastiques modernes :

Financial Calculus, par Baxter and Rennie: introduction plaisante et intuitive
Stochastic Calculus for Finance I
, par Shreve: une introduction douce via les binomiales
Stochastic Calculus for Finance II, par Shreve: une introduction douce en temps continue

 

Ne manquez pas la partie 3 qui partira de ces connaissances pour rentrez dans le vif du sujet…

Apprendre le trading algorithmique – Partie 1

 

Comment acquérir les connaissances pour se mettre au trading algorithmique? Voici une question que beaucoup se posent mais qui reste sans réponse à cause de l’aura de mystère qui entoure cette pratique pourtant désormais fortement répandue. Jusqu’à présent la réponse était d’acquérir les connaissances académiques classiques puis de travailler avec un spécialiste du métier et d’en apprendre ainsi toutes ses ficelles.

Pourtant, à bien y chercher, nous pouvons trouver de nombreuses références permettant de pénétrer le milieu. Nous allons donc faire l’inventaire dans une série de 3 articles des livres qui vous permettront d’acquérir les connaissances nécessaires à ce domaine. Cette liste est tirée du blog Quantivity pour la plupart des références et sera complétée au fur et à mesure par quelques livres manquants que j’ai trouvé intéressant.


Partie 1 :  Aperçu de la finance quantitative
Partie 2 :  Les fondamentaux des mathématiques financières

Partie 3 :  Modélisation et analyses mathématiques financières modernes

Les lecteurs habitués au trading systématique et quantitatif pourront se passer de la partie 1 pour attaquer directement le vif du sujet avec la partie 2. Bien entendu la plupart des ouvrages sont en langues anglaises ce qui posera peut être un problème à certains… auquels je conseillerais l’apprentissage de l’anglais comme exercice préalable et indispensable.

Commençons par des classiques académiques avec la finance comportementale.

Reminiscences of a Stock Operator, par Lefèvre: une introduction classique aux spéculateurs par Livermore. En version françaises: Mémoires d’un spéculateur.
When Genius Failed, par Lowenstein: récit populaire du fiasco de LTCM
Predictably Irrational, par Ariely: une introduction populaire de l’économie comportementale
Behavioral Investing, par Montier: synthèse de sagesse commune

Plongeons nous ensuite dans le trading systématique et les systèmes de trading (entrées, sorties, conservation, les paris avec Kelly, money management, etc), avec un  focus sur les concepts (plutôt que la mécanique qui est un peu daté) :

Trade Your Way to Financial Freedom, par Tharp: une introduction standard au trading à destination des particuliers, tout en ignorant le titre un peu ridicule…
Mathematics of Money Management, par Vince: une introduction standard au money management à destination eds particuliers
Intermarket Trading Strategies, par Katsanos: un évantail de stratégies de trading
Advanced Trading Rules, par Acar et Satchell:  étude de stratégies de trading
Applied Quantitative Methods for Trading and Investment, par Dunis et al: étude de stratégies de trading (incluant un brin d’arbitrage statistique)

Enfin, pour finir, intéressez vous un peu à l’Analyse Technique en gardant un oeuil critique tout en y reconnaissant le prédécesseur du trading algorithmque moderne. Certaines idées empiriques transmises par l’analyse technique sont reprises et élargies par les mathématiques financières modernes et de la microstructure des marchés comme les moyennes mobiles, les convolutions/filtrages, les indicateurs comportementaux (sur-vendus/sous-vendus), les moments dérivés (momentum et accélération, etc). Pour cette raison, malgré une liste astronomique d’ouvrage, une seule référence faisant autorité vous est proposée :

Technical Analysis from A to Z, de Achelis: le texte de référence standard du domaine

A bientot pour la suite de notre étude avec les fondamentaux des mathématiques financières.