QUANT - Calculs d'incertitude sur une stratégie
Publié : 16 avr. 2016, 10:11
Bonjour à tous.
J'aimerais aborder ici une question qui touche à l'optimisation et donc inévitablement à la sur optimisation, c'est la notion d'incertitude. Cette incertitude se rencontre dans l'évaluation de paramètres ou encore dans les résultats d'une stratégie.
Commençons par une petite digression universitaire qui aborde un problème très simple. L'évaluation des paramètres d'une loi binomiale, partant d'un certain nombre de tirages. Derrière ce mot savant, il s'agit simplement de l'évaluation du paramètre d'un exercice simple. Un jeu où soit vous perdez, soit vous gagnez. Le but est d'évaluer la probabilité de gagner à partir d'un certain nombre de tirage. Comme un jeu à pile ou face mais où les pièces sont fortement truquées, capable par exemple de faire sortir face dans 90% des cas.
On note la probabilité de gagner P. Celle de perdre Q. On aura P=1-Q
Maintenant jetons la pièce 400 fois. Intuitivement, avec 400 tirages, on croit savoir que l'on sait ce qu'il en est avec une bonne précision. On a une précision pas trop mauvaise si P et Q sont proches, et donc proches de 50%. Si P = 85%, on va avoir un petit problème. En effet, on n'aura que 60 pertes théorique (n'oublions pas qu'on ne connaît pas P mais qu'on cherche à l'évaluer). On peut donc tout à fait en avoir 40 ou pourquoi pas 100, ce qui donnera une incertitude monstrueuse sur ces pertes.
Maintenant évaluons plus précisément les choses.
L'espérance est N * P, soit 400 P. (P n'est pas encore évalué).
L'écart type = Racine( N * P * ( 1-P) )
Si on trouve P=0.5 (pile ou face donc), on a bien :
- E = 400 * ( 0.5 * 1 - 0.5 * 1 ) = 0; // * 1 signifie qu'on gagne 1 en cas de gain et vice versa en cas de perte
- Sigma = Racine(400) * Racine(0.5 * 0.5) = 10;
Après 400 tirages de pile ou face, l'espérance est nulle et le Sigma (l'espérance de l'écart) = 10.
Maintenant appliquons à ces 400 tirages une gaussienne pour faire les calculs d'incertitude :
A 95% de ne pas se tromper (une fois sur 20 donc), on aura 1.6 EcartType soit +- 16
A 99% de ne pas se tromper, on aura 2.3 EcartType soit +- 23
Nous avons ici un résultat qui peut être contre intuitif pour le public. La loi des grands nombres ne fait pas qu'en moyenne, au bout d'un moment, on a tendance à se rapprocher de l'espérance. Pas de tout. Plus ça va, plus l'écart a des chances de s'empiler et d'augmenter. Ce qui diminue, c'est cet écart par rapport à N, le nombre de tirages. Ainsi, le résultat de la faute à pas de chance ou de l'heureuse surprise, en valeur absolue, augmente avec le temps. Avec la racine du temps en fait, comme on l'a vu ci-dessus.
Passons maintenant du tirage à pile ou face à la proportion de trades gagnants lors d'un back test. Simplifions encore les chose en supposant que le RR (Reward/Risk) soit connu et constant, disons de 1.5. Avec 50% de gains, on a donc un PF (Profit Factor) de 1.5.
Reprenons le résultat à 95% de ne pas se tromper (une fois sur 20 donc), on aura 1.6 EcartType soit +- 16
Cet écart type nous donne une idée du résultat de la promenade aléatoire, pas de l'incertitude sur l'estimateur. Maintenant imaginons une promenade donnée. L'estimateur (la chance de gagner) sera issu de cette promenade. On est bien obligé de prendre la moyenne trouvée. On applique donc précisément l'incertitude de la promenade sur l'estimateur :
A 95% de ne pas se tromper, l'esperance de gain = 0.5 +- 16/400. On a trouvé 0.5 mais la vraie valeur se trouve entre 0.525 et 0.475.
Si on a un Profit Factor de 1.5 (issus d'un Reward/Risk de 1.5), le PF estimé à 1.5 est entre 1.76 et 1.28. On voit combien l'incertitude est grande malgré 400 trades. L'incertitude du modèle est encore plus grande si on évalue la cascade d'incertitudes comprenant l'erreur sur le taux de gain ainsi que celle sur le RR.
Maintenant regardons ce qui se passerait avec une stratégie ayant 85% de trades gagnants (et de rare grosses pertes donc).
Esperance = 0.85
Sigma = Racine( N * P * ( 1-P) ) = 7.14
A 95% de ne pas se tromper, Esperance = 0.85 +- 1.6 * 7.14 / 400, soit entre 82 et 88%
Pour les pertes, nous avons donc entre 18% et 12%.
Si le Profit Factor de back test est de 1.5 avec 85% de gain, on a des pertes de 3.8 fois les gains.
En reprenant les incertitudes, on a un PF entre 1.2 et 1.9 (toujours à 95% de ne pas se tromper).
On voit combien l'incertitude est plus élevé que lorsque le taux de gain est de 50%.
Ceci montre combien il faut s'interroger sur le nombre d'évènements à partir desquels on a évalué un résultat, on encore à partir desquels on ajuste des paramètres. Maintes et maintes fois se répète l'erreur suivant laquelle on pense que le nombre d'évènements est le nombre de trades. A 85% de taux de gains, il n'y a que 60 pertes sur 400. Ce chiffre de 60 est trop bas pour avoir une estimation correcte. Les stratégies qui s'écartent nettement de 50% de gain on besoin de beaucoup plus de trades pour être évaluées.
Les sur optimisations les plus graves se rencontrent de cette façon. Bien que disposant de nombreux trades, certains paramètres sont basés sur peu d'évènements. On ne peut pas faire de statistique dessus. On ne peut pas ajuster de paramètre. On ne peut rien en conclure ni prédire quoi que ce soit.
Par exemple une stratégie disposant de milliers de trades lors d'un backtest peut s'améliorer en ajouttant un filtre de tendance de très long terme. Peut être que le back test peut s'en trouver fortement amélioré. Cependant, si ce retournement de tendance de long terme n'intervient que 3 ou 4 fois dans l'historique, on n'a aucun moyen d'en ajuster les paramètres (prend on en compte trop tôt ou trop tard ce retournement). Le backtest sera forcément très sur optimisé.
J'aimerais aborder ici une question qui touche à l'optimisation et donc inévitablement à la sur optimisation, c'est la notion d'incertitude. Cette incertitude se rencontre dans l'évaluation de paramètres ou encore dans les résultats d'une stratégie.
Commençons par une petite digression universitaire qui aborde un problème très simple. L'évaluation des paramètres d'une loi binomiale, partant d'un certain nombre de tirages. Derrière ce mot savant, il s'agit simplement de l'évaluation du paramètre d'un exercice simple. Un jeu où soit vous perdez, soit vous gagnez. Le but est d'évaluer la probabilité de gagner à partir d'un certain nombre de tirage. Comme un jeu à pile ou face mais où les pièces sont fortement truquées, capable par exemple de faire sortir face dans 90% des cas.
On note la probabilité de gagner P. Celle de perdre Q. On aura P=1-Q
Maintenant jetons la pièce 400 fois. Intuitivement, avec 400 tirages, on croit savoir que l'on sait ce qu'il en est avec une bonne précision. On a une précision pas trop mauvaise si P et Q sont proches, et donc proches de 50%. Si P = 85%, on va avoir un petit problème. En effet, on n'aura que 60 pertes théorique (n'oublions pas qu'on ne connaît pas P mais qu'on cherche à l'évaluer). On peut donc tout à fait en avoir 40 ou pourquoi pas 100, ce qui donnera une incertitude monstrueuse sur ces pertes.
Maintenant évaluons plus précisément les choses.
L'espérance est N * P, soit 400 P. (P n'est pas encore évalué).
L'écart type = Racine( N * P * ( 1-P) )
Si on trouve P=0.5 (pile ou face donc), on a bien :
- E = 400 * ( 0.5 * 1 - 0.5 * 1 ) = 0; // * 1 signifie qu'on gagne 1 en cas de gain et vice versa en cas de perte
- Sigma = Racine(400) * Racine(0.5 * 0.5) = 10;
Après 400 tirages de pile ou face, l'espérance est nulle et le Sigma (l'espérance de l'écart) = 10.
Maintenant appliquons à ces 400 tirages une gaussienne pour faire les calculs d'incertitude :
A 95% de ne pas se tromper (une fois sur 20 donc), on aura 1.6 EcartType soit +- 16
A 99% de ne pas se tromper, on aura 2.3 EcartType soit +- 23
Nous avons ici un résultat qui peut être contre intuitif pour le public. La loi des grands nombres ne fait pas qu'en moyenne, au bout d'un moment, on a tendance à se rapprocher de l'espérance. Pas de tout. Plus ça va, plus l'écart a des chances de s'empiler et d'augmenter. Ce qui diminue, c'est cet écart par rapport à N, le nombre de tirages. Ainsi, le résultat de la faute à pas de chance ou de l'heureuse surprise, en valeur absolue, augmente avec le temps. Avec la racine du temps en fait, comme on l'a vu ci-dessus.
Passons maintenant du tirage à pile ou face à la proportion de trades gagnants lors d'un back test. Simplifions encore les chose en supposant que le RR (Reward/Risk) soit connu et constant, disons de 1.5. Avec 50% de gains, on a donc un PF (Profit Factor) de 1.5.
Reprenons le résultat à 95% de ne pas se tromper (une fois sur 20 donc), on aura 1.6 EcartType soit +- 16
Cet écart type nous donne une idée du résultat de la promenade aléatoire, pas de l'incertitude sur l'estimateur. Maintenant imaginons une promenade donnée. L'estimateur (la chance de gagner) sera issu de cette promenade. On est bien obligé de prendre la moyenne trouvée. On applique donc précisément l'incertitude de la promenade sur l'estimateur :
A 95% de ne pas se tromper, l'esperance de gain = 0.5 +- 16/400. On a trouvé 0.5 mais la vraie valeur se trouve entre 0.525 et 0.475.
Si on a un Profit Factor de 1.5 (issus d'un Reward/Risk de 1.5), le PF estimé à 1.5 est entre 1.76 et 1.28. On voit combien l'incertitude est grande malgré 400 trades. L'incertitude du modèle est encore plus grande si on évalue la cascade d'incertitudes comprenant l'erreur sur le taux de gain ainsi que celle sur le RR.
Maintenant regardons ce qui se passerait avec une stratégie ayant 85% de trades gagnants (et de rare grosses pertes donc).
Esperance = 0.85
Sigma = Racine( N * P * ( 1-P) ) = 7.14
A 95% de ne pas se tromper, Esperance = 0.85 +- 1.6 * 7.14 / 400, soit entre 82 et 88%
Pour les pertes, nous avons donc entre 18% et 12%.
Si le Profit Factor de back test est de 1.5 avec 85% de gain, on a des pertes de 3.8 fois les gains.
En reprenant les incertitudes, on a un PF entre 1.2 et 1.9 (toujours à 95% de ne pas se tromper).
On voit combien l'incertitude est plus élevé que lorsque le taux de gain est de 50%.
Ceci montre combien il faut s'interroger sur le nombre d'évènements à partir desquels on a évalué un résultat, on encore à partir desquels on ajuste des paramètres. Maintes et maintes fois se répète l'erreur suivant laquelle on pense que le nombre d'évènements est le nombre de trades. A 85% de taux de gains, il n'y a que 60 pertes sur 400. Ce chiffre de 60 est trop bas pour avoir une estimation correcte. Les stratégies qui s'écartent nettement de 50% de gain on besoin de beaucoup plus de trades pour être évaluées.
Les sur optimisations les plus graves se rencontrent de cette façon. Bien que disposant de nombreux trades, certains paramètres sont basés sur peu d'évènements. On ne peut pas faire de statistique dessus. On ne peut pas ajuster de paramètre. On ne peut rien en conclure ni prédire quoi que ce soit.
Par exemple une stratégie disposant de milliers de trades lors d'un backtest peut s'améliorer en ajouttant un filtre de tendance de très long terme. Peut être que le back test peut s'en trouver fortement amélioré. Cependant, si ce retournement de tendance de long terme n'intervient que 3 ou 4 fois dans l'historique, on n'a aucun moyen d'en ajuster les paramètres (prend on en compte trop tôt ou trop tard ce retournement). Le backtest sera forcément très sur optimisé.