Schaff Trend Cycle (STC)
Composite MACD + Stochastic créé par Doug Schaff (1999). Plus rapide que MACD, plus stable que Stochastic. Borné [0, 100].
Définition
Schaff a réuni le meilleur de deux mondes : le MACD capture la tendance mais en retard ; le Stochastic est rapide mais bruyant. STC applique un Stochastic à la MACD line, donnant un oscillateur cyclique qui anticipe les retournements de tendance plus tôt que MACD seul.
Formule (version Schaff complète, double-Stochastic)
1. macd_series = EMA(close, 23) − EMA(close, 50)
2. fastK1 = Stochastic(macd_series, cycle=10) # 1er passage
3. PF1 = lissage α=0.5 → PF1[t] = PF1[t-1] + 0.5×(fastK1[t] − PF1[t-1])
4. fastK2 = Stochastic(PF1, cycle=10) # 2ème passage
5. STC = lissage α=0.5 → STC[t] = STC[t-1] + 0.5×(fastK2[t] − STC[t-1])
Le double-Stochastic + double lissage α=0.5 est ce qui différencie le STC canonique d'un simple "MACD normalisé". C'est l'algorithme original de Doug Schaff, aligné sur TradingView et la plupart des plateformes.
Paramètres dans le code
- fast : 23 (EMA courte)
- slow : 50 (EMA longue)
- cycle : 10 (fenêtre Stochastic, appliquée deux fois)
- Smoothing factor : 0.5 (équivalent EMA(3))
- Implémentation :
forex-assistant.tsx:521— fonctionschaffTrendCycle(prices, fast, slow, cycle) - Cas dégénéré : retourne 50 si
prices.length < slow * 2 = 100ou si la macd_series ne contient pas assez de barres pour deux passages de Stochastic.
Interprétation
| Zone | Lecture |
|---|---|
| > 75 | Surachat — fin probable de la phase haussière |
| 25 – 75 | Zone de mouvement |
| < 25 | Survente — fin probable de la phase baissière |
STC monte vite vers 100 quand le MACD vient de croiser à la hausse, et redescend vite vers 0 quand il croise à la baisse. Les passages 25 ↔ 75 sont les vrais signaux d'entrée — pas les zones extrêmes elles-mêmes.
Logique de score (forex-assistant.tsx:1495)
> 75 → score = -0.8 (max 0.8)
< 25 → score = +0.8 (max 0.8)
sinon → score = 0
Mean-reverting comme le Stochastic dont il dérive.
Pièges
- Cycle = 10 = court : sur du bruit forex, STC atteint 100 et 0 fréquemment. Augmenter à 23 (la valeur originale Schaff) lisse considérablement.
- Lent au démarrage : il faut 100 barres avant la première valeur exploitable. Sur un dataset court, STC reste bloqué à 50.
- Doublon avec MACD : par construction, STC = transformation de MACD. Si MACD est haussier, STC tendra vers 100 — ils ne sont pas indépendants.
Indicateurs liés
- MACD — la couche de base
- Stochastic — la couche d'oscillation
- TRIX — alternative très lissée
- StochRSI — autre Stochastic-of-X (mais sur RSI au lieu de MACD)