- robinhood :
C’est exactement ça, robinhood

: moi qui ne suis toujours que sur un actif, le CAC, je me suis aperçu que je pouvais diversifier juste en utilisant des signaux d’entrée différents et des UT différentes, car elles sont en fait assez décorrélées à l’échelle du day trading
Pour aller plus loin, je vais essayer de relire et de comprendre la méthode FHS que tu sites, mais je ne suis pas sûr d’avoir le bagage mathématique suffisant…
- Kero :
Pour ce que je fais, le niveau mathématique que j’utilise ne dépasse pas la terminale S, et encore ! L’important est surtout de bien avoir compris le fond des concepts utilisés : le fond de ce que veut dire une corrélation entre 2 séries, le fond de ce que veut dire une distribution non normale etc. Après, les formules, on galère à les retrouver et les utiliser, mais déjà si on comprend ce que ça veut dire on avance pas mal, même si on ne sait pas tout quantifier…
- Beerlsdead , et tous :
Alors, ça ça m’intéresse beaucoup : je comprends bien cette notion d’optimisation sur un historique, puis de test sur un échantillon neuf pour éviter la sur-optimisation, j’ai essayé ave les back-test PRT qui le permettent mais je n’ai jamais rien obtenu de concluant

… Alors j’ai abandonné l’idée d’avoir des robots qui marchent des années et même des mois, sans retouche.
Donc pour ma part voilà comment je fais :
D’abord, je surveille chaque jour la performance globale du groupe de robots, mais aussi de chaque robot. La question cruciale est : quand un robot commence à perdre, est-ce que c’est normal c’est-à-dire c’est juste le début d’une mauvaise série statistiquement normale, ou est-ce que c’est le signe que le marché change et que le robot n’est plus adapté ? C’est là que j’utilise mon outil de simulation de MaxDD :
- Tant que le DD observé est inférieur au MaxDD calculé, je considère que c’est une perte normale.
- Quand le DD observé atteint le MaxDD calculé, ça veut dire que j’ai 50% de chances que mon robot se soit désynchronisé. Alors là je l’arrête et laisse tourner les autres et j’analyse finement tous les trades perdants pour trouver une explication. Exemples : stop un peu près alors que la volat a augmenté, TP un peu loin ou stop suiveur trop lent alors que la volat a diminué, signal d’entrée trop permissif…
- Si je trouve, j’adapte le paramètre, je backteste et je repars.
- Si je ne trouve pas (cas rare) je garde le robot en observation et si plus tard il redonne de bons résultats, je vais à nouveau chercher à comprendre pourquoi il remarche et si je comprends, l’améliorer et le remettre en service.
C’est essentiel d’avoir un critère précis pour éviter le « j’attends un peu, ça va remarcher » destructeur
En pratique, les signaux d’entrée sont assez stables, je les retouche très rarement. C’est plus souvent sur les conditions de sorties que ça se dérègle. Bref je suis amené à retoucher 1 ou 2 paramètres d’un des 10 robots toutes les 2 ou 3 semaines peut-être. Donc finalement ça n’est pas si souvent que ça.
Et pour que cette méthode soit efficace, il faut aussi avoir des robots dont le taux de réussite est élevé donc avec des MaxDD statistiques assez faibles :
- Avec un robot qui a un taux de réussite de 85% par exemple et donc un MaxDD de 3 pertes moyennes sur un an par exemple, je peux attendre la 3° perte pour arrêter le robot et mettre les mains dans le moteur
- Avec un robot qui a un taux de réussite de 45% et un MaxDD de 10 pertes moyennes, et que je dois atteindre ce niveau de pertes pour savoir que mon robot est peut-être en train de se désynchroniser, il va déjà me falloir des semaines voire des mois pour remonter la pente…
Donc j’ajouterais bien une 2° règle :
Règle n°2 :
Quand on constate un début de DrawDown qui approche ou atteint le MaxDD prévu (au minimum par backtest, au mieux par calcul), on arrête le robot et démonte le moteur sans attendre…
Alors, malgré tout ça, comment éviter la sur-optimisation ? Bien sûr avec la méthode du Walk-Forward, même si moi je n’en tire pas grand-chose…
Quand je dis que je n’en tire pas grand-chose je veux dire que quand j’arrive à faire une stratégie qui résiste à ce test, et fonctionne par exemple sur 3 ou 4 ans, elle n’a plus aucun intérêt car elle est tellement tous terrains qu’elle ne rapporte plus que quelques % par an, autant placer ses sous dans du fond en euros

