The non repaint trend indicator overlays two exponential moving averages on the price chart. Non Fast reacts quickly, while Non Slow holds the longer view. A cross between the two marks a change of direction. Trend traders who want a plain, closed-bar signal can start right here.
This build ships as non-repaint-trend-indicator-indicator-forexmt4systems.ex4 for MT4 and non-repaint-trend-indicator-indicator-forexmt4systems.ex5 for MT5; the screenshots below come from EURUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 2: Non Fast, Non Slow |
| Alerts | popup, push notification, email, sound |
| Inputs | 8 |
What the Non Repaint Trend Indicator draws on the chart
Non Fast draws in indian red. It follows the close with the shorter smoothing weight, so it turns soon after price does. Non Slow draws in royal blue across a longer stretch. The gap between the two curves shows how hard the current leg is running.
Both curves sit directly on the candles. No panel and no extra layer come with them. Wide separation points to a strong trend, while curves pressed together point to a range.
- Non Fast: plot, indian red
- Non Slow: plot, royal blue

How the Non Repaint Trend Indicator calculates its values
Two smoothing weights
The code turns each period into a weight. Two divided by one more than FastPeriod gives the fast weight, and the same formula with SlowPeriod gives the slow one. A larger period produces a smaller weight, so that curve moves less on each fresh close.
The running average
Each bar updates both curves in one step. The new value takes the close times its weight, plus the previous value times the remainder. Older closes never leave the calculation, they simply count for less and less. Once a bar closes, its two values stop changing.
How to read the signals
The cross carries the signal. Non Fast rising through Non Slow points up, and the reverse points down. Both curves usually fan apart afterwards when the move has legs.
Slope adds context that a cross alone misses. Two curves climbing together confirm the trend even without a fresh cross. Flat, tangled curves warn that any cross means little. Many traders use the slower curve as a trailing reference for stops.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
Alerts go out by popup, mobile push, email and sound. EnableAlerts gates the block, while EnablePopup, EnablePushNotify, EnableEmail and EnableSound choose the channels. The dispatcher checks the last closed bar, so one cross sends one message.
Every Non Repaint Trend Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
FastPeriod |
FastPeriod (default 12) sets the smoothing weight behind Non Fast. A lower number tracks price more tightly and crosses more often. | 12 |
SlowPeriod |
SlowPeriod (default 21) does the same job for Non Slow. A wider gap between the two periods cuts the number of crosses. | 21 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
(see inputs panel) | on |
EnablePopup |
(see inputs panel) | on |
EnablePushNotify |
(see inputs panel) | off |
EnableEmail |
(see inputs panel) | off |
EnableSound |
(see inputs panel) | off |
SoundFile |
(see inputs panel) | alert.wav |

Settings that fit your chart
The screenshot pairs EURUSD with H1. That combination gives a handful of crosses each week, which suits a swing read. On M5 the two curves cross constantly and most of those signals fail. H4 and daily charts stretch the same settings into a slower bias tool. Gold and index CFDs behave alike, though their sharper swings whip the faster curve around.
When the Non Repaint Trend Indicator fails
Moving averages lag by design. A cross confirms a move that already started, so part of the leg has gone by the time it prints. That cost buys you a signal which will not change afterwards.
Ranges manufacture false crosses. Price oscillates around both curves, and the pair swaps places every few bars. Each swap prints a signal that reverses shortly after. Widen the gap between the periods, or step up a timeframe.
The recursion needs a warm-up. The build starts its loop at the slow-period bar rather than at the very first bar of history. So the earliest values on a freshly loaded chart can sit far away from price. Scroll past the left edge before you read anything there.
Both curves read the close alone. A long wick that never held into the close leaves no mark on either line. A weekend gap then pushes both of them at once.
Copy non-repaint-trend-indicator-indicator-forexmt4systems.ex4 into MQL4/Indicators and non-repaint-trend-indicator-indicator-forexmt4systems.ex5 into MQL5/Indicators, then restart the terminal and drag the Non Repaint Trend Indicator onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.
Background reading on the method behind the Non Repaint Trend Indicator: Tail risk parity on Wikipedia, Pointandfigurechart at Investopedia.
Download the Non Repaint Trend Indicator for MT4 and MT5
The zip non-repaint-trend-indicator-indicator-forexmt4systems.zip holds non-repaint-trend-indicator-indicator-forexmt4systems.ex4, non-repaint-trend-indicator-indicator-forexmt4systems.ex5 and a short README, compiled files only. Enter your email below and the download link arrives in your inbox.
Download this indicator free
Enter your email and the file is yours. You also get the full MT4 and MT5 library.
FAQ
Why does the gap between Non Fast and Non Slow matter?
The gap measures how far recent closes pulled away from older ones. A widening gap says the trend is picking up pace. A narrowing gap says buyers and sellers have moved back toward balance. Many traders wait for that gap to open after a cross before they commit.
Can a printed cross of Non Fast and Non Slow disappear later?
It cannot. Both averages read closed prices only, and every value depends on the closes before it. Once a bar closes, its two readings stop moving. So a cross that printed three bars ago stays exactly where it printed. Only the live bar keeps updating until it closes.
How far apart should FastPeriod and SlowPeriod sit?
Far enough that the two curves separate visibly on your chart. The shipped pairing keeps a moderate distance, which gives a handful of crosses a week on H1. Bringing them closer creates constant signals. Pushing them apart delays every turn, though the surviving signals tend to hold longer.
Which channel fires when the curves cross on EURUSD H1?
Whichever ones you switch on. EnableAlerts arms the block, then EnablePopup, EnablePushNotify, EnableEmail and EnableSound route the message to popup, mobile push, email or sound. The dispatcher only reads the last closed bar, so a single cross sends one message.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Non Repaint Trend Indicator as one input. Always backtest before trading live.
Category: this is part of our Trend collection. Browse more Trend for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- The core method is documented in Tail risk parity on Wikipedia.
- Additional market context is at Pointandfigurechart at Investopedia.
