Annonce
Réduire
Aucune annonce.
Ads
Réduire
Construire un système de trading automatique basé sur le 123R de KST MT
Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Construire un système de trading automatique basé sur le 123R de KST MT

    Bonjour

    Après différentes approches, j'ai décidé de me lancer dans la construction d'un robot de trading automatique. Je lance ce forum pour :
    • Expliquer, comment je m'y prends
    • Recueillir les remarques, idées recommandations
    • Susciter l’intérêt de ceux qui voudrait s’associer à la démarche et partager le travail et les résultats
    • M’obliger par le témoignage à aller jusqu’au bout.

    En matière d’approche, j'utilise un mix des setup de Johnlee (dont j'ai suivi la formation) et Philippe Salve. J'ai bien sûr pas pu m'empêcher d'y apporter mon grain de sel. L'idée de base est de faire faire à un programme, ce que je devrais normalement faire manuellement. Le système sera basé sur les principes suivants :
    • Trading systématique
    • Multi UT
    • Évaluation des trades exprimée en risque (merci Van Tharp)
    • Identification et prise de trade sur l'UT 1 minute puis gestion dynamique des objectifs en fonction de la situation des différentes UT
    • Plate-Forme Ninja trader

    Je pars du principe qu’un système se définit par :
    • Les conditions de prise de trade (setup, filtre, événement déclenchant)
    • Les modalités de fixation du nombre d'unités tradées, du stop et des objectifs
    • Les conditions de remontée du stop
    • Les clauses d’arrêt immédiat du trade
    • Les conditions de modification des objectifs
    • Les conditions de sortie partielle de trade (3 sous-lots dans un trade)

    Je suis parti bille en tête avec l'idée de strictement automatiser les setup que j'avais définis et qui me paraissait rentables (mon ancienne plate-forme ne me permettait pas des back tester).
    J'ai donc développé les différents scripts d'indicateur dans une version interprétable par un robot :
    • KST avec les 123, les 2 div, les tendances et les squeeze
    • Bande de bollinger 20 et 100
    • Ecart type KST synt (idem ecart type MACD pour les fan de JL)
    • Cdur KST CT (idem Cdur)
    • Reste, à faire les résistances et support "automatiques"

    Puis j'ai construit la stratégie (selon le modèle décrit plus haut) pour m'apercevoir que mon setup était rentable (un peu) mais peu fréquent (90 Trades sur quatre ans en cinq minutes) et générait un niveau de drawdown trop élevé .

    En pratique on constate assez vite que chaque élément du système peut avoir un impact important sur le résultat d’ensemble . Vu le nombre d'éléments dans le système on abouti rapidement à un nombre d'hypothèses à valider considérable (chaque back test prend au moins 20 minutes).

    J’ai donc décidé de reprendre les choses étape par étape en travaillant d’abord sur les deux premiers paramètres : le stop et les filtres du set up.

    En pratique j'utilise une stratégie simplifiée qui :
    • S'appuie, sur un set up très ouvert (123R de kst MT) avec un seul filtre : les cours doivent être proche des boll 100 (premier tiers du range) afin d’avoir un potentiel de gain important
    • Place un stop (boll et mogalef)
    • Place un objectif a 4 points
    • Unité de temps 1 minute

    Les trades et la valeur de tous les indicateurs au moment du trade sont exportés dans une base Mysql consultée via un logiciel de visualisation de données (Qlikview)

    L'indicateur de mesure, c'est le taux de trade gagnants (c'est-à-dire ceux qui ont généré un profit de quatre points sans toucher le stop). Les actions possibles :
    • Filtrer les trades (en ajoutant des conditions de prise de trade)
    • Modifiez-les règles de détermination du stop

    J’aime bien l’idée de pouvoir générer un petit profit de façon fréquente (qui paiera les frais du trade) et de pouvoir remonter rapidement son stop.

    En pratique voilà ce que cela donne pour fin 2006 -> mi 2013 en 1 minute

    Tous les setup up
    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		tout les trades.png 
Affichages :	1 
Taille :		1,5 Ko 
ID : 			1787898

    longs
    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		long.png 
Affichages :	1 
Taille :		1,6 Ko 
ID : 			1787900

    short
    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		short.png 
Affichages :	1 
Taille :		1,5 Ko 
ID : 			1787899

    Apparemment les longs sont meilleurs (tx trade gagnant plus élevé)
    Après on peut le décliner en fonction de la situation d’un indicateur donné, la phase des boll 20 de l’ut 1 minute dans le cas présent.

    A bientôt

    Parabole

  • #2
    Bonjour Parabole,

    C'est déjà un gros travail !
    Pour les supports et résistances, le plus simple est d'utiliser les zig-zag CONFIRMES si le logiciel le permet.
    On peut ensuite solidifier le niveau avec les Bolls et/ou les Mogalefs par ex, ou bien un fibo 50% comme le RET90.


    Quelques réflexions en vrac:
    - Avoir une idée exacte du nombre de "faux" signaux détectés par le programme, c'est à dire de signaux ne remplissant pas tout à fait les critères. par ex, les deux divergences successives correspondent-elles à ce qui aurait été tracé par les intéressés?

    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		ScreenShot114.jpg 
Affichages :	2 
Taille :		88,9 Ko 
ID : 			1540799

    Ici par exemple, la première divergence tracée par Salve aurait-elle été détectée?

    - Les résultats tiennent-ils compte d'un coût de transaction et d'un slipage?
    - attention au trade moyen qui, même sur les longs seulement, représente à peine plus d'un point.

    En tout cas, je suis admiratif quant au travail de programmation effectué !!!

    Commentaire


    • #3
      Salut Lionel

      Content de te retrouver ici.

      Comme discuté, mon robot trade un set-up très proche du tien (je suis essentiellement sur MACD et KST CT, mais on a aussi codé pour KST MT et LT).

      Ma première remarque/question : est-ce que tu as moyen de vérifier visuellement la formation de ton set-up, ie quand tu backtest, est-ce que tu peux ensuite regarder le résultat trade par trade ?
      Par expérience, la mise en place de la détection de l'alignement de trois point (sans que cette droite ne croise la courbe du KST, pour bien modéliser un support/résistance) a été une prise de tête assez folle, en particulier au niveau de la gestion des marges de tolérance pour l'alignement et le croisement.
      La question associée est naturellement celle de l'algo de détection des sommets/points bas : quid ? Leur détection automatique nécessite de faire un compromis sur leur définition, ou en tout cas de faire un arbitrage précision/vitesse de détection (50 bougies après un sommet, on est certain que c'en était bien un, mais il est trop tard pour trader ).
      Par expérience également, le KST est particulièrement rugueux par rapport à la MACD, il génère plus de sommets et de points bas. Cela a pour conséquence de générer bcp d'alignements obliques, que l'on aurait en réalité jamais pris si on tradait en discrétionnaire. C'est un pb à traiter aussi.

      Je pense qu'il est nécessaire de passer beaucoup de temps à fignoler la détection auto du set-up avant de rentrer dans des considérations de trades ; si on va trop vite, cela devient hyper dur de faire la part des choses entre le poids du set-up et le poids de la gestion des trades dans la perf du système.

      Les paramètres du set-up, et les marges qu'on y associe, influent aussi terriblement sur le nb de trades et donc sur la perf du système (à Espérance de trade égale, ce qui n'est malheureusement jamais le cas ), donc il faut être particulièrement au point sur le set-up avant de s'attaquer aux trades.

      Au plaisir de discuter.

      ps : je t'envoie le fichier dont on a discuté en MP rapidos (c'est un monstre qui va bien au-dela du modèle présenté donc il faut que je le dépouille un peu avant).
      War is Peace - Freedom is Slavery - Ignorance is Strength - Debt is Wealth

      Commentaire


      • #4
        Bonsoir,
        juste une remarque rapide.
        Quelle est la longueur de ton historique? Car selon ce que je vois tu as testé de 2006 a 2013 et bien qu'ayant fait ce test tu émets encore des hypothèses de travail.
        Peux être as tu encore plus de 2 fois la longueur de l'historique traité et dans ce cas ne tiens pas compte de ma remarque. Tu ne dois pas tester sur la longueur totale de ton historique, mais seulement sur une partie et une fois toutes tes hypothèses de travail validées en plus du système lui même, alors tu peux étendre l'historique de test.
        Tu ne parles pas de gestion de pose, de risk et money management, ce qui est, je pense, plus important que le setup lui même.
        Idée tu peux forwarder ton test, d'autant que NT le permet.

        Bon courage
        +2p
        -2n

        Commentaire


        • #5
          Bonjour Eric

          D'abord merci pour ces encouragements et ces compliments qui me vont droit au coeur venant d'un trader expérimenté qui en plus développe des indicateurs très sophistiqués.

          voila comment le système a vu la divergence verte de Philippe. Le 99 au dessus de la bougie indique qu'il a vu une divergence (2 points) mais pas un 123R (Ce qui de mon point de vue est discutable d'ailleurs)

          Cliquez sur l'image pour la voir en taille réelle 