…
Alors, peut-être faudrait-il faire ça sur des périodes plus courtes : historique de 2 ou 3 mois, et 2 semaines de out of sampling par exemple, mais pas sûr d’avoir assez de trades pour que ça soit significatif. Je n’ai pas essayé, toi tu fais comment ? Et tu es sur du day trading ou pas ?
Alors en fait je fais surtout extrêmement attention à ne pas définir un paramètre sur « un optimum local pointu ». En pratique si j’ai un paramètre dont la valeur potentielle logique est par exemple entre 10 et 30, si je trouve une maximisation de ma performance à 23, j’ai plusieurs cas :
- Le résultat est moins bon mais reste correct dès la valeur de 20, et aussi au-delà de l’optimum jusqu’à 26 : OK, cet optimum est bon à prendre
- Toujours avec un optimum à 23, le résultat est correct depuis 18 mais s’écroule à 23,1 : j’ai un effet de seuil. Alors je prends une valeur non optimale, par exemple à 21. Et par ailleurs, je cherche pourquoi j’ai cet effet de seuil, qui vient peut-être de ma stratégie. Exemple : la performance augmente quand le TP augmente, et à partir d’une certaine valeur, elle s’écroule. Il faut peut-être un dispositif moins brutal qu’un TP..
- Toujours avec un optimum à 23, chaque fois que je fais varier le paramètre de 0,1 j’obtiens des résultats complètement différents, bons ou mauvais : le système est chaotique, il faut revoir ce coin de stratégie.
Donc règle n°3 :
Ne jamais fixer un paramètre sur une valeur qui forme un pic de performance : choisir le milieu d’une plage raisonnable de valeurs acceptables
-
VB6backtester
Comme je ne fais pas de Walk forward (et pourtant je ne suis pas satisfait de ne pas en faire..), je backteste tout sur 1 an, ce qui me semble représenter pas mal de conditions de marché à l’échelle intraday.
Et toi ?
- tous :
Je dis depuis le début qu’il faut des taux de réussite élevés. Je vais essayer d’expliquer pourquoi, et les conditions qui vont avec, ceci notamment pour ceux qui découvrent un peu ces histoires de MaxDD.
Fondamentalement, c’est quoi le Drawdown :musique: ?
Le drawdown, c’est une série malheureuse de pertes, éventuellement entrecoupée de quelques gains qui ne suffisent pas à compenser les pertes qui sont autour.
Donc premier point : plus le taux de réussite est élevé, moins j’ai de risque d’avoir une série noire longue : Si je gagne 4 fois sur 5, j’ai moins de 1 chance sur mille de faire 5 pertes de suite ((1-0,8)^5). Mais si je ne gagne qu’une fois sur 5 j’ai 35% de chances que ça m’arrive ((1-0,2)^5)…
Deuxième point : cette série noire peut être entrecoupée de gains : si ce ou ces gains sont importants, ça suffit à récupérer d’un coup le drawdown, qui s’arrête donc. C’est ce qui arrive si on a un reward ratio très élevé. En pratique dès que le reward ratio est supérieur à 1, un gain compense au moins 1 perte et « permet » une perte de plus pour le même drawdown. Si le reward ratio est faible, même une petite série blanche au milieu d’une série noire ne suffit pas à casser la série noire.
Dans tous les cas, plus le taux de succès est élevé, mieux ça vaut, et plus le reward ratio est élevé et mieux ça vaut. Mais ça on le savait déjà , et les deux ne sont pas possibles en même temps…
Pour ma part, je vise des taux de succès le plus élevés possibles (70 à 80% en backtest qui donneront 60 en réel, avec des reward ratio autant que possible entre 0,9 et 1,4)
Dernier point, le MaxDD augmente évidement avec le nombre de trades : si on trade pendant 10 ans, on a des chances d’avoir de temps en temps des séries noires plus longues que si on trade 1 mois…
Donc règle n°4 :
Pour minimiser le MaxDD il faut augmenter optimiser les backtests pour avoir le meilleur taux de réussite (ça, PRT sait faire) tout en gardant un reward ratio guère en dessous de 1. Ensuite parmi les taux de réussite les plus élevés, là seulement choisir le gain le plus élevé.
En pratique, je considère qu’une stratégie n’est viable (c’est-à-dire solidement rentable que si le ratio (taux de réussite*reward ratio)/(1-taux de réussite) est supérieur à 1,5.
Alors la question suivante est : pour ces stratégies là, quel serait l’effet d’un changement du nombre de trades (augmentation de l’horizon de trading) ou d’une amélioration ou déterioration du taux de réussite (tout en restant dans le cadre du ratio précédent !).
Exemple : on a une stratégie qui génère 100 trades par an avec un taux de réussite de 60% et un reward ratio de 1,2, pour une perte moyenne de 25 points. Le backtest donne un MaxDD de 130 points. Exprimé en points cela fait 130/25=5,2 (bref une série noir de 5 pertes moyennes, ou un peu plus avec un petit gain dedans.)
Mon ratio de validité donne 0,6*1,2/0,4=1,8 : stratégie viable.
Question 1 : si je trade 20 ans, quel sera le Max DD ? Eh bien on peut considérer que le MaxDD va augmenter de –ln(µ)/ln(1-R) ou µ est le facteur d’augmentation du nb de trades (ici 20/1=20) er r est le taux de réussite. Attention, c’est additif, pas multiplicatif .
Donc le DD exprimé en perte moyenne va passer de 5,2 à 5,2 –ln(20)/ln(0,4). Le moins en début de formule vient de ce que le taux de réussite étant par nature inférieur à 1, le log népérien de ce taux de réussite est toujours négatif. Et moins par moins ça fait plus… :musique:
Ln(20)=2,996 ; ln(0,4)=-0,92 donc le MaxDD va augmenter de -2,996/-0,92 soit environ 3 pertes moyennes : on passe en gros de 5 à 8 pertes moyennes.
On peut aussi se demander ce qui se passerait si en plus, du passage à 20 ans, en passant en réel mon taux de réussite tombait de 60 à 50% !
Eh bien on aurait une variation du DD de : -ln(20)/ln(1-0,5)= 4,3 : le Max DD passerait donc de 5,2 à 9,5 pertes moyennes… Question : serait-ce acceptable au regard de mon money management, ou plus exactement quelle exposition dois-je choisir pour que cela le soit (cf mon premier post)…
Bonne fin de WE à tous…