Projet Scientique Collectif Application d'un réseau de neurones à la prédiction d'un cours de bourse



Documents pareils
Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

(VM(t i ),Q(t i+j ),VM(t i+j ))

WEBINAIRE SUR LE SUIVI DE TENDANCES

Coup de Projecteur sur les Réseaux de Neurones

MÉTHODE Investir en bourse avec Isiotrade. " Hier est derrière. Demain est un mystère. Ce qui compte, c est ce que l'on fait dans l instant.

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Pourquoi l apprentissage?

Algorithmes d'apprentissage

Chapitre 1 : Introduction aux bases de données

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

CAC, DAX ou DJ : lequel choisir?

LE PROBLEME DU PLUS COURT CHEMIN

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

modélisation solide et dessin technique

CHAPITRE I. Modélisation de processus et estimation des paramètres d un modèle

Rappels sur les suites - Algorithme

Anticiper les marchés avec les bougies japonaises!! février Page 1

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Trucs et astuces pour gagner avec l analyse technique sur les Turbos

Ask : Back office : Bar-chart : Bear : Bid : Blue chip : Bond/Junk Bond : Bull : Call : Call warrant/put warrant :

Méthodes de la gestion indicielle

CHAPITRE VIII : Les circuits avec résistances ohmiques

chapitre 4 Nombres de Catalan

Décision-Plus. Maîtriser l analyse technique pour réussir en Bourse

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

PROJET DE GESTION PORTEFEUILLE. Evaluation d une Stratégie de Trading

L apprentissage automatique

Chapitre 1 Régime transitoire dans les systèmes physiques

L analyse boursière avec Scilab

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Trading et à l Analyse Technique, théoriques, pratiques et matériels l initiation à la pratique, cours particuliers,

TSTI 2D CH X : Exemples de lois à densité 1

Couples de variables aléatoires discrètes

2. Activités et Modèles de développement en Génie Logiciel

Vers l'ordinateur quantique

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Enquête 2014 de rémunération globale sur les emplois en TIC

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Ce document synthétise les principaux aspects de DayTrader Live, le service le plus haut de gamme de DayByDay.

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct (ajout de la section 3 et augmentation de la section 1)

Anticiper pour avoir une innovation d'avance : le leitmotiv de Pierre Jouniaux, entrepreneur du big data!

VIII- Circuits séquentiels. Mémoires

Algorithme. Table des matières

Journal officiel de l'union européenne

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Compte-rendu de projet de Système de gestion de base de données

Recherche dans un tableau

Rapport d'analyse des besoins

CAPTEURS - CHAINES DE MESURES

MS PROJECT Prise en main. Date: Mars Anère MSI. 12, rue Chabanais PARIS E mail : jcrussier@anere.com Site :

Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24

Devenez expert. en trading d'or. Tout ce qu'il faut savoir pour trader l'or

ENTREZ DANS L UNIVERS L DAYTRADER

COMMENT MAITRISER LA GESTION DES APPROVISIONNEMENTS ET DES STOCKS DE MEDICAMENTS

SIMULATEUR DE MARCHE FINANCIER

- Le Diagramme de Gantt. - Le Diagramme de Pert - La Méthode QQCQCCP - La Méthode MOSI - Cahier des charges fonctionnel

1. Introduction Création d'une requête...2

Date : Tangram en carré page

- MANIP 2 - APPLICATION À LA MESURE DE LA VITESSE DE LA LUMIÈRE

Théories de la Business Intelligence

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

TUTORIAL REUTERS. Utilisation de l'utilitaire de recherche Reuters

L'EPS à l'école primaire aucune modification des programmes

a) La technique de l analyse discriminante linéaire : une brève présentation. 3 étapes de la méthode doivent être distinguées :

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

NC 35 Norme comptable relative aux états financiers consolidés

Chapitre 6 Apprentissage des réseaux de neurones et régularisation

Table des matières. I. Présentation générale II. Le système Nostromo et ses différentes fenêtres... 4

Utilisation des médicaments au niveau des soins primaires dans les pays en développement et en transition

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Exercices de dénombrement

Comment aborder l Investment Challenge dans les meilleures conditions?

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

This document and its content is copyright of Realtimeforex - Realtimeforex All rights reserved.

Université de Bangui. Modélisons en UML

Analyse technique de l'action Apple

Tout ce qu il faut savoir pour débuter en bourse. Tutorial crée par le webmaster du site

TEXT MINING von 7

Erreurs les plus classiques en Bourse. TradMaker.com Tous droits réservés Tel: CS@TRADMAKER.COM

4.2 Unités d enseignement du M1

I- Définitions des signaux.

CORRIGES DES CAS TRANSVERSAUX. Corrigés des cas : Emprunts

Complément d information concernant la fiche de concordance

CHAPITRE IX : Les appareils de mesures électriques

Le Data Mining au service du Scoring ou notation statistique des emprunteurs!

ITIL V2. La gestion des incidents

Système binaire. Algèbre booléenne

Hauts rendements, convivialité et une sécurité par excellence : Voici OptionWeb

TURBOS Votre effet de levier sur mesure

Chapitre 1. Une porte doit être ouverte et fermée. 1.1 Les enjeux de l'informatique quantique

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Logiciel EV3 LEGO MINDSTORMS Education

ENSIIE. Macroéconomie - Chapitre I

BANQUES DE DONNÉES PÉDAGOGIQUES

LES TOUT PREMIERS PAS

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Transcription:

Projet Scientique Collectif Application d'un réseau de neurones à la prédiction d'un cours de bourse DÉMIANS-BONAUD d'archimbaud, Édouard FOESSEL, Laure GRANBICHLER, Josef LE PAVEC, Jean MOUTERDE, Joël SAÏAG, Franck WONG, Wei Pin 10 mai 2006

Table des matières I Un projet scientique 2 1 Etat de l'art 1.1 Réseaux de neurones................... 3 1.1.1 Réseaux non bouclés à apprentissage supervisé 5 1.1.2 Réseaux bouclés à apprentissage supervisé 1.1.3 Réseaux à apprentissage non supervisé 6 1.2 Prédiction d'un cours de bourse.... 1.2.1 Prédiction d'un cours de bourse 1.2.2 Théorie de Dow.. 1.2.3 Théorie des foules 7 1.2.4 L'analyse chartiste 1.2.5 Analyse technique................................ 8 2 Choix d'une approche 2.1 Détermination d'un réseau de neurones 2.1.1 Classe du problème 9 2.1.2 Apprentissage.......... 10 2.1.3 Réseau bouclé ou non bouclé? 10 2.1.4 Algorithme..... 10 2.1.5 Structure du réseau 11 2.2 Analyse nancière.... 11 2.2.1 Principe du réseau........... 11 2.2.2 Détermination du paramètre de sortie 12 2.2.3 Les paramètres d'entrée............ 12 2.2.4 Détermination du nombre de couches cachées 12 2.2.5 Les indicateurs 12 2.3 Implémentation....... 14 2.3.1 Structure du réseau 14 2.3.2 Interface graphique................................ 15 3 Validation de l'approche 18 3.1 Présentation des tests..................... 18 3.1.1 Discussion autour de la rétropropagation du gradient 18 3.1.2 Validation du chartisme.... 18 3.1.3 Les tests du réseau de neurone 20 3.1.4 Les réseaux testés 21 3.2 Discussion des résultats. 21 3.3 Suggestions d'amélioration................................ 22 II Un projet collectif 24 4 Organisation de l'équipe 4.1 Fonctionnement...................................... 25 25 1

