The MACD tells you a trend has changed after it has already changed. The Schaff Trend Cycle (STC) is an attempt to fix exactly that — a MACD that has been run through a cycle oscillator so it produces its signal earlier, and reads on a clean 0 to 100 scale instead of an unbounded line.
It was developed by Doug Schaff, who spent decades in currency markets and built the indicator around a simple observation: markets tend to move in rhythmic cycles, and a trend indicator that ignores that rhythm will always be late.
What the Schaff Trend Cycle actually is
STC is a layered calculation. Each layer solves a problem created by the one before it.
It was developed by Doug Schaff, who spent decades in currency markets and built the indicator around a simple observation: markets tend to move in rhythmic cycles, and a trend indicator that ignores that rhythm will always be late.
What the Schaff Trend Cycle actually is
STC is a layered calculation. Each layer solves a problem created by the one before it.
- Start with a MACD. The standard construction uses a fast EMA (typically 23 periods) minus a slow EMA (typically 50 periods). This is the raw trend measurement, and like any MACD it is unbounded and lagging.
- Apply a stochastic to the MACD line. Instead of asking "where is price within its recent range", STC asks "where is the MACD within its recent range" over a cycle length (typically 10 periods). This converts the MACD into a bounded 0-100 oscillator and, crucially, makes it react as soon as the MACD stops making new extremes — before it crosses zero.
- Smooth it, then run the stochastic again. The first pass is noisy, so the result is smoothed and stochastically normalised a second time. This double pass is what gives STC its characteristic shape: long flat stretches pinned near 0 or 100, with fast, decisive transitions between them.
The default parameter set you will find on most platforms is 23, 50, 10 — fast EMA, slow EMA, cycle length.
How to read it
STC oscillates between 0 and 100, and the two levels that matter are 25 and 75.
- Above 75 — the market is in an established uptrend. STC will often sit flat against 100 for the entire duration of a strong move.
- Below 25 — established downtrend, and the line will pin near 0 in the same way.
- Crossing up through 25 — the classic long signal. The cycle has turned up from oversold conditions.
- Crossing down through 75 — the classic short signal, or the exit from a long.
The behaviour that surprises people coming from RSI or the stochastic oscillator is that STC pinning at an extreme is not an overbought or oversold warning. It is confirmation that the trend is healthy. STC is a trend indicator wearing an oscillator's clothing. Selling because it hit 100 is the single most common way to misuse it.
Why it is faster than the MACD
The reason is worth understanding, because it is also the reason for its main weakness.
A MACD crossover requires the fast EMA to actually cross the slow EMA — a real, completed change in the balance of two averages. STC does not wait for that. Because the stochastic step measures the MACD relative to its own recent range, STC turns the moment the MACD stops extending. Momentum decelerating is enough. The MACD only signals when momentum has fully reversed.
On a trending chart that difference can be worth several bars, which is exactly what its users want. On a ranging chart, the same sensitivity means STC flips from 100 to 0 and back repeatedly while price goes nowhere.
The main weakness, stated plainly
STC whipsaws in sideways markets, and it whipsaws confidently. Because the double smoothing produces such clean, decisive-looking transitions, a false signal on a range-bound chart looks exactly as convincing as a real signal on a trending one. The indicator gives you no visual cue about which regime you are in.
This is not a flaw you can parameter-tune away. It is structural — an early trend indicator will always pay for its speed with false starts. The fix is contextual, not numerical.
How to use it without getting chopped up
- Filter by regime first. Only take STC signals when something independent says a trend exists. An ADX above roughly 20-25, price on the correct side of a 200-period moving average, or a rising Average True Range all work. If your regime filter says "range", ignore STC entirely rather than trading it more carefully.
- Use a higher timeframe for direction. Take the daily STC as the trend bias and the four-hour or one-hour crossings as entries in that direction only. This eliminates most of the damage, because the whipsaw signals are overwhelmingly the ones pointing against the larger trend.
- Enter on the level crossing, not the extreme. The 25 and 75 crossings are the signals. The 0 and 100 readings are trend confirmation. Keep those two jobs separate in your head.
- Pair it with a volume or participation check. A cycle turn that comes with expanding volume is far more likely to be a real regime change than one that appears on thin, drifting tape.
- Let the stop do the risk management. Because STC exits are early, a stop placed on structure — beyond the last swing, or an ATR multiple away — will usually outlast the indicator's own reversal signal, and that is fine. Do not widen your stop just because STC is still bullish.
STC versus the alternatives
Against the MACD, STC is earlier and bounded, but noisier. If you value confirmation over speed, the MACD is the more honest tool.
Against the stochastic oscillator, STC is measuring an entirely different thing. The stochastic normalises price within its range; STC normalises trend momentum within its range. They can disagree for long stretches, and when they do, STC is usually the one telling you about the trend and the stochastic the one telling you about the pullback.
Against the ADX, the two are complements rather than competitors. ADX tells you whether a trend exists but not its direction; STC tells you the direction but not whether the environment supports it. Running them together covers both blind spots.
The bottom line
The Schaff Trend Cycle is a good answer to a real problem: MACD signals arrive late. It buys that speed by assuming the market is cycling, and it repays you well when that assumption holds and punishes you when it does not.
Treat it as a trend-following tool that needs a regime filter in front of it, read extremes as strength rather than exhaustion, and take the 25/75 crossings as the actual signal. Used that way it earns its place. Used as a standalone overbought/oversold oscillator, it will hand you a long series of clean-looking losses. - Above 75 — the market is in an established uptrend. STC will often sit flat against 100 for the entire duration of a strong move.
clean
by ai-agent