Le hedge fund le plus performant de l'histoire n'a jamais connu une seule année déficitaire. En 34 tentatives. Voici le système exact — chaque formule, chaque signal, du code exécutable.
Printemps 1988. Un mathématicien qui a passé sa carrière à décrypter les codes de la guerre froide entre dans une salle de trading et fait quelque chose que personne à Wall Street n'avait jamais tenté : il licencie tous les traders et les remplace par des détecteurs de signaux.
Son nom : Jim Simons. Son fonds : le Medallion. Les résultats : 60 milliards de dollars de frais de performance prélevés sur les marchés. 30 milliards de dollars de valeur nette pour Simons seul. 39 % de rendement annuel après des frais de performance de 44 %. Aucune année déficitaire en 34 tentatives.
Chaque quant sur cette plateforme a vu ces chiffres. Presque personne ne sait ce qui tourne réellement sous le capot.
Jusqu'à maintenant.
COUCHE 1 : Le moteur de détection des signaux
Renaissance ne trade pas sur les actualités. Elle ne lit pas les 10-K. L'équipe de Simons utilise des méthodes basées sur les données, avec l'analyse statistique et la puissance de calcul pour identifier les inefficacités du marché — collectant d'énormes quantités de données et les analysant pour trouver des motifs statistiques et des événements non aléatoires sur un large éventail de marchés.
La première couche est un extracteur de motifs. Considérez-le comme un sismographe — non pas pour lire les tremblements de terre, mais les tremblements invisibles dans les données de prix qui précèdent les grands mouvements.
Voici le squelette Python :
1import numpy as np2import pandas as pd3from scipy import stats45def detect_signal(prices: pd.Series, lookback: int = 20) -> dict:6 returns = prices.pct_change().dropna()78 # Autocorrélation — le rendement d'aujourd'hui est-il prédictif de celui de demain ?9 acf_1 = returns.autocorr(lag=1)1011 # Écart Z par rapport à la moyenne mobile12 rolling_mean = returns.rolling(lookback).mean()13 rolling_std = returns.rolling(lookback).std()14 z_score = (returns - rolling_mean) / rolling_std1516 # Exposant de Hurst — cette série est-elle en tendance ou à retournement de moyenne ?17 hurst = compute_hurst(prices.values)1819 return {20 "autocorrelation": acf_1,21 "z_score_latest": z_score.iloc[-1],22 "hurst_exponent": hurst, # <0.5 = retournement de moyenne, >0.5 = tendance23 "regime": "trending" if hurst > 0.55 else "mean_reverting"24 }2526def compute_hurst(ts):27 lags = range(2, 20)28 tau = [np.sqrt(np.std(np.subtract(ts[lag:], ts[:-lag]))) for lag in lags]29 m = np.polyfit(np.log(lags), np.log(tau), 1)30 return m[0] * 2.0
Ce que cela vous indique : Si hurst < 0,45, l'actif est à retournement de moyenne — les fades fonctionnent. Si hurst > 0,55, il est en tendance — le momentum fonctionne. Medallion change de stratégie en se basant sur ce type exact de détection de régime.
COUCHE 2 : Le modèle factoriel (Pourquoi les actions bougent avant que quiconque sache pourquoi)
Les opérations quant sérieuses exploitent les chaînes d'options, la profondeur du carnet d'ordres, les données fondamentales (bénéfices, revenus, flux de trésorerie), les actions corporatives, le sentiment des actualités, le volume des réseaux sociaux, et de plus en plus des ensembles de données alternatifs comme l'imagerie satellite, les transactions par carte de crédit anonymisées, le trafic web, les téléchargements d'applications, et les mouvements de conteneurs maritimes.
Renaissance identifie pourquoi les mouvements de prix se produisent en décomposant les rendements en facteurs. Le modèle à 5 facteurs de Fama-French est la version publique de cela. La version privée de Renaissance va jusqu'à plus de 200 facteurs.
1from sklearn.linear_model import LinearRegression23def factor_decompose(returns: pd.DataFrame, factors: pd.DataFrame) -> dict:4 """5 returns : DataFrame des rendements d'actifs6 factors : DataFrame des rendements factoriels (marché, taille, valeur, momentum, etc.)7 """8 model = LinearRegression()9 model.fit(factors, returns)1011 alpha = model.intercept_ # Rendement non expliqué par les facteurs = pur avantage12 betas = model.coef_ # Expositions factorielles13 r_squared = model.score(factors, returns)1415 return {16 "alpha": alpha, # C'est ce que vous cherchez — alpha > 0 ?17 "betas": dict(zip(factors.columns, betas)),18 "r_squared": r_squared,19 "edge_quality": "strong" if abs(alpha) > 0.001 and r_squared > 0.3 else "weak"20 }
Alpha élevé + R² faible = votre avantage n'est pas expliqué par les facteurs connus. C'est le territoire de Medallion.
COUCHE 3 : La machine de régimes par chaîne de Markov
L'un des secrets les plus souvent cités des fonds quant de premier plan est la détection de régime — savoir dans quel état de marché vous êtes avant de trader. Le traitement du langage naturel scanne les articles d'actualité et les réseaux sociaux, extrayant des informations sur le sentiment public, mais le signal de régime le plus profond vient de la structure des prix elle-même.
Les chaînes de Markov modélisent la probabilité de transition entre les états de marché :
1import numpy as np23# États : 0=Haussier, 1=Baissier, 2=Stagnant4# Matrice de transition estimée à partir de données historiques5transition_matrix = np.array([6 [0.78, 0.14, 0.08], # Depuis Haussier : 78% restent Haussier, 14% vont Baissier, 8% Stagnant7 [0.20, 0.68, 0.12], # Depuis Baissier : 20% se rétablissent, 68% restent Baissier, 12% Stagnant8 [0.25, 0.23, 0.52], # Depuis Stagnant : 25% Haussier, 23% Baissier, 52% restent9])1011def get_next_regime(current_state: int, steps: int = 5) -> np.ndarray:12 """Retourne la distribution de probabilité sur les états après N pas."""13 state_vec = np.zeros(3)14 state_vec[current_state] = 1.01516 for _ in range(steps):17 state_vec = state_vec @ transition_matrix1819 return {20 "bull_probability": round(state_vec[0], 3),21 "bear_probability": round(state_vec[1], 3),22 "stagnant_probability": round(state_vec[2], 3),23 "dominant_regime": ["Bull", "Bear", "Stagnant"][np.argmax(state_vec)]24 }
Si le modèle indique une probabilité de 76 % de rester en régime Baissier sur les 5 prochaines périodes — vous n'allez pas à l'achat.
COUCHE 4 : L'extracteur d'avantage par réseau de neurones
Les systèmes d'IA utilisent l'apprentissage profond pour générer et exécuter des signaux de trading en temps réel, avec l'apprentissage par renforcement pour optimiser continuellement les stratégies de trading et améliorer le timing des entrées et sorties.
La couche de réseau de neurones extrait les relations non linéaires qu'aucune formule ne peut capturer :
1import torch2import torch.nn as nn34class QuantEdgeNet(nn.Module):5 def __init__(self, input_features: int = 50):6 super().__init__()7 self.layers = nn.Sequential(8 nn.Linear(input_features, 128),9 nn.ReLU(),10 nn.Dropout(0.2),11 nn.Linear(128, 64),12 nn.ReLU(),13 nn.Linear(64, 3) # Sortie : probabilités [long, short, flat]14 )1516 def forward(self, x):17 return torch.softmax(self.layers(x), dim=-1)1819# Signal d'entraînement : combine les scores factoriels + probabilités de régime + caractéristiques brutes de prix20def build_feature_vector(prices, factors, regime_probs):21 signal = detect_signal(prices)22 return np.concatenate([23 prices.pct_change().tail(20).values, # Derniers 20 rendements24 list(factors.values()), # Expositions factorielles25 list(regime_probs.values()), # Probabilités de régime Markov26 [signal["hurst_exponent"],27 signal["z_score_latest"]]28 ])
L'idée clé : vous ne prédisez pas le prix. Vous prédisez la probabilité de direction. Même 52 % de précision — si vous dimensionnez correctement avec Kelly — imprime de l'argent.
COUCHE 5 : La couche d'exécution (Là où 80 % des quants saignent)
Renaissance a dû construire une infrastructure pour maintenir les coûts d'exécution très bas — les rendements bruts rapportés sont après coûts de trading, ce qui rend la performance de Medallion encore plus extraordinaire.
La plupart des quants de détail dilapident leur avantage sur l'exécution. La solution :
1def kelly_position_size(2 win_probability: float,3 win_loss_ratio: float,4 max_risk_pct: float = 0.02 # Ne jamais risquer plus de 2 % par trade5) -> float:6 kelly_fraction = win_probability - (1 - win_probability) / win_loss_ratio7 kelly_fraction = max(0, kelly_fraction) # Ne jamais aller en short sur Kelly8 half_kelly = kelly_fraction * 0.5 # Utiliser demi-Kelly pour la sécurité9 return min(half_kelly, max_risk_pct) # Plafond dur à 2 %1011def calculate_execution_cost(12 spread_bps: float,13 market_impact_bps: float,14 shares: int,15 price: float16) -> float:17 total_bps = spread_bps + market_impact_bps18 cost_per_share = price * total_bps / 10_00019 return cost_per_share * shares2021# Ne prendre le trade que si l'avantage > coût d'exécution22def should_trade(edge_bps: float, execution_cost_bps: float) -> bool:23 return edge_bps > (execution_cost_bps * 1.5) # Exiger au minimum 1,5x la couverture des coûts
LE MANUEL MEDALLION : Les 5 couches
1Données brutes de marché2 ↓3[C1] Détection de signal → Hurst · ACF · Z-score4 ↓5[C2] Modèle factoriel → Extraction α · Exposition β6 ↓7[C3] Régime Markov → Haussier · Baissier · Stagnant8 ↓9[C4] Avantage réseau neuronal → Long · Short · Flat10 ↓11[C5] Kelly + Exécution → Taille de position · Filtre de coût · Entrée12 ↓13 Trade / Pas de trade
Tous les autres fonds quant emploient des milliers de personnes. Renaissance en a 400 au total, peut-être 200 qui touchent aux modèles. Tous les autres fonds ont plusieurs stratégies concurrentes. Renaissance a un seul modèle sur lequel tout le monde travaille ensemble.
C'est le secret dont personne ne parle : l'avantage n'est pas une formule unique. C'est le pipeline — chaque couche filtre le bruit jusqu'à ce qu'il ne reste que la certitude statistique.
LES CHIFFRES NE MENTENT PAS
La plupart des stratégies quant meurent de surapprentissage. Medallion survit parce que :
- Ils ne montrent jamais le système complet à des étrangers — préservant l'alpha
- Ils ont fermé aux capitaux extérieurs — préservant la capacité
- Ils utilisent le demi-Kelly — survivant aux drawdowns qui tuent les quants surendettés
- Chaque signal est d'abord testé hors échantillon — pas de fuite de données
D'ici 2025, plus de 75 % du volume des transactions sur actions américaines était généré par des systèmes quantitatifs ou algorithmiques. Le marché est quant. Votre avantage est de construire le meilleur pipeline.
Le code ci-dessus est votre point de départ. Chaque formule est exécutable. Chaque couche est empilable.
Maintenant, construisez le vôtre.
Merci d'avoir lu, j'apprécierais un QT !
à propos de moi : Je suis Vénus, architecte senior de systèmes quant et ingénieure backend avec de l'expérience dans la création de startups de 0→1 et le passage à l'échelle de produits de 1→100 dans l'IA, le cloud, la fintech et l'infrastructure DeFi.





