05 · Mesurer et surveiller l'edge¶
Un bot sans métriques ne sait pas s'il a un avantage ou de la chance. Ce chapitre donne les mesures qui transforment un journal de trades en diagnostic — et surtout celles qui détectent la dégradation d'un avantage avant que le compte ne le fasse savoir.
Toutes les fonctions sont implémentées et testées dans
metrics.py.
Les métriques de rentabilité¶
Profit factor¶
\(PF = 1\) est le seuil de rentabilité. Au-delà d'environ 1,5, le système devient intéressant.
Le PF ne dit rien de la distribution
Un PF de 2 obtenu grâce à un seul trade énorme n'a pas la robustesse d'un PF de 2 régulier. Un PF très élevé sur un petit échantillon est suspect, pas encourageant. Toujours le lire avec le nombre de trades.
Espérance¶
C'est le cœur mathématique de l'avantage, déjà central au chapitre Le modèle de coûts. L'exprimer en R — multiples du risque initial — rend toutes les stratégies comparables.
Ne l'estimez pas sur 20 trades
Les intervalles de confiance sont énormes sur petits échantillons. Une espérance positive stable, sur un échantillon suffisant, est la seule preuve d'avantage qui existe. Le minimum praticable est de 100 trades, et le chapitre Validation statistique explique pourquoi même cela peut être insuffisant.
Le R-multiple et sa distribution¶
Chaque résultat exprimé en multiples du risque initial : risquer 100 $ et gagner 250 $ donne \(+2{,}5R\) ; toucher son stop donne \(-1R\).
L'histogramme des R est plus parlant que n'importe quelle moyenne :
| Forme de la distribution | Diagnostic |
|---|---|
| Beaucoup de \(-1R\), quelques \(+5R\) | Système de tendance ou de continuation |
| Beaucoup de \(+0{,}8R\), rares \(-3R\) | Danger : les pertes dépassent le risque prévu |
Le diagnostic instantané le plus utile
Par construction, aucune perte ne devrait dépasser \(-1R\). Si votre histogramme montre des pertes à \(-1{,}4R\) ou \(-1{,}8R\), deux causes possibles, toutes deux graves :
- le slippage réel dépasse largement votre modèle — votre backtest est faux et votre espérance calculée est optimiste ;
- des stops ne sont pas respectés — bug, ordre rejeté non traité, ou stop simulé côté client non déclenché.
Cette vérification prend une minute et devrait figurer dans votre revue hebdomadaire. Elle détecte des classes entières de bugs d'exécution.
SQN (System Quality Number)¶
Une note de qualité statistique qui combine espérance et régularité.
| SQN | Lecture (échelle de Van Tharp) |
|---|---|
| ~2 | Système moyen |
| 3 à 5 | Bon à excellent |
| > 5 | Exceptionnel — à vérifier deux fois |
Le plafonnement de \(n\) à 100 est nécessaire : sans lui, la racine gonfle mécaniquement le score des systèmes très actifs, ce qui avantagerait artificiellement les bots de scalping.
Le SQN conditionne le dimensionnement
Un système régulier supporte plus d'agressivité qu'un système erratique de même espérance. C'est un critère plus fin que l'espérance seule pour décider de la fraction de risque du chapitre Espérance et dimensionnement.
MAE et MFE : calibrer stop et cible avec des données¶
MAE (Maximum Adverse Excursion) : la pire excursion contre la position pendant sa vie. MFE (Maximum Favorable Excursion) : la meilleure.
Deux usages directs :
| Distribution examinée | Ce qu'elle dit |
|---|---|
| MAE des trades gagnants | Où placer le stop |
| MFE de tous les trades | Ce que le marché offrait, comparé à ce qui a été encaissé |
Le diagnostic classique
Si les trades gagnants ne dépassent presque jamais \(-0{,}4R\) d'excursion adverse alors que votre stop est à \(1R\), ce stop ne sauve aucun gagnant. Il ne fait qu'augmenter la perte des perdants. Le resserrer à \(0{,}6R\) améliore l'espérance sans réduire le taux de réussite.
Symétriquement : des MFE moyennes à \(+3R\) pour des sorties moyennes à \(+1R\) signifient que votre gestion de sortie détruit l'avantage que le signal produit.
C'est exactement la mesure recommandée à l'étape 2 de la méthode de validation
du chapitre
Anatomie d'une stratégie, et la
fonction triple_barrier de metrics.py la retourne gratuitement.
Ne les optimisez pas sur un petit échantillon
Ajuster stop et cible sur les MAE/MFE de 40 trades, c'est du surajustement déguisé en analyse. Ces distributions ne se lisent qu'à partir de plusieurs centaines d'observations.
Les métriques de douleur¶
Elles rapportent le rendement au drawdown — c'est-à-dire à ce que vous devrez réellement vivre.
| Métrique | Définition | Repère |
|---|---|---|
| Ulcer Index | Racine de la moyenne des drawdowns au carré | Pénalise seulement la baisse |
| Gain-to-Pain | Somme des rendements / somme des pertes absolues | > 1 bon, > 2 excellent |
| MAR | Rendement annualisé / drawdown maximum | Plus haut = mieux |
| Recovery factor | Profit net / drawdown maximum | Capacité à se reconstruire |
| K-ratio | Pente de l'equity / erreur type de la régression | Régularité |
Pourquoi l'Ulcer Index plutôt que l'écart-type
L'écart-type pénalise la volatilité haussière autant que la baissière. Un système qui produit occasionnellement de gros gains est pénalisé comme s'il produisait de grosses pertes. L'Ulcer Index ne mesure que ce qui fait mal.
En contexte prop, c'est particulièrement pertinent : votre contrainte est un drawdown suiveur, pas une volatilité.
Le MAR est le bon critère de choix entre deux stratégies
Deux stratégies à \(+30\%\) par an. A subit 10 % de drawdown maximum (\(MAR = 3\)), B en subit 30 % (\(MAR = 1\)). À rendement égal, choisissez A — c'est celle que vous tiendrez psychologiquement, et la seule des deux qui survive à un drawdown suiveur de compte prop.
Analyser sa propre courbe de capital¶
Trois outils :
| Outil | Ce qu'il mesure |
|---|---|
| Régression linéaire | Pente (vitesse de l'avantage) et \(R^2\) (régularité) |
| Time underwater | Temps passé sous le dernier sommet de capital |
| Moyenne mobile de l'equity | Interrupteur marche/arrêt |
Le temps sous l'eau fait plus mal que la profondeur
Un drawdown de 15 % sur trois semaines se traverse. Le même drawdown étalé sur cinq mois fait abandonner. Pour un bot, cela se traduit par une question concrète : combien de temps accepterez-vous de le laisser tourner sans nouveau sommet ? Répondez avant, pas pendant.
L'interrupteur sur moyenne mobile n'est pas gratuit
Réduire la taille quand l'equity passe sous sa moyenne mobile paraît prudent. Mais ce switch dégrade les systèmes dont les pertes sont suivies de rebonds rapides — il coupe exactement au pire moment.
À backtester sur votre propre historique avant adoption, comme n'importe quelle autre règle.
Détecter la mort d'un avantage¶
C'est le vrai sujet de ce chapitre, et le mode d'échec spécifique des bots : l'erosion silencieuse. Un humain sent que quelque chose a changé ; un bot continue de trader comme si de rien n'était.
Les quatre signaux, par ordre de précocité¶
| Signal | Seuil | Précocité |
|---|---|---|
| Fréquence des signaux divisée par 2 vs référence | facteur 2 | La plus précoce |
| Espérance glissante sur 30-50 trades hors plage historique | hors bornes | Précoce |
| Taux de réussite sur 50 trades sous l'équilibre − 5 points | 5 points | Moyenne |
| Drawdown > 2 × le pire drawdown du backtest | facteur 2 | Tardive |
Surveillez la fréquence avant la performance
Un effondrement du nombre de signaux signale que le régime a changé, ou que votre flux de données s'est dégradé — avant même que la performance n'en souffre. C'est le signal le moins surveillé et le plus précoce.
Un doublement de la fréquence est tout aussi suspect : il signifie souvent qu'un seuil relatif s'est décalé, et que le bot se déclenche désormais sur du bruit.
Distinguer variance normale et mort de l'avantage¶
C'est précisément à quoi sert le backtest : calibrer la variance attendue.
- Un drawdown déjà observé dans le backtest est de la variance prévue. Ce n'est pas un signal de mort.
- Un drawdown au-delà de tout ce que le backtest contenait est un signal.
Le seuil s'écrit avant, jamais pendant
« Si le drawdown dépasse 1,5 fois le pire drawdown du backtest, j'arrête et je réévalue » : décidé à froid, ce critère est tenable. Décidé dans le feu d'un drawdown, il sera systématiquement révisé à la baisse.
Écrivez les quatre seuils dans un fichier de configuration, et faites que le bot s'arrête tout seul quand il les atteint. La discipline déléguée à la machine est le seul avantage certain de l'automatisation.
Les causes d'érosion¶
| Cause | Détection |
|---|---|
| Trop de monde sur le même motif | Fréquence stable, espérance qui baisse |
| Changement de microstructure | Fréquence qui change brutalement |
| Régime de volatilité différent | Corrélation entre performance et volatilité réalisée |
| Dégradation du flux de données | Fréquence en baisse, latence en hausse |
La quatrième cause est technique, pas financière
Une souscription perdue lors d'une reconnexion, un rollover mal géré, un fournisseur qui filtre : tout cela produit exactement le même symptôme qu'une érosion d'avantage. Vérifiez la plomberie avant de conclure que la stratégie est morte — c'est moins vexant et plus souvent vrai.
Ce qui invalide chaque métrique¶
| Conclusion tirée de | Invalidée si |
|---|---|
| Profit factor | Il repose sur un ou deux trades exceptionnels |
| Espérance positive | Estimée sur quelques dizaines de trades |
| Distribution des R saine | Des pertes dépassent \(-1R\) |
| Stop et cible optimisés par MAE/MFE | L'échantillon est petit : c'est du surajustement |
| Interrupteur sur moyenne mobile d'equity | Le backtest montre des pertes suivies de rebonds rapides |
| Sharpe attractif | Le nombre d'essais n'a pas été compté — voir le DSR |
Résumé¶
- Le PF et l'espérance se lisent toujours avec le nombre de trades.
- Des pertes au-delà de \(-1R\) signalent un bug d'exécution ou un slippage sous-estimé : vérification hebdomadaire d'une minute.
- Les MAE des gagnants calibrent le stop ; les MFE révèlent ce que la sortie détruit.
- L'Ulcer Index et le MAR sont plus pertinents que l'écart-type en contexte prop.
- La fréquence des signaux est le détecteur d'érosion le plus précoce.
- Les seuils d'arrêt s'écrivent avant, et le bot les applique lui-même.
Chapitre précédent : Ce que disent les statistiques · Chapitre suivant : Le risque de contrepartie