Know Sure Thing
systemic:core-kstIndicatorsfunction1 crInputs
| Name | Type | Description |
|---|---|---|
| Long Rate Of Change | integer | The lookback period for the **longest-term** Rate of Change calculation. |
| Short Rate Of Change | integer | The lookback period for the **shortest-term** Rate of Change calculation. |
| Medium Short Rate Of Change | integer | The lookback period for the **medium short-term** Rate of Change calculation. |
| Medium Long Rate Of Change | integer | The lookback period for the **medium long-term** Rate of Change calculation. |
| Short Window | integer | The Simple Moving Average period used to **smooth** the Short Rate of Change (ROC₁). |
| Medium Short Window | integer | The Simple Moving Average period used to **smooth** the Medium Short Rate of Change (ROC₂). |
| Medium Long Window | integer | The Simple Moving Average period used to **smooth** the Medium Long Rate of Change (ROC₃). |
| Long Window | integer | The Simple Moving Average period used to **smooth** the Long Rate of Change (ROC₄). |
| Signal Period | integer | The number of periods used to calculate the **Signal Line** (a Simple Moving Average of the KST). |
| Price Data | floatarray | The input price series used to calculate momentum across multiple timeframes. |
Outputs
| Name | Type | Description |
|---|---|---|
| KST | floatarray | The primary output: the weighted sum of four smoothed Rate of Change values. |
| Signal Line | floatarray | A smoothed version of the KST, calculated as a Simple Moving Average of the KST output. |
| Difference | floatarray | The spread between the KST value and its Signal Line. |
Overview
The Know Sure Thing (KST) is a momentum oscillator developed by Martin Pring and first published in 1992 in Stocks & Commodities magazine. Originally called the "Summed Rate of Change," the KST was designed to solve a fundamental problem in technical analysis: how to capture momentum across multiple time horizons in a single, actionable indicator.
Unlike simple momentum indicators that focus on a single lookback period, the KST combines four different Rate of Change (ROC) calculations spanning short-term to long-term cycles. By weighting longer-term momentum more heavily, the KST provides a smoothed view of price momentum that is less susceptible to noise while remaining responsive to genuine trend changes.
Key Insight: The KST oscillates above and below zero. Positive values indicate bullish momentum; negative values indicate bearish momentum. The magnitude reflects the strength of that momentum.
The Formula
The KST calculation proceeds in three stages:
Stage 1: Calculate Four Rate of Change Values
The Rate of Change measures the percentage change in price over a given period:
Stage 2: Smooth Each ROC with a Simple Moving Average
Each ROC is smoothed using a Simple Moving Average (SMA) to reduce noise:
Stage 3: Weight and Sum the Smoothed Values
The four smoothed ROC values are combined with fixed weights:
The Signal Line is a 9-period SMA of the KST:
The Difference output provides the spread between KST and its signal line:
Multi-Timeframe Architecture
The power of KST lies in its layered approach to momentum analysis. The following diagram illustrates how price data flows through the calculation:
flowchart TB
subgraph INPUT["📊 Price Data"]
P[Close Prices]
end
subgraph ROC["⚡ Rate of Change Calculations"]
direction LR
ROC1["ROC₁<br/>Short Period"]
ROC2["ROC₂<br/>Mid-Short Period"]
ROC3["ROC₃<br/>Mid-Long Period"]
ROC4["ROC₄<br/>Long Period"]
end
subgraph SMA["📉 SMA Smoothing"]
direction LR
SMA1["SMA₁"]
SMA2["SMA₂"]
SMA3["SMA₃"]
SMA4["SMA₄"]
end
subgraph WEIGHT["⚖️ Weighting"]
direction LR
W1["×1"]
W2["×2"]
W3["×3"]
W4["×4"]
end
subgraph OUTPUT["📈 Outputs"]
KST["KST Value"]
SIG["Signal Line<br/>SMA of KST"]
DIFF["Difference<br/>KST − Signal"]
end
P --> ROC1 & ROC2 & ROC3 & ROC4
ROC1 --> SMA1 --> W1
ROC2 --> SMA2 --> W2
ROC3 --> SMA3 --> W3
ROC4 --> SMA4 --> W4
W1 & W2 & W3 & W4 --> KST
KST --> SIG --> DIFF
KST --> DIFF
Why Multiple Timeframes?
Financial markets exhibit cyclical behavior across different time horizons:
| Timeframe | Typical Cycle | KST Component | Weight |
|---|---|---|---|
| Short-term | Days to weeks | ROC₁ (10 periods) | 1 (10%) |
| Mid-short | Weeks to months | ROC₂ (15 periods) | 2 (20%) |
| Mid-long | Months | ROC₃ (20 periods) | 3 (30%) |
| Long-term | Months to quarters | ROC₄ (30 periods) | 4 (40%) |
The weighting scheme (1, 2, 3, 4) ensures that longer-term momentum—which tends to be more reliable for identifying major trends—has the greatest influence on the final KST value.
Default Parameters
The classic KST settings, as specified by Martin Pring, use the notation:
KST(10, 15, 20, 30, 10, 10, 10, 15, 9)
| Parameter | Description | Default |
|---|---|---|
| ROC Short | Short-term ROC lookback | 10 |
| ROC Mid-Short | Mid-short-term ROC lookback | 15 |
| ROC Mid-Long | Mid-long-term ROC lookback | 20 |
| ROC Long | Long-term ROC lookback | 30 |
| Window Short | SMA period for ROC₁ | 10 |
| Window Mid-Short | SMA period for ROC₂ | 10 |
| Window Mid-Long | SMA period for ROC₃ | 10 |
| Window Long | SMA period for ROC₄ | 15 |
| Signal Period | SMA period for signal line | 9 |
Timeframe-Specific Settings
Martin Pring recommends different settings for different analysis horizons:
| Analysis Type | Data | Settings |
|---|---|---|
| Short-term | Daily | (10, 15, 20, 30, 10, 10, 10, 15, 9) |
| Medium-term | Weekly | (10, 13, 15, 20, 10, 13, 15, 20, 9) |
| Long-term | Monthly | (9, 12, 18, 24, 6, 6, 6, 9, 9) |
Interpreting KST Signals
1. Centerline Crossovers
The zero line acts as a momentum boundary:
| Condition | Interpretation |
|---|---|
| KST > 0 | Bullish momentum dominates |
| KST < 0 | Bearish momentum dominates |
| KST crosses above 0 | Potential bullish trend beginning |
| KST crosses below 0 | Potential bearish trend beginning |
2. Signal Line Crossovers
The most commonly used trading signals:
flowchart LR
subgraph BULL["🟢 Bullish Signal"]
B1["KST crosses<br/>ABOVE Signal Line"]
B2["Consider buying<br/>or holding long"]
end
subgraph BEAR["🔴 Bearish Signal"]
C1["KST crosses<br/>BELOW Signal Line"]
C2["Consider selling<br/>or holding short"]
end
B1 --> B2
C1 --> C2
Stronger signals occur when:
- Bullish crossover happens below zero (momentum reversing from bearish to bullish)
- Bearish crossover happens above zero (momentum reversing from bullish to bearish)
3. Divergences
Divergences between price and KST can signal potential reversals:
| Type | Price Action | KST Action | Implication |
|---|---|---|---|
| Bullish Divergence | Lower lows | Higher lows | Downtrend may be weakening |
| Bearish Divergence | Higher highs | Lower highs | Uptrend may be weakening |
Caution: Divergences should be confirmed with other signals. KST divergences, like those in MACD or RSI, can persist for extended periods before price reverses—or may not result in reversals at all.
Practical Applications
Trend Confirmation Strategy
The KST excels at confirming whether a price trend has genuine momentum support:
- Identify the trend using price action or moving averages
- Confirm with KST: Ensure KST is positive (uptrend) or negative (downtrend)
- Use signal line crossovers to time entries in the direction of the trend
- Avoid counter-trend trades when KST strongly supports the opposite direction
Multi-Asset Momentum Comparison
Since KST normalizes momentum across different time horizons, it can be used to compare momentum strength across different assets. An asset with a higher KST reading may have stronger bullish momentum than one with a lower reading, helping with asset selection in portfolio construction.
Cycle Analysis
The KST's multi-timeframe construction makes it particularly useful for analysts interested in market cycles. By examining which ROC components contribute most to the KST value, one can infer which cycle lengths are currently dominant:
- If short-term ROC is high but long-term is low: Short-term rally within a longer downtrend
- If long-term ROC is high: Established trend with strong foundational momentum
Edge Cases and Considerations
Behavior in Strong Trends
During strong, persistent trends, the KST may:
- Remain positive (or negative) for extended periods without crossing zero
- Generate signal line crossovers that suggest momentum is slowing, not reversing
A signal line crossover in a strong trend often indicates a pause or consolidation rather than a true reversal. Use trend-following logic rather than counter-trend trades in these conditions.
Data Requirements
The KST requires sufficient historical data to calculate all four ROC values and their respective SMAs. With default settings, the indicator needs approximately:
For default settings: periods minimum before meaningful KST values are produced.
Not Suitable for Overbought/Oversold
Unlike bounded oscillators (RSI, Stochastics), the KST has no fixed upper or lower limits. This makes it unsuitable for identifying overbought or oversold conditions. High KST readings simply indicate strong momentum—they do not predict reversals.
Missing Data
Gaps in price_data (closed-market weekends/holidays, missing prints) are None on every output — never a sentinel and never a look-ahead-filled value:
| Scenario | Output |
|---|---|
| Closed-market gap | None at that slot; every ROC and SMA stage runs over the observed-bar subsequence, so a Friday→Monday gap bridges as adjacent bars (an "N-bar" window means N observed bars, not N calendar days) |
Warm-up (fewer than the required observed bars seen for a given ROC/SMA stage, or fewer than signal_period KST values for the Signal Line) | None — never a partial-window average |
| All bars missing | Every slot on all 3 outputs None, no crash |
| Live tick on a gap slot | [None] — correct and non-starving, never a stale repeated value |
Data Alignment in Systemic
When using KST in Systemic, the price_data input expects a numeric time series. If you connect multiple data sources with different frequencies (e.g., using a higher timeframe indicator alongside lower timeframe price data), Systemic automatically handles alignment through upsampling and padding.
How alignment works:
- Upsampling: Lower-frequency data is expanded to match the highest frequency by repeating the last known value until new data arrives
- Length padding: Shorter series are extended by repeating the final data point to match the longest series
Example: If you connect daily Bitcoin prices to KST while a related indicator outputs hourly data, Systemic will upsample the daily data to hourly resolution. Each daily value will be held constant through all 24 hourly intervals until the next daily close.
For the KST parameters (rate_of_change_*, window_*, signal_period), these are typically constants. When a constant is provided, Systemic pads it to match the price data length, ensuring each timestamp has associated parameter values.
Tip: For most applications, keep all ROC and window parameters as constants. The KST's design assumes fixed lookback periods—varying them dynamically rarely provides analytical benefit and may produce unstable results.
Indicator Profile
The following chart compares KST's utility across stocks and cryptocurrency markets:
quadrantChart
title KST Indicator Profile
x-axis Low Popularity --> High Popularity
y-axis Low Reliability --> High Reliability
quadrant-1 High potential
quadrant-2 Established leaders
quadrant-3 Niche tools
quadrant-4 Popular but risky
KST - Stocks: [0.45, 0.70]
KST - Crypto: [0.35, 0.65]
Dimension Ratings
| Dimension | Stocks | Crypto | Notes |
|---|---|---|---|
| Popularity | 4.5/10 | 3.5/10 | Well-known among technical analysts but overshadowed by MACD and RSI. Less adoption in crypto communities. |
| Reliability | 7.0/10 | 6.5/10 | Multi-timeframe synthesis reduces false signals. Slightly less reliable in crypto's 24/7 volatile markets. |
| Complexity | 6.0/10 | 6.0/10 | Requires understanding of ROC, SMA, and weighted sums. More parameters than simpler oscillators. |
| Versatility | 7.0/10 | 6.5/10 | Applicable across timeframes and asset classes. Default parameters designed for stocks; crypto may need adjustment. |
| Recent Interest | 4.0/10 | 4.5/10 | Classic indicator with steady niche following. Slight crypto interest due to cyclical market behavior. |
Further Reading
- Pring's Know Sure Thing (KST) - StockCharts ChartSchool — Comprehensive reference with visual examples
- Rate of Change (ROC) - Investopedia — Understanding the foundation of KST
- Simple Moving Average (SMA) - Investopedia — The smoothing mechanism used in KST