4.2 Dicultés 26 4.3 Bilan............................................ 27 5 Échelonnement du projet 28 5.1 Fonctionnement long terme 28 5.2 Fonctionnement à court terme.............................. 28 2

Résumé Objectif : prédire l'évolution d'un cours de bourse en utilisant un réseau de neurones. L'analyse technique en bourse est fondée sur le principe que l'information sur l'évolution d'un cours de bourse est contenue dans les valeurs prises par ce cours aux dates antérieures. Mais il paraît dicile de déterminer a priori l'inuence de chacune de ces valeurs. Ainsi, l'objectif serait qu'un système "intelligent" apprenne, dans un certain nombre de cas, l'évolution d'un cours de bourse pour en déduire, par mimétisme, l'évolution du cours aux dates postérieures. C'est donc tout naturellement que nous nous sommes orientés vers la théorie des réseaux de neurones. Les enjeux sont à la fois informatiques, techniques et économiques. Comment construire le réseau de neurones le plus ecace pour réaliser notre objectif? Comment programmer le meilleur algorithme d'apprentissage? Comment choisir la structure et l'architecture d'un système comprenant plusieurs sous-réseaux? Quels sont les paramètres prépondérants dans l'évolution d'un cours de bourse? Comment les déterminer et les interpréter?

Introduction Une étude, intitulée "Les actionnaires et le singe", a été réalisée par le site de jeux boursiers Cacmania.com. L'objectif était de mesurer objectivement les performances boursières réelles des particuliers à partir d'un échantillon de 7.625 portefeuilles gérés. L'étude s'appuyait sur la comparaison des performances d'un singe par rapport à celle des particuliers. "Un internaute jouant en bourse sur le CAC40 se fait battre à coup sûr une fois sur deux par un singe composant son portefeuille au hasard". "43,6% des participants à un concours de gestion de portefeuille ctif dépassent l'indice CAC40". "54,9 fois sur 100, un participant à ce même concours qui n'est pas actionnaire réalise une meilleure performance qu'un participant actionnaire". Ces résultats ne sont pas une provocation ou le fruit de quelques calculs rapides mais les conclusions les plus étonnantes d'une longue étude réalisée sur la base de quelques 7.625 participations au concours de gestion de portefeuille de Cacmania.com, le premier site français de concours, quiz et pronostics boursiers. L'auteur de l'étude, Antoine Freysz, un des deux fondateurs de Boursipoly S.A. est diplômé d'hec avec une spécialisation en nance. Il précise que l'objectif de l'étude n'est pas de dévaloriser la démarche de l'actionnariat individuel. En eet, si les performances moyennes calculées sont eectivement médiocres (elle amènent en tout cas à penser que la grande majorité des actionnaires individuels devraient recourir à des produits de type SICAV), cette étude souligne combien la bourse requiert de s'investir personnellement, de s'entourer de conseils de qualité et de conserver la plus parfaite modestie. Le but de notre PSC est de montrer qu'une intelligence "appliquée" peut comprendre le fonctionnement de la bourse et que celle-ci est loin d'être un marché aléatoire sans logique ni bon sens. La preuve s'eectuera par la programmation d'un réseau de neurones (intelligence articielle) permettant d'anticiper la variation d'un cours de bourse. 1

Première partie Un projet scientique 2

Chapitre 1 Etat de l'art 1.1 Réseaux de neurones Nous commençons par donner les dénitions d'un neurone formel et d'un réseau de neurones formels (RNFs). Ensuite, nous présenterons les diérents algorithmes d'apprentissage des RNFs en faisant lien avec le type de problème qu'ils peuvent résoudre. Un neurone formel est un opérateur algébrique qui eectue une somme pondérée de ses entrées, appelée potentiel. Sa sortie est une fonction de ce potentiel : y = f(v) = f(θ 0 + n θ i x i ) où les {x i } sont les n entrées du neurone, v son potentiel, et y sa sortie. Ses n paramètres θ i sont souvent appelés poids. Un tel neurone est répresenté sur la gure dessous : i=1 Fig. 1.1 Neurone formel La fonction f est appelée fonction de transfère. Ce peut être très simple comme l'identité ou bien être assez régulière comme la fonction sigmoïde f(v) = 1 1+e. Un réseau de neurones est généralement constitué de neurones v interconnectés et réalise une fonction algébrique de ses entrées. Cette fonction dépend de l'architecture du réseau, et des valeurs des paramètres des neurones. Les neurones fournissant les sorties du réseau sont appelés neurones de sortie, et les autres, non "visible " en sortie du réseau, sont appelés neurones cachés. Une entrée ou un neurone est appelé un noeud. L'architecture la plus utilisée est celle du réseau a couches, 3

et plus particulièrement du réseau a une couche de neurones cachés. La gure dessous donne une représentation d'un réseau de neurones avec une seule couche de cachée. Fig. 1.2 Réseau de neurones à une couche cachée Un réseau de neurones non bouclé est un ensemble de neurones connectés entre eux, dans lequel l'information circulant des entrées vers les sorties sans "retour en arrière", ça veut dire si on se déplace dans le réseau, à partir d'un neurone quelconque, en suivant les connexions, on ne peut pas revenir au neurone de départ. Par contre, un réseau de neurones bouclés ou récurrents a des connections cycliques : lorsqu'on se déplace dans le réseau en suivant le sens des connections, il est possible de trouver au moins un chemin qui revient à son point de départ. La sortie d'un neurone du réseau peut donc être fonction d'elle même. On peut distinguer deux types d'apprentissages des réseaux de neurones : l'apprentissage supervisé et l'apprentissage non supervisé. Dans l'apprentissage supervisé, on connaît en tous points ou seulement en certains points, les valeurs que doit avoir la sortie du réseau en fonction des entrées correspondantes. On l'emploie pour qu'un réseau s'approche une fonction algébrique non linéaire, par exemple la modélisation statique ou une régression sur les valeurs résultent de mesures eectuées sur un processus physique, chimique, économique, biologique, etc. Dans l'apprentissage non supervisé, on utilise un réseau de neurones dans un but de visualisation ou d'analyse de données. On dispose d'un ensemble de données, représentées par des vecteurs de grande dimension, et on cherche à les regrouper, selon des critères de ressemblance entre ces données qui sont inconnus a priori. Les principaux domaines d'utilisation des RNFs sont : la modélisation statique et dynamique, la classication, l'analyse et visualisation de données, la commande de processus, et l'optimisation combinatoire. Dans la modélisation statique et dynamique, on cherche à concevoir un modèle boîtenoire pour un processus sur un ensemble des entrées et des sorties attendues. Pour le cas statique, les sorties sont des fonctions algébriques des entrées qui répresente un comportement indépendant du temps. Pour le cas dynamique, la sortie est la solution d'une équation diérentielle ou d'une équation aux diérences qui répresente l'évolution temporelle des grandeurs d'intérêt en fonction de celle des entrées. Le probleme de la classication, consiste à attribuer de façon automatique un objet à une classe, parmi d'autres classes possibles, à l'aide de descripteurs ou entrées. Ce qui est important est que la représentation choisi doit être discriminante du point vue de la classication désirée. Ce point distingue le problème de la classication du problème de la visualisation de données, dans lequel on ne connaît pas des critères de la classication. Pour commander un processus, c'est concevoir un système comprenant un organe qui calcule la commande à appliquer au processus, de manière à lui assurer, en dépit de pertubations éventuelles, un comportement dynamique spécié par un cahier des charges. Enn, l'optimisation combinatoire est un problème de recherche de minimum, de maximum ou de points stationnaires d'une fonction. A chaque classe de problème correspond un type de réseau plus adapté : on associe ainsi les réseaux de neurones non bouclés à apprentissage supervisé à la modélisation statique et à la discrimination; les réseaux 4

