3. Plages larges et Détection de faux optimum
La sur-optimisation est mon ennemi numéro 1.
On a relativement "vite fait" de développer ce que l'on pense être la huitième merveille du trading (je ne connais pas les 7 premières, je n'ai pas lu Stan
)
On trouvera un peu plus de détails sur la détection de faux optimums ici
detecter-un-faux-optimum-t25586.html, une file satellite que j'avais créée spécifiquement sur ce sujet.
A présent, je vais utiliser des résultats de tests de certains de mes algos pour illustrer mes propos.
Mes tests incluent TOUJOURS de larges plages paramétriques.
Un paramètre est une dimension variable du programme.
Exemple: un TP, un SL, une condition paramétrique de sortie, d'arrêt du programme, un paramètre d'indicateur etc
Quand on a n paramètres cela crée donc des espaces de possibilités à n dimensions.
On notera au passage que cela peut très vite se transformer en gigantesque explosion combinatoire.
Exemple simple: 10 valeurs de TP, 10 valeurs de SL, 15 valeurs de moyenne mobile donnent déjà 10*10*15= 1500 versions possibles du programme.
En réalité, on peut vite se retrouver avec des centaines de milliers, voire des millions de combinaisons possibles qui seront impossibles à toutes tester.
Comment les réduire ? cela n'est pas évident. L'expérience en trading discrétionnaire pourra nous guider pour un premier débroussaillage du sujet. Exemple ridicule: pas la peine de tester des Arrêts d'urgence programme sur equity=0.
Ensuite, on fixe ce qui nous paraît intuitivement de bons ordres de grandeur sur tous les paramètres, sauf 1, appelons le P, qui sera celui que l'on souhaite étudier.
Alors on lance des tests pour évaluer le comportement du programme sur une large plage paramétrique (P prendra les valeurs P1,P2,P3....Pi).
On lance et on peut obtenir par exemple ceci
Ici les Pi sont des TPs. Test par année.
-
- Test3.jpg (7.78 Kio) Vu 305 fois
En noir, l'algo a touché le max DD, défini à partir de ma sensibilité au risque, ici 30% (Je réalise tous mes tests avec des equity de départ de 100 000, s'il touche 70 000 c'est un scénario noir)
Peu importe les valeurs de TPs, c'est toujours perdant !
ô rage, on a codé pour rien... idée bidon.
Mais attendons un peu la suite avant de jeter le bébé avec l'eau du bain.
En effet, il s'agit là de la variation d'une dimension parmi n. Donc (n-1) dimensions ont été fixées, apparemment ici mal dimensionnées...
On peut aussi obtenir avec le même algo et les mêmes paramètres ceci
-
- Test2.jpg (9.4 Kio) Vu 305 fois
Ou bien cela
-
- Test1.jpg (11.94 Kio) Vu 305 fois
Je précise que tous ces résultats sont indiqués en points nets gagnés (aux variations de valeur de pip près). Net c'est à dire après commissions et frais d'overnight (peuvent être calculés automatiquement par ma plateforme de dév, j'ai testé et validé après avoir découvert un bug qui Futures corrigé par l'offreur de service)