Le code qui pourrait amélioré votre Stratégie

Forums ProRealTime forum Français Support ProOrder Le code qui pourrait amélioré votre Stratégie

Viewing 15 posts - 16 through 30 (of 33 total)
  • #66746

     

    #66747

     

    #66748

    J’arrive pas à poster le code modifié avec la fonction PRT code. Voici donc ci-dessous la partie du code que j’ai modifié pour obtenir le courbe de gain N°3.

     

     

    1 user thanked author for this post.
    #66751

    Merci pour le retour. Puisque cette stratégie est “long only” avec l’utilisation d’oscillateurs bornés autour d’un centre du prix et que  tu as semble-t’il uniquement ajouté un filtre de moyenne mobile de tendance long terme, je me demande si le code d’arrêt est vraiment nécessaire finalement ?  As-tu essayé d’insérer simplement le filtre avec la MM (si close>MM160 alors ON=1) et sans le code d’arrêt ?

    La fonction que l’on a codé ensemble est très intéressante pour switcher d’une stratégie à une autre, mais je pense que l’exemple choisit pour démontrer son efficacité n’est peut être pas le meilleur, mais je me trompe peut-être 🙂

    #66776

    Ce mode de réactivation par croisement MM est très aléatoire et que très peut orienté sur un retour à des conditions réellement favorables. Il génère de nombreuse réactivations de la stratégie suivie d’un arrête presque immédiat car les conditions ne sont toujours pas bonnes. Pour autant la méthode fonctionne et on constate une nette amélioration de la courbe de gain. Le problème, c’est qu’on teste les conditions de marché en réactivant la stratégie de manière presque aléatoire et on corrige en validant ou invalidant.     Quelqu’un aurait une (ou des idée)s pour réactive la stratégie quand le marché redeviens vraiment  favorable ?

    #66781

    Je ne sais pas pourquoi mais j’ai toujours un décalage entre tes posts et mes réponses….ça rends le dialogue plutôt surprenant par moment. bref…

    Oui effectivement on à fait ce code pour effectuer un switch entre différentes stratégies incluse dans le même robot. Du reste le code rempli sont rôle et peut très bien désactivé un code au profit d’un autre et faire basculer sur trois code différente afin de trouvé le code le plus adapter en fonction de l’humeur du marché.

    J’ai essayer de faire simple pour l’instant. Je n’ai pas oublié que le but final qui consiste à faire un système autonome sur 3 stratégies (long and short) inclus dans le même robot et d’aller à la plage plutôt que surveiller ses robots 😉

    Pour autant, j’aimerai trouver un moyen intelligent de tester une stratégie avant de la mettre (ou remettre) en route. Ça pourrait nous évité de générer des pertes pour finalement décidé que le marché n’ai pas favorable à la stratégie que l’on teste. J’ai toujours en tête qu’il n’est pas encore possible de créer des tableaux de donnée dans PRT mais je cherche… une idée peut être ? je suis sur que tu vas me trouvé un pirouette et résoudre ce problème de prise de positions obligatoire pour tester  😉

    Le Robots finale le l’ai déjà en tête. Les switch entre stratégies internes devraient être fastidieux (entre les allés retour et switch croisé) mais assez facile à écrire grâce à ton code. l’optimisation de la duré de la boucle et taux de perte autorisé multiplié en 3 stratégies “long” et 3 “short” devrait prendre pas mal de temps aussi. Heureusement que nous avons abandonné le filtre avec la volatilité lol

    Ça promet certainement une bonne migraine mais ça reste dans mes compétences 😉

     

    PS: Je vais tester le on et off sur MM 160 sans l’aide de  ton code.

     

    #66785

    Voici la comparaison entre la version avec ton code et la version avec juste le ON et OFF sur MM160.  Je te laisse apprécié par toi même. Le gain total penche en faveur de ton code mais le profil factor et le taux de réussite penche en faveur de la moyenne mobile.

    N’oublions pas  que le MM160 est le fruit d’une optimisation. Ses performances ne seront pas égale en fonction de l’instrument et vont se dégradé avec le temps. Par contre tes lignes de code s’adapterons à n’importe quel instrument et resterons fiable dans le temps. Pour autant, se teste reste instructif.

     

    #66788

    La différence entre les drawdowns s’explique que dans un cas on est obligé de perdre pour s’arrêter  (ton code) alors que dans le cas de la MM160 on peut perdre du profit mais rester positif tout en croisant la MM et s’arrêter.

    Il faudrait optimiser les paramètres de durée de boucle et pourcentage de perte acceptable pour corriger  le drawdown du code.

    #66850

    Bonjour à tous,

    J’ai fini la partie “long” du robot en utilisant le switch de @Nicolas et trois sous programme de base.

    Le défit était de prendre 3 robots médiocre et les transformer en une stratégie améliorée et surtout plus robuste en terme de performances et longévité.

    Cette façon de concevoir un robot, switch entre les trois sous robots et essaye d’exploiter le meilleur des trois robots en fonction du marché présent.

    Le seul bémol c’est qu’ il faut qu’un robot démarre et perde pour que le switch s’opère.    La sélection du robot le plus adapté part rapport au moment ce fait comme cela.  C’est dommage, ça génère des pertes inutile.

    J’aurai souhaiter tester les robots avec des positions fictivement et décider en fonctions des résultats fictifs de démarrer(ou pas démarrer) le robot le plus adapté.

    En tout cas, pari tenue, pari réalisé et ça fonctionne !

    Vous trouverez ci-dessous les Screenshots des 3 robots séparément et le résultat de l’assemblage avec le switch.

    Test effectué sur Eur/Usd M1

    Les conditions du teste sont : La partie “long” uniquement.   AUCUNE optimisation du Robot final,  switch réglé sur 1% de perte autorisé. Pour les sous programmes, ils ont été optimisé sur seulement 10 000 bougies et se ne sont que des robots très simpliste.

    On noteras une amélioration global des performances. Aucun des sous programme n’arrivent à rivalisé avec la stratégie que j’ai appelé D.S.S (démarrer/switch/stop)

    La courbe de gain et le gain ainsi que le taux de réussite, profit factor, le drawdown (en dollars et nombre de pertes consécutives) , tous ces éléments sont en nette amélioration.

    #66880

    Un grand merci à Nicolas et FREDNC qui ont oeuvrés sur ce code.

    J’ai bien amélioré mes stratégies, améliorer les gains, réduit les pertes et diminuer le drawdown.

    Cordialement

    Gertrade

    1 user thanked author for this post.
    #66887

    welcome @Gertrade.  N’hésite pas à optimiser le taux de perte et MM de redémarrage  😉

     

    1 user thanked author for this post.
    #66893

    N’hésite pas à optimiser le taux de perte et MM de redémarrage

    J’ai déjà optimisé le taux de perte à 29.

    Par contre, j’ai remplacé la MM de redémarrage par une autre condition de ma stratégie, et çà marche super.

     

    #66895

    Merci pour l’info. Effectivement le DIplus apporte une belle amélioration. Ci dessous le Screenshots de la même stratégie 3 sous robots(médiocres)

    Je ne connaissais pas le DIDI

    J’ai chercher dans le guide de programmation et je trouve:

    DI DI[N](price) Désigne le Demand Index
    DIminus DIminus[N](price) Désigne le DIDIplus
    DIplus[N](price) Désigne le DI+

    Peux nous en dire plus sur DIDI ?

    #66902

    Il s’agit de l’indicateur DMI (Directional Movement Index)

    DI – Indicateur Directionnel

    Interprétation : Le DI+ mesure les mouvement haussiers. Le DI- mesure les mouvements baissiers. Un signal d’achat peut apparaître quand le DI+ croise le DI- à la hausse et un signal de vente peut apparaître quand le DI+ croise le DI- à la baisse.

    Aspect pratique : Pour valider les signaux d’achat et de vente lors des croisements du DI+ et du DI-, il faut que la tendance soit identifiée, avec notamment un ADX élevé (supérieur à un certain seuil, par exemple 17 ou 23).

    #66910

    Définition : DI+ = DM+ / TR; DI- = DM- / TR
    avec TR = max[abs(PlusHaut – PlusBas) abs(PlusHaut – ClôtureVeille) abs(PlusBas – ClôtureVeille)] DM+ = max[0;PlusHaut-PlusHautVeille] DM- = max[0;PlusBasVeille – PlusBas]
    Le paramètre détermine le nombre de jours considérés qui lisse les deux lignes à l’aide de la méthode des moyennes mobiles. En mode histogramme, les barres représentent DI+ moins DI-

Viewing 15 posts - 16 through 30 (of 33 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login