Annonce
Réduire
Aucune annonce.
Ads
Réduire
Réseau de Neurones en Trading (Java, Algodeal, Analyse Technique)
Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Réseau de Neurones en Trading (Java, Algodeal, Analyse Technique)

    Simon Depiets pour Trading-Automatique

    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

    image : http://ks363797.kimsufi.com/images/rdn_workflow.pn... ou format inconnu


    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 :

    image : http://ks363797.kimsufi.com/images/rdn_normal.pngi... ou format inconnu

    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).

    image : http://ks363797.kimsufi.com/images/rdn_rsi14.pngin... ou format inconnu

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

    image : http://ks363797.kimsufi.com/images/rdn_rsi50.pngin... ou format inconnu

    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

    image : http://ks363797.kimsufi.com/images/rdn_chart.pngin... ou format inconnu

    Un beau suivi de tendance avec le RSI 50…

    image : http://ks363797.kimsufi.com/images/rdn_pnl.pngintr... ou format inconnu

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

  • #2
    Le silence assourdissant de cette file, dont le moins que l'on puisse dire est qu'elle est en phase avec l'objet de ce site, l'analyse TECHNIQUE des marchés financiers, est tristement révélateur du niveau moyen des lecteurs, attendant fébrilement dans leur nid douillet que des gourous pontifiants leurs servent leur bécquée journaliére de " ptète bien qca va monter, à moins que ca descende ou que ca bouge pas "

    Commentaire


    • #3
      Citation de : Monep (au 25-03-2010 11:38:23)

      Le silence assourdissant de cette file, dont le moins que l'on puisse dire est qu'elle est en phase avec l'objet de ce site, l'analyse TECHNIQUE des marchés financiers, est tristement révélateur du niveau moyen des lecteurs, attendant fébrilement dans leur nid douillet que des gourous pontifiants leurs servent leur bécquée journaliére de " ptète bien qca va monter, à moins que ca descende ou que ca bouge pas "


      Moi çà ne me surprend guère
      C'est triste mais c'est comme çà, on est très très loin du niveau de forexfactory...

      Commentaire


      • #4
        non c'est pas triste, toutes ces techniques interessantes sont largement utilisées en science biologique avec pas toujours de succès et beaucoup de faux négatifs comme de faux positifs car elles n'intégrent pas certaines co variables (que l'on utilise en science médicale)et présentent l'inconvénient de nombreux artéfacts

        Dans ce contexte comme l'effet de l'environnement financier n'est pas pris en compte la précision et la justesse est moyenne.

        Pour idées de covariables contact par courriel.
        Comme toujours c'est le problème des systèmes d'aide à la décision.

        Il faut donc se diriger vers un système plus proche de la statistique et multifactoriel et non se contenter d'un traitement du signal en quelque sorte banal

        Commentaire


        • #5
          A noter que cet article a suscite un bon debut de discution interessante sur les reseaux de neurones ici.

          Le probleme des reseaux de neurones et des algorithmes genetiques est de ne pas se contenter de l'over fitting.

          Commentaire


          • #6
            Citation de : Monep (au 25-03-2010 11:38:23)

            Le silence assourdissant de cette file, dont le moins que l'on puisse dire est qu'elle est en phase avec l'objet de ce site, l'analyse TECHNIQUE des marchés financiers, est tristement révélateur du niveau moyen des lecteurs, attendant fébrilement dans leur nid douillet que des gourous pontifiants leurs servent leur bécquée journaliére de " ptète bien qca va monter, à moins que ca descende ou que ca bouge pas "


            Bonjour Monep,
            Tu as raison, mais puis je me permettre une question?
            Ou est, à par celui cité en référence, ton commentaire argumenté et constructif?
            Personnellement il y a des sujets sur lesquels je ne suis pas à l'aise et je préfère laisser des personnes sachant de quoi elles parlent s'exprimer et ainsi profiter de leur savoir pour apprendre. Je pense que tout l'intéret d'un forum ne se situe pas dans son titre mais dans dans ce que chacun des intervenant est à même d'y apporter, pour ceux qui savent, ou d'en retirer pour ceux qui apprennent.
            Et dans ce cas le silence d'un inculte, comme je suis, est souvent plus porteur que des commentaires qui n'ont d'intérêts, que de rallonger l'ascenseur de droite.
            Ca n'est pas une attaque, seulement une opinion.

            +2p
            -2n

            Commentaire


            • #7
              Citation de : neo-13 (au 25-03-2010 13:37:34)

              Et dans ce cas le silence d'un inculte, comme je suis, est souvent plus porteur que des commentaires qui n'ont d'intérêts, que de rallonger l'ascenseur de droite.



              Non parce que tu as dans ce cas forcement des questions, des interrogations qui ne peuvent être que constructives vu l'état d'avancement

              Commentaire


              • #8
                Citation de : Lliane (au 26-03-2010 07:53:38)

                Non parce que tu as dans ce cas forcement des questions, des interrogations qui ne peuvent être que constructives vu l'état d'avancement


                Bonjour,
                tu as raison à ceci prêt que j'ai dit souvent pas toujours.
                Pour exemple:
                Le post de monep à emmené le mien qui à conduit le tien et aucun de ces 3 posts n'a d'intérêt.
                Bon ensuite ca n'est qu'une opinion et peu importe ce que je pense le tout étant que vous y trouviez votre intérêt qu'il soit intellectuel et/ou pratique.

                Bien sûr je ne voudrais pas être mal compris et les posts, dans la mesure où ils répondent à la philosophie du site, sont naturellement intéressant (toutes proportions gardées bien sûr) ce qu'il est moins, ce sont les messages parasites qui justement ne motivent pas certaines personnes à participer et qui en plus tendent à démotiver les personnes impliquées.
                +2p
                -2n

                Commentaire


                • #9
                  Poids des noeuds RSI(de RSI 2 à RSI 150) après 10 ans de backtest sur le CAC 40.


                  image : http://ks363797.kimsufi.com/images/nodesrsicac.png... ou format inconnu

                  image : http://ks363797.kimsufi.com/images/nodesrsicac2.pn... ou format inconnu



                  image : http://ks363797.kimsufi.com/images/nodesrsicac3.pn... ou format inconnu


                  Commentaire


                  • #10
                    Bonjour Lliane,

                    J'ai pas mal parcouru la toile ces derniers temps et je me pose ici pour te répondre... J'apprécie beaucoup ton boulot. J'ai vu que tu es allé faire un tour sur Algodeal ...

                    Nous sommes nombreux à faire du trading...
                    Nous sommes nombreux à programmer...

                    Nous sommes nettement moins nombreux à pouvoir changer de plateforme de programmation comme on change de chemise

                    Alors, combien en reste t'il sur cette poignée ( une centaine en france) qui comprenne le neuro adapté au trading...

                    C'est pourquoi cette file a peu d'interventant..

                    @ bientôt ailleurs !

                    Laurent

                    Commentaire


                    • #11
                      Une ou deux remarques vite fait :

                      - qui, aujourd'hui, peut-être spécialiste en toutes choses ?

                      - les réseaux de neurones ....

                      J'ai fait ma carrière dans des labos de recherches pharmacotechniques et ces fameux réseaux de neurones, j'en ai entendu parler, je crois, depuis le tout début.

                      Le dernier qui nous a été présenté était une immense "usine à gaz" dans laquelle on déversait, en vrac, toutes les données issues des laboratoires ainsi que les observations faites dans les usines de production. Ensuite, pour tout problème, à peine formulé, il n'y avait plus qu'à appuyer sur le bouton "marche" et, miracle, on avait la solution...
                      Une immense galéjade bradée quelques millions de francs de l'époque ...

                      En fait, tout au long de ces années, deux outils, bien meilleur marché, se sont révélés très efficaces :

                      - les différentes analyses factorielles (surtout pour les pb de production industrielles)

                      - les plans d'expériences : davantage réservés aux laboratoires car là, on peut maîtriser les niveaux d'entrée des variables à l'étude.

                      Je ne vais certainement pas essayer de généraliser mais dans les cas que j'ai connus, les réseaux de neurones n'ont jamais pu faire mieux, plus vite, moins cher que ces deux simples outils là.

                      Il serait néanmoins idiot d'affirmer, à partir de cette expérience, que cela ne puisse pas être efficace dans le milieu boursier (Pierre Orphelin vendait d'ailleurs un de ces systèmes, autrefois, à associer à Tradestation, au travers de ce que je lisais ici et là, j'ai eu l'impression que les acquéreurs avaient du mal à amortir le coût d'achat ...)

                      Avec Wealth-lab 4, on pouvait aussi acquérir un module Neuro-Lab avec lequel des personnes sérieuses ont fait des choses (voir Dr. Bruce Vanstone http://trading.it.bond.edu.au/ ) mais je ne suis même pas certain que la version 5 de WL propose encore ce module neuro-lab ...

                      Tout cela pour dire qu'il me semble, qu'aujourd'hui comme hier, les réseaux de neurones restent davantage un domaine pour les chercheurs plutôt qu'une technique prête à être vulgarisée...

                      Juste mon point de vue !

                      à+

                      PS : je me suis intéressé autrefois aux systèmes de trading avec Wealth-Lab et, à cette occasion, j'ai utilisé les plans d'expériences pour optimiser les paramètres d'entrée de différents systèmes auxquels je m'intéressais. Je crois cette technique très intéressante dans ce cas.


                      Commentaire


                      • #12
                        @ ggo, ok avec toi j'ai la même culture mais en pharma, en fait l'idéal serait peut être de programmer des stratégies EN FONCTION DES CONFIGURATIONS DE MARCHE!

                        Je n'ai pas encore eu la preuve même dans notre domaine que les réseaux de neurones aient été la panacée y compris en recherche appliquée (au delà du développement)

                        et les évènements extrêmes restent comme toujours du casino.

                        Ceci dit félicitaions à liliane pour ses recherches, avec peut être un petit éclairage sur la séance d'hier, prévue (anticipée) par les réseaux de neurones depuis une quinzaine de jours dans quelle configuration de marché ou sans et sur quelles valeurs?


                        Commentaire


                        • #13
                          Il y a dans les propos tenus par certains sur cette file plusieurs illusions :


                          La première est de croire qu'avec une bonne dose de mathématiques de haut niveau, on pourrait résoudre l'essentiel des questions que posent les marché financiers aux investisseurs ou aux traders particuliers.

                          J'ai écrit CROIRE car c'est tout simplement une CROYANCE (au niveau psychologique)

                          Cela n'est pas nouveau, étant sur le net depuis 1998, j'ai vu cela à maintes reprises sans résultats probants POUR LE LECTEUR LAMBDA dont je suis !

                          Un zélateur bien connu de ce type de méthode est par exemple Pierre Orphelin.

                          La seconde erreur / illusion, c'est de ne pas définir précisèment au lecteur lambda (que je suis) quelles sont les conditions de base nécessaires pour comprendre et utiliser de telles méthodes(dans l'hypothèse où leurs résultats seraient bien supérieurs à ceux d'autres méthodes)

                          Dans mon cas personnel, je constate l'absence de vulgarisation détaillée PRATIQUE des méthodes utilisées et de leurs résultats.

                          Les graphiques publiés sont très jolis esthétiquement.

                          Mais je ne sais pas les interpréter !

                          Ceci en dépit des explications détaillées de Liane sur la méthode utilisée en début de file et dont je le remercie.

                          En général, l'histoire qui se répète en boucle est la suivante :

                          - les praticiens de telles méthodes testent une "nouvelle " méthode (pour eux et encore plus pour moi

                          - cela dure un certain temps

                          - cela ne donne rien de vraiment pharamineux comme résultats

                          voir les commentaires de certains intervenants plus haut

                          - alors on teste une autre méthode qui lave plus blanc que blanc et ainsi de suite

                          On a d'ailleurs un bon exemple avec Liane, qui avait ouvert une file sur la Méthode japonaise Ichimoku Kinko Yo et qui voulait l'améliorer avec une bonne dose de maths qui produisait des graphiques qui ont (pour moi) a peu près le même aspect que ceux présentés plus haut.

                          Etant abonné à cette file Ichimoku, depuis pas mal de temps je ne reçois plus rien. Je n'en suis pas vraiment surpris.

                          Mon avis est qu'il ne faut pas confondre les plans :

                          - intellectuellement stimulant et intéressant

                          avec

                          - avec pratiquement utilisable

                          particulièrement pour des gens qui ne sont ni programmeurs, ni "matheux"

                          cordialement


                          Commentaire


                          • #14
                            Citation de : Parisboy (au 07-05-2010 16:22:19)

                            Mon avis est qu'il ne faut pas confondre les plans :

                            - intellectuellement stimulant et intéressant

                            avec

                            - avec pratiquement utilisable

                            particulièrement pour des gens qui ne sont ni programmeurs, ni "matheux"



                            Le fait est que je ne cherche pas une méthode pratiquement utilisable, parce que je pense que c'est bullshit et que le simple fait qu'il faille payer des centaines d'euros pour être formé par un pseudo trader qui ne se risquerait pas a appliquer sa propre méthode sur ses propres finances la décrédibilise.

                            Commentaire


                            • #15
                              Le titre de File c'est "réseau de Neurones en TRADING"

                              Le Trading c'est concret.

                              Si je comprends bien ta réponse tu fais en quelque sorte des recherches de type "historique ?" "universitaire ?" " fondamentale ?"

                              Le fait est que je ne cherche pas une méthode pratiquement utilisable, parce que je pense que c'est bullshit

                              On pourrait en conclure que :

                              - tes recherches portent sur des méthodes inutilisables dans la pratique

                              - tu penses qu'une méthode utilisable pratiquement c'est bullshit

                              Là j'ai du mal à suivre

                              et que le simple fait qu'il faille payer des centaines d'euros pour être formé par un pseudo trader qui ne se risquerait pas a appliquer sa propre méthode sur ses propres finances la décrédibilise.

                              De ces propos qui ne s'imposaient pas dans le contexte, j'en conclue qu'il y a une forte probabilité que tu ais fait une mauvaise expérience de ce genre.

                              Commentaire

                              Chargement...
                              X