de neurones à apprentissage non supervisé à l'analyse et à la visualisation de données; les réseaux de neurones bouclés à apprentissage supervisé à la moélisation dynamique "boîte noire" et "semi physique" et à la commande de processus; et les réseaux de neurones bouclés sans apprentissage à l'optimisation combinatoire. Examinons quelques exemples usuels d'algorithmes pour chacune de ces classes [RNF2003]. Nous n'examinerons en détails que la rétro propagation du gradient car elle seule est utile dans la suite. 1.1.1 Réseaux non bouclés à apprentissage supervisé Il existe de nombreuses méthodes. En voici quelques exemples : Le Perceptron Il a été mis au point par Rosenblatt dans les années 50, est l'un des plus simples classieurs neuronaux. Il comporte une seule couche de neurone qui reçoivent comme vecteur d'entrée X. Leur activité est donnée par : Act i = i w i x i θ y i = signe(act i ) La règle d'apprentissage du Perceptron est la suivante : w i (t + 1) = w i (t) + ε(yi d (t) y i (t))x i (t) Si les entrées sont linéairement séparables, l'algorithme converge vers un hyperplan séparant les entrées. Adaline Le réseau Adaline a été développé par Widrow. Il est constitué d'un unique neurone eectuant la combinaison linéaire de ses entrées. Il s'agit en fait d'un Perceptron sans saturation des sorties. La règle d'apprentissage de ce réseau consiste à minimiser l'erreur quadratique en sortie du réseau de neurone. La règle d'apprentissage est identique à celle du Perceptron, à la diérence prêt que ce sont les entrées non-saturées qui sont prises en compte. Les réseaux Adaline et Perceptron ne peuvent partitionner l'espace d'entrée que de manière linéaire. On peut ainsi écrire un réseau à une couche qui fabrique un OR, un AND ou un NOT, mais il est impossible de fabriquer la fonction XOR à moins d'augmenter le nombre de couches. La limitation est que pour résoudre un problème donné, on ne sait pas a priori le nombre de couches nécessaires. La rétropropagation du gradient Nous avons que les modèles Adaline et le Perceptron avaient de bonnes performances s'il s'agissait de traiter des problèmes linéairement séparables. L'idée de la retropropagation consiste à utiliser une fonction de transfert non-linéaire mais dérivable, de manière à poursuivre la minimisation de l'erreur de couche en couche [WIKI]. Le calcul se déroule en 2 temps : on eectue la mise à jour du réseau en avant on rétropropage l'erreur à partir de la sortie jusqu'à l'entrée Les poids dans le réseau de neurones sont au préalable initialisés avec des valeurs aléatoires. On considère ensuite un ensemble de données qui vont servir à l'apprentissage. Chaque échantillon possède ses valeurs cibles qui sont celles que le réseau de neurones doit à terme prédire lorsque on lui présente le même échantillon. L'algorithme se présente comme ceci : 1. Soit un échantillon x que l'on met à l'entrée du réseau de neurones et la sortie recherchée pour cet échantillon t 2. On propage le signal en avant dans les couches du réseau de neurones : x (n 1) k 5 x (n) j

3. La propagation vers l'avant se calcule à l'aide la fonction d'activation g, de la fonction d'agrégation h (souvent un produit scalaire entre les poids et les entrées du neurone) et des poids synaptiques w jk entre le neurone x (n 1) k et le neurone x (n) j. Attention au passage à cette notation qui est inversée, w jk indique bien un poids de k vers j. x (n) j = g (n) (h (n) j ) = g (n) ( k w (n) jk x(n 1) k ) 4. Lorsque la propagation vers l'avant est terminée, on obtient à la sortie le résultat y 5. On calcule alors l'erreur entre la sortie donnée par le réseau y et le vecteur t désiré à la sortie pour cet échantillon. Pour chaque neurone i dans la couche de sortie, on calcule : e sortie i 6. On propage l'erreur vers l'arrière e (n) i e (n 1) j = g (h sortie i )[t i y i ] e (n 1) j grâce à la formule suivante : = g (n 1) (h (n 1) ) i 7. On met à jour les poids dans toutes les couches : w (n) ij = λe (n) i x (n 1) j w ij e (n) i où λ représente le taux d'apprentissage (de faible magnitude et inférieur à 1.0) 1.1.2 Réseaux bouclés à apprentissage supervisé Rétropropagation du gradient déplié Dans cette méthode, pour prendre en considération le caractère récurrent du réseau, on construit un réseau non bouclé qui reproduit l'évolution du réseau sur sa trajectoire temporelle. Ce réseau est obtenu en reproduisant le réseau sous sa forme canonique (voir paragraphe 2.2) en autant d'exemplaires ou de copies que d'instants dans la séquence utilisée pour l'apprentissage. En voici une ébouche d'algorithme : 1. Représenter le réseau sous forme canonique (tous les retours sont externes au réseau et présentent un retard unitaire) 2. Ouvrir les boucles et dupliquer le réseau dans le temps sur une fenêtre temporelle de longueur xe. 3. Ajuster les coecients par rétropropagation sur le réseau déplié et considéré comme statique 1.1.3 Réseaux à apprentissage non supervisé Dans ce type d'apprentissage non supervisé, les neurones sont en compétition pour être actifs. Ils sont à sortie binaire et on dit qu'ils sont actifs lorsque leur sortie vaut 1. Alors que dans les autres règles plusieurs sorties de neurones peuvent être actives simultanément, dans le cas de l'apprentissage compétitif, un seul neurone est actif à un instant donné. Chaque neurone de sortie est spécialisé pour "détecter" une suite de formes similaires et devient alors un détecteur de caractéristiques. La fonction d'entrée est dans ce cas, h = b dist(w, X) où b, W et X sont respectivement les vecteurs seuil, poids synaptiques et entrées. Le neurone gagnant est celui pour lequel h est maximum donc si les seuils sont identiques, celui dont les poids sont les plus proches des entrées. Le neurone dont la sortie est maximale sera le vainqueur et sa sortie sera mise à 1 alors que les perdants auront leur sortie mise à 0. Un neurone apprend en déplaçant ses poids vers les valeurs des entrées qui l'activent pour augmenter ses chances de gagner. Si un neurone ne répond pas à une entrée, aucun ajustement de poids n'intervient. Si un neurone gagne, une portion des poids de toutes les entrées est redistribuée vers les poids des entrées actives. 6

