Le « markout » : l'outil des pros pour savoir si vos entrées ont vraiment un edge

Posez vos questions relatives au trading, Aidez les autres membres, et découvrez les nombreuses discussions de ce forum dédié à l'apprentissage et la formation sur la bourse et la finance.

Modérateur : Administrateurs

Message
Auteur
Anya
Membre actif
Messages : 18
Inscription : 26 août 2026, 08:52
Localisation : France

Le « markout » : l'outil des pros pour savoir si vos entrées ont vraiment un edge

#1 Message par Anya »

Bonjour à tous,

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 vente
Un markout positif signifie que le marché est allé dans votre sens après l'entrée. Un markout négatif, qu'il est parti contre vous.

L'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)
Évolution du mid ensuite :
  • À 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
Sur un seul trade, ça ne veut rien dire : c'est du bruit. L'intérêt apparaît quand on fait la moyenne sur des centaines ou des milliers d'exécutions et qu'on trace la courbe du markout moyen en fonction de l'horizon.


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 :
  1. La liste de vos exécutions : horodatage précis (à la seconde au minimum, idéalement milliseconde), sens, prix exécuté.
  2. 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.
Un squelette en Python (pandas) :

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 standard
Il ne reste plus qu'à tracer la moyenne par horizon, avec une bande de ±2 erreurs standard.


7. 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.
Ce dernier point est à mon sens le plus important : un markout ne vaut que comparé à une référence aléatoire. Si vos entrées font +1,2 pt à 5 minutes mais que des entrées tirées au hasard aux mêmes heures font +1,0 pt, votre edge réel n'est que de 0,2 pt.


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.
Les deux ensemble donnent une image très complète de ce que vaut une stratégie, bien plus que le simple résultat final.


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.

Répondre