Tous les articles

Finance6 min de lecture

Les maths de base du trading quantitatif

Rendements, volatilité, Sharpe, drawdown, z-score, VWAP, microprice: les formules qu'on retrouve partout en trading quantitatif, ce qu'elles mesurent vraiment, et les pièges de chacune.

Tableau noir couvert d'équations écrites à la craie

Le trading quantitatif a la réputation d'être une affaire de mathématiques avancées. En pratique, l'essentiel du travail quotidien repose sur une poignée de formules simples. Ce qui fait la différence, c'est de savoir exactement ce que chacune mesure, et surtout ce qu'elle ne mesure pas.

Voici celles que j'utilise le plus, de la plus générale à la plus proche du carnet d'ordres.

Les rendements: simples ou logarithmiques#

Tout part du rendement entre deux instants. Le rendement simple:

Rt=PtPt−1−1R_t = \frac{P_t}{P_{t-1}} - 1

et le rendement logarithmique:

rt=ln⁡(PtPt−1)r_t = \ln\left(\frac{P_t}{P_{t-1}}\right)

Pour de petits mouvements, les deux sont presque égaux. Mais les rendements log ont une propriété précieuse: ils s'additionnent dans le temps. Le rendement log sur une semaine est la somme des rendements log de chaque jour, alors que les rendements simples se composent par multiplication.

Moyenne et volatilité#

Sur une série de nn rendements, la moyenne et l'écart-type estimés:

μ^=1n∑t=1nrtσ^=1n−1∑t=1n(rt−μ^)2\hat{\mu} = \frac{1}{n} \sum_{t=1}^{n} r_t \qquad \hat{\sigma} = \sqrt{\frac{1}{n-1} \sum_{t=1}^{n} \left(r_t - \hat{\mu}\right)^2}

L'écart-type des rendements, c'est la volatilité: l'amplitude typique des variations. Le n−1n - 1 au dénominateur (correction de Bessel) compense le fait que la moyenne est elle-même estimée sur les mêmes données.

Annualiser: la racine du temps#

Si les rendements de chaque jour sont indépendants et de même loi, leurs variances s'additionnent. Sur NN jours, la variance est multipliée par NN, donc la volatilité par N\sqrt{N}:

σannuelle=σjour252μannuelle=252 μjour\sigma_{\text{annuelle}} = \sigma_{\text{jour}} \sqrt{252} \qquad \mu_{\text{annuelle}} = 252 \, \mu_{\text{jour}}

252 est le nombre habituel de jours de bourse dans une année. C'est la raison pour laquelle le risque grandit moins vite que le rendement espéré quand l'horizon s'allonge.

Le ratio de Sharpe#

Le rendement seul ne dit rien: gagner 20 % en risquant tout n'est pas la même chose que gagner 20 % calmement. Le ratio de Sharpe rapporte le rendement en excès du taux sans risque rfr_f à la volatilité:

S=μ−rfσS = \frac{\mu - r_f}{\sigma}

Annualisé à partir de données journalières, il est multiplié par 252\sqrt{252}, puisque le numérateur grandit comme NN et le dénominateur comme N\sqrt{N}. Un Sharpe annuel supérieur à 1 est déjà bon; au-delà de 3 sur un backtest, il faut d'abord chercher l'erreur.

Le drawdown#

La volatilité traite les hausses et les baisses de la même façon. Le drawdown ne regarde que la douleur: la baisse depuis le plus haut atteint.

DDt=1−Vtmax⁡s≤tVsMDD=max⁡t DDtDD_t = 1 - \frac{V_t}{\max_{s \le t} V_s} \qquad MDD = \max_t \, DD_t

Le drawdown maximal (MDDMDD) est souvent le chiffre qui décide si une stratégie est supportable, bien plus que son rendement moyen. Une stratégie qui perd 40 % avant de remonter sera abandonnée bien avant de remonter.

Corrélation et bêta#

Deux séries peuvent bouger ensemble. Leur corrélation mesure la force de ce lien, entre −1 et 1:

ρa,b=cov⁡(ra,rb)σa σb\rho_{a,b} = \frac{\operatorname{cov}(r_a, r_b)}{\sigma_a \, \sigma_b}

Le bêta mesure la sensibilité d'un actif au marché: de combien il bouge quand le marché bouge de 1.

β=cov⁡(ra,rm)σm2\beta = \frac{\operatorname{cov}(r_a, r_m)}{\sigma_m^2}

