Le RSI classique est beaucoup trop basique : il se contente de calculer le ratio des moyennes des prix de clôture à la hausse et à la baisse sur $N$ périodes. Résultat, il est complètement aveugle face aux volumes de liquidation, à l'imbalance de l'order book et à la vitesse à laquelle les ordres défilent sur le tape (Time & Sales).
Pour qu'un indicateur de momentum capte réellement la physique du marché, on doit fusionner la vitesse de variation des prix avec un filtre de volatilité dynamique ($ATR$) et le volume. On va donc utiliser une version modifiée du Z-Score Momentum combinée au Chande Momentum Oscillator (CMO), adaptée aux spécificités de la crypto (avec prise en compte du volume échangé).

Où S_u est la somme des hausses des prix de clôture pondérée par le volume sur la période, et S_d la somme des pertes absolues, elle aussi pondérée par le volume. Cette approche évite que l'oscillateur ne reste bloqué indéfiniment en zone de surachat si le mouvement se poursuit sur des volumes mourants (c'est-à-dire une divergence).
Sélection des métriques : Analyse comparative des oscillateurs de momentum
| Indicateur / Métrique | Ce qu'il mesure vraiment | Le gros point noir en crypto | La modif pour le Pro Trading |
|---|---|---|---|
| RSI Classique | La force relative de la clôture des bougies. | Il a tendance à coller au plafond/plancher (zones 70+ / 30-) lors des short squeeze. | Remplacer la moyenne simple par une VWMA (Volume Weighted). |
| Rate of Change (ROC) | La vitesse pure de variation du prix (P_t - P_{t-n}). | Hyper choppy ; ultra-sensible au bruit du marché et aux gaps. | Lissage du signal via une EMA. |
| Z-Score Momentum | L'écart du momentum actuel par rapport à son espérance mathématique. | Nécessite une recalibration constante de la fenêtre de lookback. | Fenêtre dynamique indexée directement sur le cycle de volatilité. |
Implémentation de la stratégie : Pine Script v5
Ce script calcule un score de momentum pondéré par les volumes (Volume-Weighted Momentum Score). L'objectif est de spotter l'épuisement de la tendance en filtrant les valeurs extrêmes du Z-Score et les croisements des lignes de signal. Timeframe de prédilection : 15m – 1h (pour du scalping intraday sur les perps BTC/USDT ou ETH/USDT).
Pine Script
//@version=5
strategy("Volume-Weighted Momentum Z-Score Strategy", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs des paramètres
len = input.int(14, title="Momentum Period")
smooth = input.int(5, title="Signal Smoothing")
z_len = input.int(20, title="Z-Score Lookback")
upper_band = input.float(2.0, title="Overbought (Z-Score)")
lower_band = input.float(-2.0, title="Oversold (Z-Score)")
// Calcul du momentum pondéré par le volume
price_change = ta.change(close)
vol_momentum = price_change * volume
// Lissage du momentum
smoothed_mom = ta.ema(vol_momentum, len)
// Calcul du Z-Score pour le momentum lissé
mean_mom = ta.sma(smoothed_mom, z_len)
std_mom = ta.stdev(smoothed_mom, z_len)
z_score = std_mom != 0 ? (smoothed_mom - mean_mom) / std_mom : 0.0
// Ligne de signal
signal_line = ta.ema(z_score, smooth)
// Rendu graphique
plot(z_score, color=color.white, title="Z-Score Momentum", linewidth=2)
plot(signal_line, color=color.yellow, title="Signal Line")
hline(upper_band, "Upper Bound", color=color.red, linestyle=hline.style_dashed)
hline(lower_band, "Lower Bound", color=color.green, linestyle=hline.style_dashed)
hline(0, "Zero Line", color=color.gray)
// Triggers mean reversion sur épuisement du momentum
long_condition = ta.crossover(z_score, lower_band) or (z_score < lower_band and ta.crossover(z_score, signal_line))
short_condition = ta.crossunder(z_score, upper_band) or (z_score > upper_band and ta.crossunder(z_score, signal_line))
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)Risk Management pour le trading de momentum
Entrer au market dès que la ligne de signal croise est un suicide financier. Le momentum peut repartir de plus belle sur une cascade de liquidations.
Il faut impérativement poser des règles de money management strictes :
- Point d'entrée (Trigger) : On n'ouvre la position qu'après la clôture de la bougie qui valide le retour du Z-Score à l'intérieur du range [-2.0 ; 2.0]. C'est la garantie que le squeeze a ralenti.
- Stop Loss (SL) : On le cale obligatoirement sur l'extrême local (le High/Low de la bougie qui a fait le squeeze) en ajoutant un filtre de 0.5 x ATR (14). Si le stop est trop large, on réduit le size de la position, mais on ne rapproche jamais le stop en mode espoir.
- Take Profit (TP) : Prise de profit partielle. On coupe 50% de la position dès qu'on touche la ligne zéro (la moyenne mathématique du momentum). Le reste passe instantanément en break-even (BE) et on laisse courir jusqu'à la borne opposée.
- Risk-to-Reward (R:R) : Le strict minimum acceptable sur un setup est de 1:2.5. En dessous, mathématiquement, ça ne couvrira jamais le winrate des modèles de mean-reversion sur le long terme.
Aucun oscillateur ne peut prédire l'avenir s'il ignore les volumes de ceux qui sont en train de se faire découper par des Margin Calls. Utilisez le Z-Score de momentum comme un filtre de contexte : si l'indicateur explose les niveaux critiques, il est déjà trop tard pour fomo dans le sens du trend, il est temps de préparer ses ordres de contre-tendance ou de sécuriser ses gains.