Nom : 		seulement axes valide.GIF 
Affichages :	1 
Taille :		69,1 Ko 
ID : 			1540973Cliquez sur l'image pour la voir en taille réelle 

Nom : 		détail KST.GIF 
Affichages :	1 
Taille :		60,7 Ko 
ID : 			1540971

          En modifiant le paramétrage j'aurai pu lui faire considérer les 3 points comme faisant partie du même axe mais ça me parait moins "joli" et, à l'usage, cela génère beaucoup plus d'incohérences (l'épaisseur 'virtuelle' de l'axe de 123R devient trop importante).
          Cliquez sur l'image pour la voir en taille réelle 

Nom : 		pris en compte.GIF 
Affichages :	1 
Taille :		78,3 Ko 
ID : 			1540972

          Une option de l'indicateur (n’efface pas les axes rompus) me permet de visualiser les lignes tracées et de valider leur cohérence.
          En fait presque tous les axes tracés et effacés. J'ai compris la raison des "absences" qui sont sans impact mais c'est un peu compliqué à expliquer.
          Cliquez sur l'image pour la voir en taille réelle 

Nom : 		graphe.GIF 
Affichages :	1 
Taille :		81,7 Ko 
ID : 			1540983

          Quant au fond de la démarche devant la multiplicité des paramètres, j'ai décidé de procéder par étape.

          la première étape est basée sur l'idée qu'un bon trade génère nécessairement 4 points de profit avant de toucher son stop, et sur la conviction qu'il y a une certaine pertinence à placer un stop en prenant le plus défavorable des bandes de Mogalef (version Salve), des boll 20 et de 1,5 atr(14). Dés lors je cherche à optimiser le taux de trades gagnants (ceux qui ont fait 4 points de profit avant de toucher leur stop) en cherchant des critères de filtre (les points communs des trades perdants). L'avantage est que comme tous les trades et leur paramètres sont exportés dans une base de données, je peux les filtrer très facilement, quasiment instantanément sans avoir les contraintes d'un Backtest.

          A ce stade je ne mesure pas le profit (et donc je n’intègre pas de commission) je cherche juste des trades qui partent dans le bon sens s'en s'aventurer préalablement trop profondément dans le mauvais sens.

          La logique peut apparaître tortueuse mais je pense que j'irai plus vite en décomposant les problèmes.

          merci encore

          Lionel

          Commentaire


          • #6
            Bonjour Denis

            En fait à l'issue de l'université et pour préserver ma psychologie et mon enthousiasme de trader algorithmique débutant qui à besoin de succès rapides (ou pas trop éloignés) ,même modestes j'ai décidé de basculer sur le 123R Macd.

            Je travaillais de toute façon avec les deux systèmes. Comme j'ai conscience de m'être engagé dans une sorte d'ascension de l'Evrest autant prendre une voie déjà empruntée par quelqu'un qui en plus en est revenu vivant.

            j'ai aussi pleinement conscience que la voie est mal balisée et que je peux tout de même très facilement me perdre en route.

            Sur la visualisation des trades, Ninja positionne automatiquement tout les trades backetetés sur un graphe. c'est très fastidieux mais je le fais.
            Dans le cas des 123R , la complexité vient du fait que le programme fonctionne avec un nombre limité de variables qui sont réutilisées plus tard pour stocker d'autres axes. en revanche je connais pour chaque trade les points de départ et d'arrivée des axes de 123.

            J'ai adopté un algorithme différent du tien du coup j'ai pas de notion d’alignement je raisonne seulement en terme d'épaisseur 'virtuelle" d'axes. En revanche je confirme, grosse prise de tête pour aboutir à un tracé correct et beaucoup de lignes de code.

            Détection des extrêmes, je me base sur un croisement avec une moyenne mobile et je retraite les faux extrêmes lorsque la courbe "zig zag " à plat

            J'avais commencé en faisant un script complet, taille de position automatique, remonté du stop, sortie par 1/3, sortie en urgence, évolution des objectifs, en reproduisant autant que faire se peut ce que j'étais sensé faire à la main. Mais il n'est pas suffisamment robuste (trop de drawdown) , et l'améliorer en traitant tous les problèmes de front est trop complexe. D’où l'approche par étape.

            Merci pour ce retour.

            Lionel

            Commentaire


            • #7
              Bonsoir néo
              Historique ; j'ai pas plus que 2006 2013 en fait je suis repassé à du 2010 2013 (pour des raison de perf mais je comprend ce que tu veux dire et les problématiques de sur optimisation.

              En terme de risque management , Van Tharp ma convaincu risque contant 1% du capital max en risque par trade, (mais si je commencerai à beaucoup moins)
              3 % au total à un instant t (ça reste à développer)

              Gestion de pose : pour moi c'est effectivement aussi important mais je vais le traiter après.

              Je diffuserai régulièrement ce à quoi j'abouti

              Lionel.

              Commentaire


              • #8
                Bonjour !

                Bravo Lionel pour le travail déjà réalisé et la réflexion associée !
                On a eu l'occasion d'échanger le dimanche à Lyon... et je partage totalement l'approche "étape par étape" que tu as finalement adoptée.
                C'est en tout cas l'approche que j'ai choisi pour résoudre les problèmes à la combinatoire rebutante.

                De mon point de vue, la configuration d'entrée est la matière première de la stratégie.
                Elle intervient en 1er lieu et doit libèrer du potentiel de déplacement (puisque nous faisons du trading directionnel).
                A ce stade, il faut bien évidemment savoir mesurer un potentiel moyen mais ne pas chercher à l'exploiter et encore moins l'optimiser que ce soit techniquement ou au niveau des règles de money management car il y a plus important à traiter auparavant.

                La fréquence ayant un impact sur la performance, il est important que le setup génère un nombre "suffisant" de trades en rapport avec son money management, sa psychologie, et ses objectifs de performance. 1 trade par jour ? 1 trade par semaine ? 1 trade par mois... est-ce suffisant ?
                Autre point à ne pas négliger : l'erreur statistique liée à l'échantillon mesuré. Quelle confiance accorder à un backtest fournissant 50 trades ? 200 ? 500 ? 3000 ?

                Brut de fonderie, je demande donc au setup de fournir un nombre de trades qui permettre la suppression des perdants en appliquant des filtres sans trop altérer la fréquence, et donc la confiance et le rendement.
                Et par expérience, la suppression des perdants fait toujours chuter la fréquence au-delà de ce que nous souhaiterions.

                Il est donc primordial de bien distinguer les éléments qui constituent la configuration d'entrée, le filtrage, l'exploitation du potentiel libéré, la protection et le money management (incontournable pour transformer des pips en € ou $) pour ne pas se perdre dans des itérations infinies en mélangeant les genres...

                Cela me permet de couper le plus tôt possible les pistes qui mènent à des impasses.

                Bon courage pour la suite de ton projet... et au plaisir d'échanger avec toi et les autres membres intéressés par la détection de setup et le trading auto en général !
                Mon point de vue n'est pas un conseil de trading
                C'est en tombant qu'on apprend le marché

                Commentaire


                • #9
                  Envoyé par Eric_Lefort Voir le message
                  Pour les supports et résistances, le plus simple est d'utiliser les zig-zag CONFIRMES si le logiciel le permet.
                  Qu'entends-tu par ZZ confirmés Eric ?
                  Mon point de vue n'est pas un conseil de trading
                  C'est en tombant qu'on apprend le marché

                  Commentaire


                  • #10
                    Il est dangereux d'utiliser la fonction zig-zag en backtest.
                    Par contre, on peut utiliser les zigzags confirmés, c'est à dire dont l'ampleur de creux (haut) nécessaire à la fixation définitive du zigzag a été parcourue.
                    Si la fonction est intégrée, cela simplifie considérablement la programmation des supports et résistances (horizontaux).

                    PS: le dernier sommet déterminé par le zigzag est le point le plus haut depuis qu'on a parcouru la distance D (parametre) depuis le dernier bas.
                    le sommet est confirmé quand on a parcouru la distance vers le bas.

                    Commentaire


                    • #11
                      Bonjour

                      Pour d'autres sujets qui non rien avoir avec la bourse j'ai utilisé Rapid Miner un outil de data Mining afin de faire des "clusterisation" (bon dans le cadre du trading ca ne servirai pas a grand chose).

                      Je me suis dit après un bon moment passé à essayer de filtrer des trades sans rien trouver de vraiment clair que l'on pourrait peut être utiliser ce logiciel pour gagner du temps, dans une démarche du type
                      • je classe les trades en deux catégories
                      • je demande au logiciel de m'indiquer, le cas échéant, les indicateurs et leur valeurs qui sont corrélées avec le résultat.


                      le problème c'est que l'on peut avoir des effets de combinatoire, la corrélation ne se faisant pas sur la valeur d'un indicateur mais sur les valeurs de plusieurs indicateurs.

                      j'ai l'impression que l'on peut perdre beaucoup de temps dans cette direction avant d'aboutir à quelque chose (bien que l'outil soit assez simple à prendre en main)
                      Est ce que certains d'entre vous s'y sont essayés ? avec succès ? en utilisant quelle approche (Anova, ancova, manova, analyse discriminante ...)

                      Par prudence, je vais rester sur l'approche manuelle (et fastidieuse) en attendant de trouver quelqu'un qui aurait réussi dans cette direction.

                      A bientôt

                      Lionel

                      Commentaire


                      • #12
                        Un outil de data mining pourra t'aider à identifier les paramètres prépondérants de ton système et à choisir des plages de valeurs te procurant une stabilité sur la performance, la fréquence de trading, etc... pour éviter de tomber dans la sur-optimisation.
                        Mon point de vue n'est pas un conseil de trading
                        C'est en tombant qu'on apprend le marché

                        Commentaire


                        • #13
                          Merci de ce retour Miekelkak

                          Mais en as tu utilisé un ? si oui lequel ?
                          et quelle approche stat ?

                          Lionel

                          Commentaire


                          • #14
                            Les arbres de classification / régression... Pour ce faire, j'utilise le joker "appel à un ami" qui dispose de Statistica
                            Mon point de vue n'est pas un conseil de trading
                            C'est en tombant qu'on apprend le marché

                            Commentaire


                            • #15
                              où en êtes vous dans la construction de vos systemes?
                              un céréalier est un trader qui s'ignore souvent!!!
                              visitez mon blog: vendresonble http://vendresonble.wordpress.com/

                              Commentaire

                              Chargement...
                              X