On parle souvent sur le forum de win rate, de ratio gain/perte, de drawdown… Mais il existe une mesure très utilisée par les market makers, les desks d'exécution et les équipes quantitatives, qui reste quasiment inconnue chez les traders particuliers : le markout.
Pour un scalpeur ou quelqu'un qui automatise ses entrées, c'est pourtant l'un des diagnostics les plus honnêtes qui existent. Je vous propose de faire le tour du sujet.
1. Définition simple
Le markout mesure comment évolue le prix du marché après une exécution, à différents horizons de temps, indépendamment de la façon dont la position a été gérée ensuite.
Concrètement : vous achetez à un prix P. On regarde où se trouve le prix « juste » du marché (en général le mid, milieu entre bid et ask) 1 seconde après, 5 secondes, 30 secondes, 1 minute, 5 minutes…
Formule :
Code : Tout sélectionner
Markout(Δt) = sens × ( Mid(t + Δt) − Prix d'exécution )
sens = +1 pour un achat, −1 pour une venteL'idée clé : on ne regarde pas votre stop, votre objectif ou votre sortie. On isole la qualité de l'entrée elle-même.
2. Un exemple chiffré sur le Nasdaq
Achat d'un contrat NAS100 au marché :
- Bid 20 999,0 / Ask 21 000,0 → mid 20 999,5
- Exécution à 21 000,0 (vous payez l'ask)
- À t+0 : 20 999,5 → markout = −0,5 pt (vous payez déjà le demi-spread)
- À t+1 s : 20 999,8 → −0,2 pt
- À t+10 s : 21 001,0 → +1,0 pt
- À t+60 s : 20 998,0 → −2,0 pts
- À t+5 min : 21 004,0 → +4,0 pts
3. Lire une courbe de markout
On obtient une courbe : en abscisse l'horizon (1 s, 5 s, 30 s, 1 min, 5 min, 15 min…), en ordonnée le markout moyen en points ou en ticks. Quelques profils typiques :
a) Courbe qui démarre à −½ spread et reste plate autour
→ Vos entrées ne contiennent aucune information. Vous payez le spread pour rien. C'est le profil le plus fréquent chez les particuliers… et il est forcément perdant une fois les coûts déduits.
b) Courbe qui démarre négative puis monte progressivement au-dessus de zéro
→ Il y a un vrai signal, qui met un certain temps à se matérialiser. L'horizon où la courbe culmine vous indique la durée de vie naturelle de votre edge. Très utile pour calibrer un temps de sortie ou un objectif.
c) Courbe qui monte vite puis redescend
→ Edge réel mais très court (effet de momentum immédiat, réaction à un flux). Si vous gardez vos positions trop longtemps, vous rendez tout. Typique des stratégies d'open ou de cassure.
d) Courbe qui plonge juste après l'exécution
→ C'est la fameuse sélection adverse : vous êtes exécuté précisément quand le marché s'apprête à partir contre vous. Classique avec les ordres limites : vos limites sont touchées surtout quand le prix traverse franchement votre niveau. Vous « attrapez le couteau ».
4. Pourquoi les market makers en sont obsédés
Un market maker gagne le spread… mais perd sur la sélection adverse face aux flux « informés ». Le markout est sa mesure n°1 pour savoir si un flux client est toxique (markout négatif pour lui = le client était bien informé) ou bénin (markout neutre = flux aléatoire, rentable à servir).
C'est d'ailleurs, soit dit en passant, ce que regardent les brokers qui internalisent les ordres de leurs clients : un client dont les entrées ont un markout positif régulier est un client qui « coûte » au teneur de contrepartie. Ça éclaire pas mal de débats qu'on a eus sur le forum autour des conditions d'exécution.
5. Ce que ça apporte concrètement à un trader particulier
- Séparer la qualité d'entrée et la qualité de gestion. Une stratégie peut perdre avec de bonnes entrées (sorties mal calibrées) ou gagner avec de mauvaises entrées (chance, ou quelques gros trades qui masquent le reste). Le markout tranche.
- Calibrer la durée de détention. Le pic de la courbe donne un horizon optimal objectif, au lieu d'un objectif en points choisi « au feeling ».
- Comparer ordres au marché et ordres limites. Le limite économise le spread mais subit la sélection adverse. Le markout permet de voir lequel des deux effets l'emporte réellement sur VOTRE stratégie.
- Évaluer la qualité d'exécution d'un broker. En comparant prix exécuté et mid au moment de l'ordre, puis le markout à très court terme, on détecte slippage systématique ou exécutions en retard.
- Tester un filtre. Ajouter une condition (volatilité, horaire, tendance) doit améliorer la courbe de markout. Si ce n'est pas le cas, le filtre ne fait que réduire le nombre de trades.
- Détecter la dégradation d'un edge. Une courbe de markout qui s'aplatit mois après mois est souvent un signal d'alerte plus précoce que la courbe d'équité.
6. Comment le calculer soi-même
Il faut deux choses :
- La liste de vos exécutions : horodatage précis (à la seconde au minimum, idéalement milliseconde), sens, prix exécuté.
- Des données tick (bid/ask) sur la même période. Sous MT5, la fonction CopyTicksRange permet de les exporter ; beaucoup de plateformes proposent un export équivalent.
Code : Tout sélectionner
import pandas as pd
# trades : colonnes time, side (+1 achat / -1 vente), price
# ticks : colonnes time, bid, ask (triés par time)
ticks["mid"] = (ticks["bid"] + ticks["ask"]) / 2
ticks = ticks.set_index("time").sort_index()
horizons = ["0s", "1s", "5s", "30s", "60s", "300s", "900s"]
res = {}
for h in horizons:
t_cible = trades["time"] + pd.Timedelta(h)
# dernier mid connu à t + h
mid_h = ticks["mid"].reindex(t_cible, method="ffill").values
res[h] = trades["side"] * (mid_h - trades["price"])
markout = pd.DataFrame(res)
print(markout.mean()) # courbe moyenne
print(markout.std() / len(markout) ** 0.5) # erreur standard7. Les pièges à éviter
- Utiliser le dernier prix au lieu du mid. Sur CFD et forex, le « dernier prix » est souvent le bid : vos achats auront un markout artificiellement biaisé. Toujours le mid.
- Oublier le spread variable. À l'open ou lors des annonces, le spread s'élargit. Le markout à t+0 le révèle immédiatement, mais il faut le garder en tête dans l'interprétation.
- Conclure sur trop peu de trades. Sur 50 trades, l'écart-type écrase tout. Regardez toujours l'erreur standard avant de vous réjouir d'un +0,3 pt de moyenne.
- Les trades qui se chevauchent. Si vous entrez plusieurs fois dans la même minute, les markouts sont corrélés : votre échantillon « réel » est plus petit qu'il n'y paraît.
- Les horodatages décalés. Un décalage d'une seconde entre l'heure serveur du broker et vos ticks fausse complètement les markouts courts. Vérifiez que trades et ticks viennent de la même source.
- Les horizons qui dépassent la sortie. C'est voulu (on mesure le marché, pas votre P&L), mais il ne faut pas confondre markout à 15 min et gain réel si vous sortez à 2 min.
- Les tendances de fond. Sur une période fortement haussière, tous les achats ont un markout positif à long horizon. Comparez avec un échantillon d'entrées aléatoires (même nombre, mêmes horaires) pour avoir une référence neutre.
8. Markout, MFE et MAE : quelle différence ?
Beaucoup d'entre vous connaissent le MFE (Maximum Favorable Excursion) et le MAE (Maximum Adverse Excursion). Ils sont complémentaires mais différents :
- MFE / MAE regardent les extrêmes atteints pendant la vie du trade : utiles pour placer stops et objectifs.
- Le markout regarde la position moyenne du prix à des instants fixes : utile pour mesurer l'information contenue dans l'entrée et sa vitesse de décroissance.
En résumé
Le markout répond à une question simple mais redoutable : « Au moment où j'entre, est-ce que je sais quelque chose que le marché ne sait pas encore ? »
Si la réponse est non, aucune gestion de position, aucun money management ne transformera durablement la stratégie en machine à gagner : on ne fait que redistribuer le bruit en payant le spread à chaque fois.
À vous : est-ce que certains d'entre vous mesurent déjà la qualité de leurs entrées de cette façon ? Ou avec une autre méthode ? Je suis curieux de voir vos courbes si vous faites l'exercice sur vos propres trades.

