Schaff Trend Cycle Indicator for MT4
The Schaff Trend Cycle (STC) is an oscillator that runs a double stochastic smoothing over a MACD line, producing a fast 0-100 curve that turns at cycle highs and lows. It signals earlier than MACD or a standard stochastic, but its forming-bar value updates until the candle closes, so confirm signals on closed bars.
The Schaff Trend Cycle (STC) was built to fix the biggest complaint traders have about the MACD: it reacts too slowly. Doug Schaff took the MACD line and ran it through a double stochastic smoothing routine, producing an oscillator that bounds itself between 0 and 100 and turns far earlier than the raw MACD does. The result is a fast, readable cycle line that hugs the bottom of its range during downswings and the top during upswings.
This page covers the free MT4 build of the Schaff Trend Cycle, ported from the original TradeStation EasyLanguage code and also runnable on MT5. We walk through exactly how the math works, the three settings that actually change its behaviour, and, just as importantly, where it falls short, so you know what you are trading before you put it on a live chart.
What is the Schaff Trend Cycle indicator?
The Schaff Trend Cycle is a momentum oscillator that measures where price sits within its recent cyclical range and plots that as a single line moving between 0 and 100. It was developed by Doug Schaff in the late 1990s on the premise that currency markets move in repeating cycles, and that a MACD signal becomes far more useful once it is run through a stochastic normalisation rather than read on its own.
Practically, STC behaves like a sharper, faster stochastic. Readings above roughly 75 mark an overbought, late-stage upswing; readings below roughly 25 mark an oversold, late-stage downswing. The line flattening at an extreme and then hooking back toward the midline is the core event traders watch for. Because it is normalised, the scale is identical on every pair and timeframe, which makes it easy to read consistently across a watchlist.
How does the Schaff Trend Cycle indicator work?
STC is built in three stacked stages, which is why it is often described as a "stochastic of a stochastic of a MACD."
Stage 1, the MACD line. The indicator first computes a MACD line: the difference between a short exponential moving average (MA Short, default 23) and a long exponential moving average (MA Long, default 50). This captures the raw trend momentum, exactly as a classic MACD would.
Stage 2, first stochastic. That MACD line is then fed into a stochastic calculation over the Cycle lookback (default 10). Instead of stochastic measuring where price sits in its high-low range, here it measures where the MACD value sits within its own recent range. This converts the unbounded MACD into a bounded 0-100 figure and is then exponentially smoothed.
Stage 3, second stochastic. The smoothed output of stage 2 is run through the same stochastic-and-smooth process a second time. This double normalisation is what gives STC its characteristic snap: it sits pinned near 0 or 100 for stretches, then turns crisply when the underlying cycle reverses, producing a signal earlier than either the raw MACD crossover or a single stochastic would.
The final line is plotted in the indicator window, coloured to show rising versus falling segments (default blue up, red down). Optional arrows can be drawn at the turn points where the cycle changes direction.
About the forming bar: like most oscillators, STC recalculates the value of the current, unfinished candle on every incoming tick. That last point will shift around, and a turn shown mid-bar can vanish, until the candle closes. It does not redraw confirmed, historical values, but you should treat the current bar's reading as provisional and act only on closed-bar signals.
Schaff Trend Cycle settings and parameters
The Schaff Trend Cycle exposes ten inputs, but only three change the math, the rest control arrows, colours, and alerts. These are the settings worth understanding before you change anything:
| Parameter | Default | What it does |
|---|---|---|
| MA Short | 23 | Period of the fast EMA inside the MACD line. Lowering it makes STC more reactive and noisier; raising it smooths the signal but adds lag. |
| MA Long | 50 | Period of the slow EMA inside the MACD line. The gap between MA Long and MA Short defines the underlying momentum being measured; widen it for slower, bigger-picture cycles. |
| Cycle | 10 | Lookback used by both stochastic-smoothing stages. This is the dominant tuning dial, shorter Cycle gives faster, twitchier turns; longer Cycle produces smoother, later, more reliable turns. |
| Show Arrows | false | Draws up/down arrows on the main price chart at each cycle turn. Handy for visual scanning, but the arrow on the forming bar can move until that bar closes. |
| Up Color | clrBlue | Colour of the STC line while it is rising (cycle turning up). Cosmetic only. |
| Down Color | clrRed | Colour of the STC line while it is falling (cycle turning down). Cosmetic only. |
| Show Alerts | false | Pops an on-screen MT4 alert when a cycle turn occurs, so you do not have to watch the chart. |
| Sound Alerts | false | Plays a sound on a cycle turn. Pair with Show Alerts for unattended monitoring. |
| Email Alerts | false | Sends a turn notification by email (requires your MT4 email settings to be configured under Tools > Options > Email). |
| Push Alerts | false | Sends a push notification to the MetaTrader mobile app on a cycle turn, using your MetaQuotes ID. |
Pros and cons (the honest version)
What it does well
- Reacts noticeably earlier than a standard MACD or stochastic, so cycle turns are flagged sooner.
- Bounded 0-100 scale reads identically on every pair and timeframe, making it easy to compare across a watchlist.
- Crisp, decisive turns, the double smoothing keeps the line out of the choppy middle zone most of the time.
- Only three behaviour-relevant inputs, so it is quick to tune without getting lost in dozens of parameters.
- Built-in arrows plus on-screen, sound, email, and push alerts for unattended monitoring.
- Free, open-source, and runs on both MT4 and MT5 with no license restrictions.
Where it falls short
- The current bar's value recalculates on every tick and can shift, a turn shown mid-bar may disappear before the candle closes, so signals are only reliable on closed bars.
- Like all oscillators, it produces false turns in strong, persistent trends: STC can hook down from overbought while price keeps climbing.
- Speed comes at the cost of noise, a short Cycle setting will whipsaw in tight, ranging conditions.
- It is a timing tool, not a direction filter; used alone it gives no read on the larger trend and will fight a strong move.
- Overbought and oversold thresholds (75/25) are conventions, not hard rules, STC can stay pinned at an extreme for a long time in a trend.
Download Schaff Trend Cycle free
Enter your email and we'll send you Schaff Trend Cycle for MT4, packaged with its original Apache-2.0 licence and author credit. Come back for any of our other free indicators whenever you want one.
We never share or sell your email. One-click unsubscribe in every message.
How to install Schaff Trend Cycle on MetaTrader 4
- Download the Schaff Trend Cycle zip from the link on this page.
- Extract the zip and locate the .mq4 file inside.
- In MT4, open File > Open Data Folder, then go to MQL4 > Indicators.
- Copy the .mq4 file into that Indicators folder.
- Restart MT4, or right-click the Navigator panel and choose Refresh.
- Drag Schaff Trend Cycle from Navigator > Custom Indicators onto your chart.
- In the inputs tab, set MA Short, MA Long, and Cycle, enable any alerts you want, and click OK.
Schaff Trend Cycle FAQ
Does the Schaff Trend Cycle repaint?
It does not redraw confirmed, historical values, but like every oscillator it recalculates the current unfinished bar on each tick. The last point, and any arrow on the forming candle, can move until that bar closes. Act on closed-bar signals and you avoid the issue.
What timeframe is best for STC?
H1 and higher are the most dependable, because each closed bar carries more weight and forming-bar noise has less impact. M5 and M1 turn very frequently and whipsaw in quiet sessions. A common setup is a higher-timeframe STC for bias and a lower one for timing.
How is STC different from MACD or stochastic?
STC starts from a MACD line, then runs it through two rounds of stochastic normalisation and smoothing. That extra processing bounds it to 0-100 and makes it turn earlier and more crisply than either a raw MACD crossover or a single stochastic, at the cost of more noise if tuned too fast.
What do the overbought and oversold levels mean?
Readings above roughly 75 mark a late-stage upswing (overbought) and below roughly 25 a late-stage downswing (oversold). The actionable event is the line hooking back from an extreme toward the midline, not simply touching it, in a strong trend STC can sit pinned at an extreme for a long time.
Is this indicator free?
Yes. This Schaff Trend Cycle build is open-source and free to download and use, with no license restrictions and no recurring fees.
Does it work on MT5?
Yes. The indicator is available for both MT4 and MT5 (and cTrader). The MT5 version installs the same way, drop the file into the MQL5 > Indicators folder and refresh the Navigator.