1.2 Prédiction d'un cours de bourse 1.2.1 Prédiction d'un cours de bourse Notre introduction semblait très pessimiste concernant les possibilités de prédiction d'un cours de bourse. L'intelligence est-elle vraiment incapable de percer le mystère de la bourse? Pourtant, des ouvrages comme [CONFTRAD] dont l'auteur, Sylvain Duport, s'est rapidement enrichi en jouant en bourse, expliquent qu'il existe des paramètres en fonction desquels l'évolution du cours se déduit. Ces paramètres, même s'ils ne sont pas complètement ables, donnent une idée claire de la tendance et permettent de formuler des prévisions. 1.2.2 Théorie de Dow Mais comment choisir ces paramètres? Et en fonction de quoi les exprimer? Sut-il des valeurs passées d'un cours de bourse pour en déduire l'évolution? Cette idée peut sembler simpliste à première vue... C'est pourtant le fondement de la théorie de Charles Dow, élaborée à partir de 1880, et qui postule six points : 1. Les opérateurs détiennent l'ensemble de l'information pertinente donc le cours d'une valeur reète le consensus du marché de façon able; (NB : le rôle des indicateurs est d'extraire et de rendre "visible" cette information pertinente) 2. Le marché a 3 mouvements (court, moyen, long terme) qui peuvent être décorrélées et fonctionner avec leur logique propre; 3. Il existe des droites de support (droite reliant les minima locaux du cours sur une période donnée) et de résistance (droite reliant les maxima locaux du cours sur une période donnée) qui sont prédictives de l'évolution en cas de cassure ou de rebond; le marché a de la mémoire et ces droites en font parti; 4. Les volumes doivent soutenir le cours pour accentuer le mouvement : ils doivent, pour soutenir un mouvement haussier, être exceptionnels par rapport à la moyenne et progresser en fur et à mesure que le cours grimpe; NB : cet axiome chartiste fondamental justie le choix du volume comme indicateur de la force du marché 5. La hausse d'une valeur est plus forte et durable si elle est confortée par son indice de référence (par exemple le CAC40 pour la plupart des valeurs du CAC40...); 6. Une tendance est haussière si les plus hauts et les plus bas deviennent de plus en plus hauts (et vice-versa pour une tendance baissière) 1.2.3 Théorie des foules Par ailleurs, une interprétation de la bourse, d'après la théorie des foules, postule que chaque acheteur et chaque vendeur sont les personnes d'une foule. Cette foule obéït à des principes simples, comme la panique, ce qui est à mettre en relation avec la crise-panique de 1929 où tous les porteurs d'action ont pris la fuite du marché à la suite de quelques rumeurs. Cette foule obéit à des meneurs qui sont les analystes nanciers et qui appliquent des principes d'analyse. Ainsi, même si les principes sur lesquels ils s'appuient étaient faux, le simple fait qu'ils soient énoncés, que chaque investisseur fait conance à ces principes et sait que les autres investisseurs leur font aussi conance fait que ces principes deviennent justes. Les mouvements sont même ampliés. Par exemple, le simple fait que le cours d'une action touche la Bande de Bollinger inférieure provoquera une remontée du cours de l'action car tous les traders connaissent le principe selon lequel une action franchit très rarement les bandes de Bollinger. Ces principes, qui justient notre travail, ont donné lieu à diérentes interprétations. Nous allons succintement en présenter deux. 7

