KST — Know Sure Thing
Oscillateur à somme pondérée de quatre ROC sur des horizons croissants. Créé par Martin Pring pour capter le momentum à plusieurs échelles temporelles avec un seul nombre.
Définition
Pring a constaté qu'aucun ROC isolé ne capte bien le momentum. Combiner quatre ROC (10, 15, 20, 30 barres) avec des poids croissants (1, 2, 3, 4) donne un agrégateur dominé par le moyen-terme tout en restant sensible aux mouvements courts.
Formule (version Pring complète)
ROC1_smoothed = SMA( ROC(close, 10), 10 )
ROC2_smoothed = SMA( ROC(close, 15), 10 )
ROC3_smoothed = SMA( ROC(close, 20), 10 )
ROC4_smoothed = SMA( ROC(close, 30), 15 )
KST = ROC1_smoothed × 1 + ROC2_smoothed × 2 + ROC3_smoothed × 3 + ROC4_smoothed × 4
Chaque ROC est lissé avant d'être pondéré — c'est ce qui distingue la KST "complète" Pring d'une simple somme pondérée.
Paramètres dans le code
- ROCs : 10, 15, 20, 30
- Lissages SMA : 10, 10, 10, 15
- Poids : 1, 2, 3, 4
- Implémentation :
forex-assistant.tsx:489— fonctionkst(prices) - Cas dégénéré : retourne 0 si
prices.length < 45(besoin de 30 + 15). - Pas de signal line : la version Pring ajoute un signal SMA(9) — non exposé.
Interprétation
KST n'est pas borné — la valeur dépend de la volatilité de la paire et du timeframe. Pring travaillait sur les actions où KST > +5 = haussier net.
| Zone | Lecture (sur forex D1) |
|---|---|
| > +5 | Tendance haussière confirmée multi-horizon |
| −5 à +5 | Indécis |
| < −5 | Tendance baissière confirmée multi-horizon |
Logique de score (forex-assistant.tsx:1476)
> 5 → score = +0.8 (max 0.8)
< -5 → score = -0.8 (max 0.8)
sinon → score = sign(KST) × 0.3 (max 0.8)
Comme TSI, garde un score modéré dans la zone neutre — le signe compte toujours un peu.
Pièges
- Seuil ±5 = arbitraire : adapté aux marchés actions classiques. Sur forex M5, KST atteint rarement ±5. Sur D1, c'est jouable.
- Sur-représentation du long-terme : avec des poids 1-2-3-4, ROC(30) compte 4× plus que ROC(10). KST est donc dominé par les variations à 30 barres — une variation rapide récente se voit peu.
- Démarrage lent : besoin de 45 barres minimum pour la première valeur (30 ROC + 15 SMA). Sur dataset court ou changement de paire, attendre que ~60 barres soient calculées.
- Cross zero : si la signal line était implémentée, le cross KST/signal serait le signal recommandé par Pring — pas le niveau absolu.