Backtest en Walk Forward ?

Viewing 13 posts - 1 through 13 (of 13 total)
  • #4403

    Bonjour à tous,

    C’est en travaillant sur quelques backtest en fin de journée, que cela m’a fait pensé à une amélioration espérée et très importante pour la prochaine version, et qui manque cruellement à PRT c’est la possibilité de faire du backtest en Walk Forward comme sur tradestation par exemple. En effet, quand on fait un peu/beaucoup de backtest on s’aperçoit assez vite que les résultats sont peu corrélés à la réalité, conformément à l’adage “Le passé c’est le passé, et ne présage pas du futur …”

    Le fait d’avoir la possibilité de faire du Walk Forward sur la prochaine version permettrait de faire des backtest plus robustes et qui collent plus à la réalité, et ne plus croire au Graal lorsque l’on obtient ces résultats en 5 mn de prog (Cf graph, Dax en 5 mn depuis le 1 septembre avec un spread de 1, et donc sans slippage puisque c’est un backtest)

    Bonne soirée

    Zilliq

     

    ___________________________________________

    Coding is not a crime 😉

    http://www.zilliqtradingresearch.fr/ 

    ___________________________________________

    #4405

    Bonjour,

    Effectivement ton backtest est très performant, “trop” performant pour sembler presque réaliste… Je ne sais pas quelle stratégie tu as utilisé pour cela.

    Je me suis fait moi aussi avoir en ayant testé des stratégies “trop belles”, il y avait une faille dedans…

    De plus, ton test a été réalisé sur une période de quelques mois seulement, pour moi cela me semble insuffisant comme données.

    Qu’appelles-tu “Walk Forward” exactement ?

    Merci pour ta contribution.

    #4407

    Bonsoir,

    Le setup employé ici n’a aucune importance (de souvenir c’était basé sur un MACD), c’était juste pour illustrer le problème des backtests sur PRT (et toute plateforme sans WF) et les hyper-optimisation liés à l’absence de Walk forward

    Sur le principe ce setup est “normal”, avec TP, SL etc…spread pris en compte etc..Le problème c’est que le passé est le passé, un peu comme une courbe de regression linéaire mais ne présage pas de l’avenir et c’est ca qui est dangereux

    Pour le Walk Forward, wikipedia est ton ami

    https://en.wikipedia.org/wiki/Walk_forward_optimization

    En gros, le système va en permanence déterminer les meilleurs paramètres sur une période A pour les évaluer sur une période B, afin d’aller à la période Z où nous sommes

    En gros il teste dans le futur (dans le passé..), les paramètres obtenus à partir du passé…

    Enfin bref, c’est l’un des meilleurs moyens de backtest à ma connaissance

    Donc voilà c’était juste pour dire que ce serait une autre très grosse implémentation

    Bonne soirée

    Zilliq

    #4411

    Merci pour la précision.

    Bien sûr, ça reste du backtest… Comme on dit : “le passé ne préfigure pas l’avenir”.

    J’ai pourtant l’espoir qu’une stratégie backtestée et performante sur 20 ans le sera par la suite… mais j’ai vécu un parfait contre-exemple qui m’a coûté très cher ! Ma faute, il avait été testé sur le S&P500 avec un système de moyennage à la baisse… on a vu ce que ça a donné en août 2015.

    Bonne journée l’ami 😉

    #4415

    @Zilliq, ce résultat est-il issue d’une optimisation? Le walk-forward est un processus indispensable tu as raison pour s’assurer qu’une stratégie n’est pas “equity curve overfitted”. Ce processus peut être réalisé “manuellement”, fastidieux je l’accorde mais pour moi indispensable pour passer de l’atelier de fabrication à la production pour une stratégie de trading, j’en ai fais un petit article : http://www.prorealcode.com/blog/avoid-equity-curve-fitting-with-probacktest-trading-strategy-optimisation/

    Sinon, une “simple” matrice de Monte Carlo fabriqué sous Excel ou R peut aider à vérifier la distribution des résultats d’une stratégie selon des tirages aléatoires, comme je l’ai fait pour la stratégie breakout CAC40 par exemple (http://www.prorealcode.com/topic/proorder-breakout-on-french-cac40-my-account-performances/) , rien que cela déjà donne une plutôt bonne idée de ce que pourrait donner une stratégie dans le future, ou à minima un intervalle de confiance de ses probables performances.


    @Doctrading
    : des stratégies long only sur SP500 et qui moyenne ont forcément fonctionné. C’est un travers de regarder une courbe et son comportement dans le passé et d’adapter sa stratégie en conséquence. De toute manière, une stratégie qui refuse de perdre telle qu’une moyenne à la baisse, gagnera toujours par définition 🙂 C’est bien que tu ai abandonné ce procédé, même si ça reste très intéressant à programmer / tester et à explorer. On s’en refera quelques unes comme cela pour s’amuser ! =)

    #4417

    @Doctrading,

    Dis toi qu’un backtest optimisé c’est un peu comme une régression polynomiale de tes résultats

    Autrement dit, les meilleurs résultats que tu auras à un instant t.

    Mais tout comme une régression polynomiale, elle se recalcule à chaque point et ne présage pas de l’avenir, c’est malheureusement ce que tu as vécu et donc pour moi la lacune des backtests sans WF

    Passe une bonne journée

    #4418

    @Nicolas

    Non sans optimisation particulière

    Content que comme moi tu espères donc pouvoir faire du Walk Forward sur les backtests de la future version de PRT

    Pour moi les backtests “simples” de PRT, permettent au mieux de savoir si ta stratégie tient un peu la route

    En gros dans cette version basique, si les résultats sont catastrophiques, pas la peine d’aller plus loin. Si ca tient la route et sur différentes UT on peut commencer à y reflechir (mais ne pas ouvrir le champagne 😉 )

    A bientôt

    Zilliq

     

    #4419

    Rendons à César tout de même ce qu’il lui appartient :

    Les backtests de ProBacktest sont en tout point fidèle à ce que vous pourriez avoir en temps réel avec ProOrder. Faîtes un test (si toutefois vous avez une stratégie qui tourne en réel) de comparaison entre les 2, vous aurez des courbes d’equity quasi semblable. Pourquoi ? Par ce que l’exécution est faîtes server-side, proche des flux DATA des marchés sur des serveurs ultra performants avec une latency que vous n’aurez jamais ailleurs .. ( et gratuitement en sus, est-il besoin de le rappeler ! ). La résultante est un slippage quasi nul sur un prix demandé.

    Attention ici, je ne parle pas du biais induit par les STOPLOSS et TRAILING STOP testé une seule fois à l’ouverture de barre.. mais c’est quelque-chose, j’en ai déjà parlé je crois dans le forum Anglais, qui se règlera dans une prochaine version.

    Pour le walk-forward, oui je pense que ce serait bien et pas super compliqué à faire. Il faut quand même considérer la puissance des backtests actuels avec la rapidité où on obtient des résultats, c’est quand même impressionnant en l’état.. et même en optimisation, grâce aux serveurs de PRT qui calcule pour vous 🙂 De plus, j’ai entendu dire que le moteur de backtest actuel était en train d’être revu pour être entre 10 et 100 fois plus rapide (!!) , je pense au multi-threading, mais je n’ai pas de détails techniques.

    #4421

    @Nicolas

    Alors vivement la prochaine version 😉

    Je pense que le soucis n’est pas que le fait d’avoir peu ou pas de slippage, et c’est bien qu’il y en ait peu, mais le backtest en lui même

    Et c’est vrai que quand tu mets ne serait ce que 3-4 paramètres, le backtest est très très très long donc peu utile

    J’ai lu ton article (le premier pour l’instant). Très intéressant. Cela revient en quelques sorte à faire un Walk Forward simplifié en gros in/out data

    Zilliq

    #4422

    A noter qu’avec la variable DATE on peut faire assez facilement ce In/Out sample dans un backtest 😉

    #4425

    Oui c’est bien ça IS/OOS “in sample / out of sample”.  WalkForward simplifié car manuel, cet article met surtout en garde contre le biais que l’on impose à une stratégie quand on fait de l’optimisation.

    Tu donnes ici une réponse à ton souhait de Walk Forward analysis avec l’instruction DATE , je n’avais pas spontanément pensé à l’utiliser, bien vu !

    #4426

    You’re Welcome 😉

    #4439

    Problème courant : lorsque sur une même bougie à la fois le SL et le TP sont touchés, le TP est compté, mais pas le SL !

    Il aurait été plus judicieux de compter plutôt le SL.

    J’espère que la prochaine version de PRT pourra corriger ce problème et compter le bon paramètre, SL ou TP.

Viewing 13 posts - 1 through 13 (of 13 total)

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