1.2.4 L'analyse chartiste La première approche que nous avions retenue était une analyse purement chartiste du cours de bourse. Il s'agissait, dans ce cas, de repérer des gures "classiques" dont la présence indique un comportement particulier des acteurs de la bourse et permet ainsi de prévoir l'évolution de la valeur. En eet, nous nous serions inspirés des travaux sur la reconnaissance d'une écriture manuscrite, pour programmer un réseau de neurones, capable de renvoyer une gure. Cependant, notre analyse nancière soulevait plusieurs dicultés. Comme pour la reconnaissance d'une écriture, la diculté de cette approche est la diérence au niveau des formes d'une même gure. Se pose aussi un problème d'échelle. Par ailleurs, une même gure peut avoir des signications diérentes, selon le contexte. Un cours de bourse peut très bien n'avoir la forme d'aucune gure. Un M semble parfois faire partie d'un diagramme tête épaule, d'un biseau ou d'un triangle. La diérence est ténue mais l'interprétation change énormément. Un autre problème était la constitution de bases de données. Il aurait fallu posséder plusieurs milliers de gures, les associer manuellement à un symbole chartiste pour faire l'apprentissage. Par conséquent, notre tuteur nous a conseillé d'utiliser plutôt des variables d'entrées numériques et de négliger certaines de ces gures pour ne conserver que celles qui sont détectables analytiquement (i.e. par un algorithme et non par un réseau de neurones). Nous pourrions ensuite les utiliser comme données d'entrée de notre réseau. 1.2.5 Analyse technique Puisque les principes chartistes nous paraissait dicilement utilisables tels quels, nous nous sommes intéressés, dans un deuxième temps, à l'analyse technique qui consiste à dénir des paramètres à partir d'un historique de valeurs d'un cours de bourse (et éventuellement du volume d'échange des actions) [ATMB]. Ces indicateurs techniques permettent de chirer certaines propriétés du cours de bourse de l'action considérée telle la volatilité (incertitude sur le cours de bourse), la tendance (haussière, baissière ou indécise) de la variation du cours, le momentum (la vitesse de variation du cours), ou encore la force du marché (indiquant l'inertie du marché, c'est-à-dire qu'il indique si la tendance actuelle risque de s'arrêter ou si elle continue). Tous ces indicateurs possèdent des propriétés constatées empiriquement par les traders; certains existent déjà depuis plus de 100 ans. Nous avons également déni des indicateurs inspirés du chartisme pour modéliser les données graphiques les plus signicatives. 8

Chapitre 2 Choix d'une approche 2.1 Détermination d'un réseau de neurones 2.1.1 Classe du problème Nous avons montré dans les lignes qui précèdent l'abondance extrême des méthodes numériques de modélisation, d'analyse de données, de commande de processus et d'optimisation combinatoire. Il s'agit désormais de choisir une approche qui puisse résoudre notre problème : l'anticipation d'un cours de bourse. Avant de commencer, il semble nécessaire d'identier la classe de problèmes à laquelle appartient ce projet. Notre approche est celle d'un ingénieur qui désir un système qui fonctionne sans en maîtriser nécessairement tous les paramètres. A terme, il nous faut relier des paramètres cohérents qui inuent sur le cours de bourse pour obtenir une solution qui marche : une fonction d'un certain nombre de paramètres que l'on peut obtenir facilement et qui permettent de calculer (d'anticiper le cours de bourse). La relation entre les entrées et la sortie de notre système n'est pas nécessairement explicite. Elle peut être formulée soit en terme d'équations, soit avoir l'apparence d'une boîte noire. Ainsi, l'approche réseaux de neurones est envisageable. Nous avons déni quatre classes de problèmes adaptés au réseaux de neurones [RN2004] : 1. La modélisation. On dispose d'un ensemble de variables mesurées { x k, k [1, N]} et d'un ensemble de mesures {y p ( x k ), k [1, N]}. On suppose qu'il existe une relation entre ces varaibles et on cherch eà détterminer une forme mathématique de cette relation. 2. La classication. Classer un ensemble d'objet, c'est attribuer à chacun une classe (une catégorie) parmi plusieurs classes dénies à l'avance. Cette tâche est appelée classication ou discrimination. 3. La commande de processus. Commander un sustème, c'est lui imposer une dynamique de réponse à une sollicitation. Ainsi, par exemple, s'il s'agit d'un asservissement, il faut imposer au système de rester dans un état déterminé quelles que soient les perturbations, mesurables ou non, auxquelles il est soumis. 4. L'optimisation combinatoire. Un problème d'optimisation combinatoire consiste à chercher le minimum, ou le bon minimum d'une fonction, dite fonction de coût, de variables binaires. Cherchant à obtenir une relation (une fonction) reliant des entrées et des sorties notre démarche se situe sans aucun doute dans la première approche. Nous allons tenter de modéliser la relation existant entre des entrées et une sortie (la valeur du cours de bourse). Résoudre un tel problème de traitement de l'information consiste à construire un système établissant une relation entre deux espaces. La première sélection porte sur les types des espaces d'entrée et de sortie du réseau. C'est l'étude nancière du problème qui a répondu à cette question. Dans le domaine de le modélisation, plusieurs méthodes existent. Le choix d'un algorithme d'apprentissage est avant tout lié à l'existence ou non de spécications formelles. En particulier, l'absence de spécications formelles interdit l'emploi d'un algorithme d'apprentissage supervisé. Nous n'avons pas ce problème. Le second critère de sélection est de disposer d'un algorithme du type retenu pour le réseau que l'on choisira. 9

2.1.2 Apprentissage On appelle apprentissage des réseaux de neurones la procédure qui consiste à estimer les paramètres des neurones du réseau, an que celui-ci remplisse au mieux la tâche qui lui est aectée. Dans le cadre de cette dénition, on peut distinguer deux types d'apprentissage : l'apprentissage supervisé et l'appretissage non supervisé. C'est essentiellement pour mettre en relation algébriquement des entrées et des sorties pour lesqulles la fonction de corrélation est non connue que sont mis en oeuvre les réseayx de neurones à apprentissage supervisé. L'apprentissage non supervisé permet de regrouper des entrées selon des critèes de ressemblance assez connus (passer d'un espace de grande dimensions à un espace de dimensions réduites). Nous nos situons clairement dans le cadre d'un apprentissage supervisé. 2.1.3 Réseau bouclé ou non bouclé? On distingue deux types de réseaux de neurones : les réseaux bouclés et les réseaux non bouclés. Un réseau de neurones non bouclé réalise une ou plusieurs fonctions de ses entrées, par composition des fonctions réalisées par chacun de ses neurones. La sortie d'un réseau de neurones non bouclé est une fonction de ses entrées et de ses paramètres. Un réseau de neurones bouclé à temps discret réalise une ou plusieurs équations aux diérences non linéaires, par composition des fonctions réalisées par chacun des neurones et des retards associés à chacune des connexions. Tout réseau de neurones bouclé, aussi complexe soit-il, peut-être mis sous une forme canonique, comportant un réseau de neurones non bouclé dont certaines sorties (les variables d'état) sont ramenées aux entrées par des bouclages de retard unité. L'élément de base est donc le réseau de neurones non bouclé. Voilà pourquoi l'étude de ce dernier est fondamentale. Nous nous y restreindrons par souci de simplicité. 2.1.4 Algorithme Résumons notre démarche jusqu'alors. Nous modéliserons, si faire se peut, l'évolution d'un cours de bourse à l'aide d'un réseau de neurones non bouclé, à apprentissage supervisé. Avant de poursuivre, énonçons une propriété fondamentale des réseaux de neurones non bouclés à apprentissage supervisé : Toute fonction bornée susamment régulière peut être approchée uniformément, avec une précision arbitraire, dans un domaine ni de l'espace de ses variables, par un réseau de neurones comportant une couche de neurones cachés en nombre ni, possédant tous la même fonction d'activation, et un neurone de sortie linéaire. Il existe un grand nombre d'algorithmes pour implémenter des tels réseaux de neurones : rétrpropagation du gradient, propagation du gradient dans le sens direct... Nous n'avons pas voulu les mettre en concurrence, la propriété précédente nous susant amplement; mais plutôt discuter de la structure des neurones et du réseau. Dans toute la suite, nous utiliserons la rétro propagation du gradient pour sa simplicité. Dans la pratique, le nombre de fonctions nécessaires pour réaliser une approximation est un critère important dans le choix d'un approximateur de préférence à un autre. On montre que si l'approximation dépend des paramètres ajustables de manière non linéaire, elle est plus parcimonieuse que si elle dépend linéairement des paramètres. Nous testerons des réseaux à fonction d'activation linéaire et non linéaire. 10

2.1.5 Structure du réseau Nous avons choisi de décomposer notre problème en sous réseaux, les assemblant en un système multiréseau. Un système multiréseau est un modèle structurel dont les composants sont des réseaux de neurones. Nous nous sommes appuyés sur l'ouvrage [RNCT] pour déterminer les grandes lignes de la structure du réseau. Cet ouvrage présente diérentes structures : perceptrons multi-couches en cascade, cartes corticales associées, machine séquentielle connexionniste, mélange adaptatif d'experts locaux... Il s'agit de choisir une structure logique. Il faut pour cela décomposer le problème par analyse en sous problèmes, en construisant des relations de dépendance entre les problèmes (indépendance, dépendance unilatérale, interdépendance). On pase ainsi de spécications globales à des spécications locales. De l'analyse de notre problème (cf analyse nancière) ressort très clairement que l'on peut corréler certaines entrées (indicateurs boursiers entre-eux), d'autres étant indépendants. La structure la plus convenable semble ainsi devoir être la suivante : un mélange adaptatif d'experts locaux avec en sortie un sélecteur adaptatif ou non. Fig. 2.1 Structure globale du réseau 2.2 Analyse nancière 2.2.1 Principe du réseau Pour anticiper l'évolution d'un cours de bourse, un trader s'appuie sur diérents paramètres, il en fait la synthèse et en tire des conclusions en fonction de ce qu'il connaît déjà et des exemples qui lui viennent à l'esprit. Notre démarche nancière sera de déterminer les paramètres prépondérants et de les entrer dans le réseau an que celui-ci détermine tout seul l'évolution du cours. Par ailleurs, quelle valeur utiliser pour chacun des indicateurs? Comme première possibilité, nous pouvions utiliser seulement la valeur calculée avec le cours de clôture. Cependant, les traders attachent souvent une certaine importance aux valeurs antérieures. Ainsi, il nous a paru plus intéressant de tenter de faire une extrapolation de la valeur de l'indicateur au moyen de sousréseaux de neurones. Ensuite, un système expert ferait la synthèse des informations en sortie de chacun des sous-réseaux et déterminerait ceux qui fournissent l'information la plus able, c'est-àdire dont les poids dans le système expert sont les plus élevés. Ceci nous a nalement amené à proposer un réseau à deux étages : la première couche fait une extrapolation de chaque indicateur la deuxième couche fait la synthèse entre les paramètres venant des diérents indicateurs 11

2.2.2 Détermination du paramètre de sortie Le but du réseau est de prévoir l'évolution du cours de bourse. Nous avions le choix entre deux types de paramètres : un booléen : hausse, baisse ou cours constant un paramètre numérique codant pour la probabilité et l'amplitude de la variation. Il nous est apparu que le paramètre booléen avait l'avantage d'être plus facilement analysable pour l'investisseur. Pourtant, le booléen ne permettrait pas de savoir si le réseau est plus ou moins sûr de lui dans son estimation. Nous avons donc choisi de faire l'apprentissage avec des valeurs entières, 1, 0 et 1 puisque pour l'apprentissage, la hausse ou la baisse sont connues avec certitude et nous nous attendons à trouver des valeurs réelles comprises entre 1 et 1 pour les tests. 2.2.3 Les paramètres d'entrée Normer les cours de bourse Le deuxième problème que nous avons rencontré concerne la nature et le nombre des variables d'entrées. En eet, les cours de bourse peuvent prendre des valeurs plus ou moins grandes, selon l'action sans que la valeur du cours de bourse en soi n'ait d'inuence sur son évolution future. Il nous a paru judicieux de considérer les variations relatives du cours, comme nous l'avions fait pour le paramètre de sortie. Cette mesure l'intérêt suivant : 0 joue un rôle symétrique : toutes les valeurs de hausse sont supérieures à 0, les baisses sont inférieures. Dans le cas d'une fonction linéaire, les neurones s'appliqueront de la même manière aux valeurs de hausse et de baisse. Nous appliquons donc la formule suivante : c (t) = 2(c(t) c(t 1)) ((c(t 1) + c(t))v ) avec c(t) :cours à t et V : moyenne algébrique de la volatilité sur toute la base de données volatilit(t) = 2(maxCours(t) mincours(t)) (mincours(t)+maxcours(t)) Nous avons rapportée cette diérence à la volatilité pour éviter que le réseau n'accorde trop d'importance aux variations dans le cas d'actions très volatiles ou au contraire ne stagne autour de 0 pour des actions peu volatiles. Cette précaution nous a donc semblé nécessaire pour généraliser notre réseau à diérents types d'action. De plus, en divisant par ((c(t 1) + c(t)), la plupart de nos valeurs seront comprises entre 1 et 1, 1 indiquant une baisse de forte amplitude tandis que 1 indique une forte hausse. Déterminer le nombre de neurones d'entrée pour la première couche du réseau Nous n'avions pas d'idée a priori sur le nombre de neurones d'entrée. Pour les analyses à court terme -ce qui est le cas ici- les nanciers utilisent généralement, pour leurs indicateurs, des valeurs sur les 5 à 15 cours précédents. Nous avons choisi de faire plusieurs essais en faisant varier le nombre de neurones d'entrée. 2.2.4 Détermination du nombre de couches cachées Nous nous sommes interrogés sur la manière d'interpréter une couche cachée dans une extrapolation de cours. Le résultat est-il amélioré par l'introduction d'une couche cachée? Pour le savoir, nous avons fait des tests avec une voire deux couches cachées pour la première couche du réseau. 2.2.5 Les indicateurs Le RSI Le RSI est un oscillateur qui, par dénition, est censé anticiper les variations du cours. La méthode de calcul du RSI lui permet de bien intégrer les cours passés, contrairement à des 12

indicateurs comme le ROC ou le stochastique qui font l'impasse sur certains cours. Cependant comme il est fondé sur un ratio, il est plus volatile et génère donc plus de signaux que des indicateurs lissés comme la moyenne mobile. Plus la période du RSI est courte, plus le bruit (faux signaux ou signaux trop fréquents) sera important. Le RSI qui est préconisé par les économistes s'étend sur 9 périodes. La formule du RSI que nous proposons est : 0.5 H B + H H moyenne des valeurs positives sur les 9 périodes B : abs(moyenne des valeurs négatives sur les 9 périodes) Interprétation : Si le RSI franchit la hausse la ligne -0,2, c'est un signal de baisse Si le RSI franchit à la baisse la ligne 0,2, c'est un signal de hausse Nous utilisons la première couche du réseau pour obtenir une extrapolation du RSI. Nous modions ensuite cette extrapolation an d'obtenir un signal de hausse lorsque le RSI est proche de 0,2 et un signal de baisse lorsque le RSI est proche de -0,2. Pour cela, nous appliquons à la sortie du premier réseau la fonction suivante qui est une somme de gaussiennes : e (x 0,2)2 /0,0036) e ( (x+0,2)2 /0,0036) Indicateur du cours normé Nous utilisons l'extrapolation du cours de clôture déterminée par le réseau. Le MME9 Le MME9 est une moyenne mobile exponentielle. Les moyennes mobiles sont considérées comme des paramètres prépondérants pour les nanciers. Les moyennes mobiles exponentielles

Indicateur des volumes Il a été dicile de déterminer un indicateur de volumes interprétable par un réseau de neurones car des volumes élevés amplient le mouvement qu'il s'agisse d'une hausse ou d'une baisse. Nous avons néanmoins choisi de prendre une moyenne exponentielle du volume rapporté à une moyenne algébrique pour bien voir les hausses de volumes et éliminer le bruit. Les tests nous indiqueront si ce paramètre est valable ou pas. V (t) = MME2(V )(t) v12(t) avec v12(t) : moyenne algébrique sur 12 périodes du volume Apprentissage Valeur de sortie : si c (t) > 0, 2 alors Sortie=1 si c (t) < 0, 2 alors Sortie=-1 sinon Sortie=0 c'(t) represente le cours de bourse normalise 2.3 Implémentation Le travail d'implémentation du programme se décompose en deux parties : la programmation de la structure du réseau proprement dite, et la programmation d'une interface graphique. L'interface facilite l'utilisation du programme en jouant le rôle d'intermédiaire entre les fonctions du réseau, dont les arguments sont des ottants et des tableaux de ottants, et les données traitées par le réseau, enregistrées dans des chiers de type tableur, au format *.csv. Les neurones sont facilement représentés par des objets : il s'agit d'entités semblables, capables d'eectuer des opérations similaires (calcul de la sortie d'un neurone à l'aide d'une fonction simple...) et possédant des champs diérents (sortie de chaque neurone...). Le langage choisi pour la programmation est le C++, qui présente les avantages d'être un langage orienté objet et de posséder déjà une bibliothèque importante qui facilitera la programmation de l'interface graphique. La première partie (structure du réseau) a été codée par Laure Foessel et la deuxième partie (interface) par Joël Mouterde. Aucun des deux n'avait de connaissances particulières en C++, et ils ont donc dû se documenter au fur et à mesure sur ce langage et les bibliothèques disponibles an de programmer ce qu'ils souhaitaient. 2.3.1 Structure du réseau Chaque neurone est représenté par un objet. Ses champs principaux sont : - un tableau des parents du neurone (c'est-à-dire des neurones dont les sorties sont les entrées du neurone considéré). le tableau des poids associés à chacun de ces parents. la sortie du neurone. - une évaluation de l'erreur commise par le réseau. Ses méthodes principales permettent de : calculer la sortie du neurone à partir des sorties des parents. propager l'erreur du réseau aux parents selon l'algorithme de propagation du gradient. - corriger les poids associés aux parents en fonction de cette erreur. D'autres champs et fonctions auxiliaires sont dénis mais ne sont pas nécessaires à la compréhension du principe du code; pour une version plus complète du code, reporter à l'annexe A. Deux sortes de neurones seront utilisés lors des calculs sur les données, l'un utilisant la fonction identité et l'autre une fonction sigmoïde à valeur entre 1 et 1. Deux sous-classes de neurones, qui implémentent la classe Neurone sont donc dénies, chacune ayant des méthodes calcsor et 14

Fig. 2.2 La classe Neurone calcy diérentes : les classes N euroneadaline et N euronesigmoide. La deuxième classe nécessite l'introduction d'un nouveau champ lambda qui donne la pente en 0 de la fonction; ce paramètre est réglé par l'utilisateur lors de la construction du neurone. Un réseau est lui aussi représenté par un objet. Ses champs principaux sont : - le tableau des neurones qui le composent (tableau en deux dimensions, les neurones étant rangés par couches). - les coecients de la rétropropagation. Ses méthodes principales permettent de :

Fig. 2.3 La classe Reseau Fig. 2.4 Apparence de l'interface : menus 16

Fig. 2.5 Ajout, suppression, modication de neurones grâce à l'interface 17

Chapitre 3 Validation de l'approche 3.1 Présentation des tests 3.1.1 Discussion autour de la rétropropagation du gradient Paramètre de convergence Le paramètre de convergence µ joue un rôle très important pour la convergence des poids. Si µ est très grand par rapport aux entrées, la terme correction est très grand et donc les poids oscillent violemment autour des poids minimaux quand on applique la rétropropagation et les poids ne convergent pas. Par contre, si µ est très petit devant les entrées, les poids convergent, mais très lentement, i.e. le nombre de fois d'apprentissage est très important. µ idéal est 0, 00001 dans plupart de notre cas. Initialisation des poids Pour les poids initiaux, soit on les initie tous à 1, soit on les initie tous par aléatoirement entre 1 et 1. En générale, il n'y pas d'avantage signicatif entre l'une ou l'autre méthode, mais le nombre d'apprentissages qu'il faut pour faire converger des poids est moins grand dans le deuxième cas (la moitié du premier). Nombre d'apprentissages Le nombre d'apprentissage qu'il faut pour la convergence des poids dépend aussi de la structure du réseau et du nombre d'entrées. Par exemple, pour un réseau avec 29 entrée, 2 neurones dans la couche cachée, il faut 100000 apprentissages pour atteindre les poids à 3 décimal près, et pour un réseau avec 12 entrée sans couche cachée, il faut juste 10000 apprentissages. C'est intuitif car avec plus de poids, il nous faut plus d'information pour les rendre optimaux. Surapprentissage Dernier point, il faut remarquer qu'on ne doit pas faire trop d'apprentissage sur un nombre ni de données pour éviter un sur apprentissage. Mais ce phénomène de sur apprentissage n'apparaît pas systématiquement. Pour l'instant, pour un réseau avec 12 entrées sans couche cachée, les poids convergent avec juste 10000 apprentissages et ils restent stables (les écart types sont les mêmes) même si on continue l'apprentissage jusqu'à 100000000. Ce phénomène de surapprentissage est possible si les donnés qu'on utilise pour l'apprentissage ne sont pas assez nombreuses. 3.1.2 Validation du chartisme La première série de tests qui était à faire avait pour but de vérier que l'on pouvait anticiper les variations du cours de bourse qu'à partir du chartisme et de l'utilisation d'indicateurs. Le temps de la mise en place d'un réseau par l'équipe informatique était donc utilisé pour apprendre, comprendre, approfondir et appliquer les connaissances acquises en fur et à mesure. Les cours boursiers en particulier des entreprises du CAC40 était ainsi quotidiennement suivis et interprétés entre le mois d'octobre et le mois de mars. La théorie de Dow décrite précédemment est très simple à comprendre, et l'importance à accorder aux diérents indicateurs est soigneusement décrite par un grand nombre de sources. Néanmoins, c'est justement cette simplicité de la théorie qui la rend d'autant plus dicile à appliquer en réalité, car il faut développer de nouvelles capacités (visuelles) 18

an de tracer les droites caractéristiques, il faut être capable de distinguer le bruit dans l'information fournie par l'historique du cours de bourse, il faut cerner les techniques ecaces, il faut apprendre à évaluer l'inuence des nouvelles micro- et macroéconomiques sur l'état d'esprit des investisseurs. Tout cela avait pour but de comprendre le trading basé uniquement sur l'analyse chartiste, car ce type trading est en eet le seul que nous pouvions espérer reproduire avec un réseau de neurones, étant donné qu'il nécessitait que peu d'informations (l'historique du cours de bourse). Nous avons ainsi passé entre une heure et deux heures par jour à apprendre et à appliquer la théorie de Dow. Calculé sur cinq mois, on retrouve ici plus de cent heures d'apprentissage, mais cette fois-ci non pas pour les neurones du réseau informatique, mais pour nos propres neurones. Placer des droites sur un graphique n'est pas très dicile : pour les droites de résistance on commence par relier les maxima locaux. Toutefois, on se rend très vite compte que toute droite n'a pas la même signication, c'est-à-dire que certaines portent une information sur le court terme, d'autres sur le moyen, d'autres encore sur le long terme, et d'autres ne portent qu'une désinformation, car elles n'ont pas su distinguer l'information et le bruit, c'est-à-dire suite d'un mouvement chartiste et contre-pas des traders. Nous avons constaté que l'information la plus riche était contenue dans les droites de résistance et de soutien, à diérentes échelles, et que les diérents indicateurs mettaient souvent en valeur diérentes parties de cette information. Fig. 3.1 Vallourec en chandelier 1h avec son MACD. Les droites verticales sont les signaux d'achat ou de vente fournis par le MACD. On voit également une très belle droite de soutien, complétée en triangle par une droite de résistance horizontale à 800 euros. Nous avons également testé des échelles de temps distinctes, commencant par l'analyse journalière classique avec un graphique présentant une courbe (classiquement du cours de clôture), puis comme cela était conseillé dans le livre de Sylvain Duport, par l'analyse des chandeliers japonais : un chandelier japonais est un résumé du cours sur une échelle du temps (cours minimal, cours maximal, cours d'ouverture sur cette période et cours de clôture). Nous nous sommes intéressé aux chandeliers hebdomadaires, journaliers, puis des chandeliers allant d'une minute à 4 heures. Les techniques chartistes sur ces échelles de temps sont tout à fait identiques, mais l'information qu'on en tire peut être combiné pour évaluer le marché allant du très court terme au très long terme. Nous avons retenu les chandeliers 15 min : on s'est donc placé à la frontière entre le très court terme et le court terme. L'avantage de cette échelle de temps est qu'on limite au maximum l'inuence de nouvelles micro et macroéconomiques tout un gardant une échelle assez grande pour pouvoir faire 19

une analyse chartiste (si l'échelle de temps est trop petite, il y a trop peu d'intervenants distincts, et le nombre d'interventions/de transactions est trop petit pour contenir une information complète). Grâce à un portefeuille virtuel nous avons pu chirer nos progrès dans le chartisme tout au long de l'apprentissage. En conclusion, nous avons au mois de mars passé deux journées en continu à mettre en oeuvre nos acquis. Nous avions sur ces deux jours spéculé sur des valeurs très volatiles, pour la plupart, soit juste après l'annonce des résultats annuels, soit juste avant (Archos et Vallourec avait le plus grand potentiel). Le résultat était plus que satisfaisant, mais il faut garder en mémoire qu'on ne peut jamais éliminer le facteur chance, qui semble cette fois-ci avoir été de notre côté. Comme on peut le voir ici, le chartisme n'est pas une science exacte : elle suppose, comme dans toute expérience, de poser un hypothèse (par exemple une droite de résistance), mais cette hypothèse doit constamment être remise à jour. Comme on peut le voir pour la droite 1, une droite de résistance devient droite de support une fois percée, et vice-versa pour une droite de soutien. Fig. 3.2 Voici l'historique du cours d'archos (ici en chandeliers 1h) et les volumes avec les droites de résistance et de soutien utilisées et les étapes de leur placement. 1 : extrapolation d'une droite de résistance du mois de février comme droite de soutien ou de résistance pour le mois mars; 2 : idem pour une droite de soutien du mois de février; 3 : canal descendant sur 3 jours; 4 : mise à jour de la droite de soutien 2; 5 : placement d'une droite de résistance (du dessus) formant un triangle avec la droite 4; 6 : mise à jour de la droite 5. 3.1.3 Les tests du réseau de neurone Nous avons en premier lieu eectués une cinquantaine de tests an de déterminer la taille de la base de donnée d'apprentissage et le nombre de rétropropagation adéquats pour un certain paramètre de convergence et un réseau d'une certaine structure. Chaque sous réseau traite un indicateur séparé. Chaque sortie est ensuite soumise à fonction d'interprétation de la valeur (voir 2.2.5). La structure du réseau nal que nous avons retenu est la suivante : 20

Fig. 3.3 3.1.4 Les réseaux testés Diérentes structure de réseau ont été testé avec des fonctions de transfert étant soit l'identité, soit une sigmoïde de paramètre 1/2 ou 1 : au total 11 structures par sous réseau (4 pour le sous réseau expert), donc un total 81 réseaux, le plus simple étant un réseau avec 3 neurones d'entrée et 1 neurones de sortie, ayant comme fonction de transfert la fonction identité, et le plus complexe ayant 12 neurones d'entrée, 6 neurones dans une couche cachée et un neurone de sortie, avec une fonction de transfert sigmoïde. Nous avons retenu une structure par indicateur, que nous avons testé de nouveau avec des bases de données de diérentes tailles, an de vérier les conditions de convergence (entre 400 et 2800 valeurs, et un nombre de retropropagations entre 150 et 200000). Nous avec également comparé l'apprentissage sur une seule valeur (apprentissage locale), à l'apprentissage sur les 4 valeurs citées ci-dessous (apprentissage global). Le sous réseau expert était testé avec 6 et 7 entrées (sans et avec l'indicateur de volume). Avec la fonction de transfert identité nous n'avions bien sûr pas de couche cachée, mais pour la fonction de transfert sigmoïde nous avions 4 neurones dans la couche cachée. Nombre de neurones d'entrée Couches 3 6 6 12 n 12 Fonct transfert identité couches id id id id id Fonct transfert sigmoïde 2 couches id id id id id Fonct transfert sigmoïde 3 couches 2Neur. dans 2ème couche 2N 4N 3N 6N La base de données était constitué de 4 valeurs (France Telecom, Suez, Alcatel, et AXA) et contenaient, avant traitement, toutes les transactions eectuées au cours du mois de novembre 2004. Ces données étaient ensuite regroupées par cours et seconde, et puis en chandelier de 15 minutes, ce qui donnait une base de donnée de plus de 2800 entrées. Tous les indicateurs étaient calculés à partir de ces chandeliers. 3.2 Discussion des résultats Les réseaux à 3 neurones d'entrée nous ont donné des résultats très insatisfaisants (très aléatoires), et cela indépendamment du nombre de neurones dans la couche cachée et tu type de fonction de transfert. Les réseaux ayant 6 neurones d'entrée et une couche cachée donnait un taux de prévision entre 49% et 55%, avec généralement un taux très légèrement supérieur pour le réseau à 4 neurones cachés. Remarque Un taux supérieur à 50% est susant pour pouvoir espérer un gain positif. Il y avait également des diérences entre l'apprentissage global et l'apprentissage local. Alors que l'apprentissage global donnait des meilleures taux de prévisions exactes pour certaine valeurs (France Telecom), nous avions des meilleurs taux de prévisions exactes en apprentissage local pour 21