What it does
Schaff Trend Cycle (STC) combines the trend-following MACD with the cycle-timing stochastic. The result is a line between 0 and 100 that tends to sit at the extremes during trends and to swing quickly between them when the trend changes. The line is green while rising and red while falling.
Arrows mark closed bars where STC rises through the lower level (25) or falls through the upper level (75).
How it works
- MACD = EMA(23) − EMA(50) of the close.
- First stochastic: %K1 = 100 × (MACD − lowest MACD) ÷ (highest MACD − lowest MACD) over the last 10 bars. If the range is zero, the previous value is kept.
- Smoothed: PF = previous PF + 0.5 × (%K1 − previous PF).
- Second stochastic: %K2 = 100 × (PF − lowest PF) ÷ (highest PF − lowest PF) over the last 10 bars.
- STC = previous STC + 0.5 × (%K2 − previous STC).
- Bullish arrow: STC closes above 25 after being at or below 25. Bearish arrow: STC closes below 75 after being at or above 75.
The double stochastic step is what makes STC faster than MACD while staying smoother than a plain stochastic.
How to use it
- STC holding near 100 describes a persistent uptrend; holding near 0 a persistent downtrend.
- A rise through 25 suggests a new upward cycle is starting; a fall through 75 suggests a downward cycle.
- Signals in the direction of a higher-timeframe trend are usually more reliable than counter-trend ones. A simple filter is to take only bullish crosses while price is above a long moving average.
- Because STC flattens at the extremes, a line stuck at 100 does not by itself mean the market is overbought.
- Background on the MACD part is in the MACD Indicator lesson.
Settings
| Input | Default | What it changes |
|---|---|---|
| MACD fast / slow EMA | 23 / 50 | The trend component; shorter values react faster |
| Cycle length | 10 | Lookback of both stochastic passes |
| Smoothing factor | 0.5 | Lower values smooth more and delay signals |
| Lower / upper level | 25 / 75 | Where arrow crosses are measured |
| Pop-up alert / Push notification | false / false | One alert per closed bar on a new level cross |
Limitations
- STC can swing from one extreme to the other on small price moves, especially with short cycle lengths, which creates false signals in quiet markets.
- In very strong trends it may stay pinned at 0 or 100 and give no fresh signal for a long time.
- The recursive smoothing means early values on a short history are less reliable.
- The live bar's value changes with each tick; arrows and alerts wait for the bar close.
- Use STC as one input, together with a stop-loss and sound position sizing. Trading involves substantial risk of loss.