Deux stratégies très rentables mais corrélées à 0,9 ne diversifient presque rien: elles perdront le même jour.

Le z-score#

Pour savoir si une valeur est « anormale », on mesure son écart à la moyenne en nombre d'écarts-types:

z=x−μσz = \frac{x - \mu}{\sigma}

Un z-score de 2 signifie que la valeur est à deux écarts-types de sa moyenne habituelle. C'est la brique de base de beaucoup de signaux de retour à la moyenne: un écart extrême a tendance à se résorber.

Dans Orion, j'applique une règle stricte: une mesure comme le z-score est calculée par la couche des indicateurs, mais elle ne décide jamais. Le seuil (« au-delà de 2, j'agis ») vit uniquement dans la stratégie. Une même mesure peut ainsi servir à plusieurs stratégies sans qu'aucune décision ne se cache dans un calcul.

Les moyennes mobiles#

La moyenne mobile simple sur NN périodes donne le même poids à chaque valeur. La moyenne mobile exponentielle donne plus de poids aux valeurs récentes, et se calcule en continu, sans garder d'historique:

EMAt=α xt+(1−α) EMAt−1α=2N+1EMA_t = \alpha \, x_t + (1 - \alpha) \, EMA_{t-1} \qquad \alpha = \frac{2}{N + 1}

C'est sa grande qualité dans un moteur temps réel: une seule valeur à garder en mémoire, une multiplication et une addition par mise à jour.

Le VWAP#

Le prix moyen pondéré par les volumes échangés (Volume-Weighted Average Price):

VWAP=∑ipi qi∑iqiVWAP = \frac{\sum_i p_i \, q_i}{\sum_i q_i}

C'est le prix « juste » d'une séance au sens des volumes: une transaction de 100 contrats pèse cent fois plus qu'une transaction d'un contrat. Il sert de référence pour juger une exécution (ai-je acheté mieux ou moins bien que le VWAP?) et comme niveau que le marché a tendance à retester.

Côté carnet: mid, spread, déséquilibre, microprice#

Quand on descend au niveau du carnet d'ordres, avec le meilleur prix acheteur PbP_b (quantité QbQ_b) et le meilleur prix vendeur PaP_a (quantité QaQ_a):

mid=Pb+Pa2spread=Pa−Pb\text{mid} = \frac{P_b + P_a}{2} \qquad \text{spread} = P_a - P_b

Le déséquilibre du haut du carnet compare la quantité de chaque côté, entre −1 (que des vendeurs) et 1 (que des acheteurs):

I=Qb−QaQb+QaI = \frac{Q_b - Q_a}{Q_b + Q_a}

Le mid ignore les quantités: il place le « vrai » prix pile au milieu, même si 200 contrats attendent à l'achat et 3 à la vente. Le microprice corrige ça en pondérant chaque côté par la quantité d'en face:

Pmicro=Pa QbQb+Qa+Pb QaQb+QaP_{\text{micro}} = P_a \, \frac{Q_b}{Q_b + Q_a} + P_b \, \frac{Q_a}{Q_b + Q_a}

S'il y a beaucoup d'acheteurs et peu de vendeurs, le prochain mouvement a plus de chances d'être à la hausse: le microprice se rapproche du prix vendeur, qui sera probablement le prochain prix traité.

L'espérance d'une stratégie#

Avec un taux de réussite pp, un gain moyen GG et une perte moyenne LL, l'espérance par trade:

E=p G−(1−p) LE = p \, G - (1 - p) \, L

Une stratégie qui gagne 70 % du temps peut perdre de l'argent si ses pertes sont trop grosses, et une stratégie qui gagne 35 % du temps peut être excellente si ses gains sont trois fois plus grands que ses pertes. Le taux de réussite seul ne veut rien dire.

Ce que j'en retiens#

  • Des formules simples, des hypothèses fortes. Presque toutes supposent des rendements indépendants et une volatilité stable. Le marché ne respecte ni l'un ni l'autre.
  • Toujours regarder le risque avec le rendement: Sharpe, drawdown, corrélation. Un rendement seul ne dit rien.
  • Au plus près du carnet, les quantités comptent autant que les prix. Le microprice et le déséquilibre racontent ce que le mid ignore.
  • Un chiffre trop beau est d'abord un bug. Un Sharpe de 5 sur un backtest signale plus souvent une erreur de données qu'un génie.
  • mathématiques
  • quant
  • microstructure