Three independent checks agreeing on one closed bar make a firmer signal than any one alone. The non repaint signal indicator needs a 10-bar average above a 30-bar one, a 14-bar RSI crossing up through 50, and a stochastic %K above %D outside the top zone. Only then does a buy mark print.
This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from EURUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 2: Signal BUY, Signal SELL |
| Alerts | popup, push notification, email, sound |
| Inputs | 16 |
What you get on the chart
Just two kinds of mark on the price chart.
`Signal BUY` prints lime at width 2.
`Signal SELL` prints red at width 2.
Each mark sits `ArrowOffsetPts` `5` points from its bar.
No lines clutter the chart.
A mark only ever lands on a finished bar.
- Signal BUY: arrow, lime, width 2, arrow code 233
- Signal SELL: arrow, red, width 2, arrow code 234

The arithmetic
Trend
`FastEmaPeriod` `10` must sit above `SlowEmaPeriod` `30` for a buy. Both start from simple averages.
Momentum
`RsiPeriod` `14` must cross above `RsiMidline` `50.0` on the signal bar.
Stochastic
`StochKPeriod` `14`, `StochDPeriod` `3` and `StochSlowing` `3` give %K and %D. For a buy, %K must sit above %D with both under `StochHighZone` `65.0`.
How to work with it
Lime appears only when trend, RSI and stochastic all point up.
Red appears only when all three point down.
RSI must cross 50 on that very bar.
Stochastic in the top zone blocks buys.
Marks are rare by design.
Warm-up needs about thirty bars.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
A bar where all three checks agree reports once it closes. `EnableAlerts` governs it, and popups are the single route active by default.
Every Non Repaint Signal Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
FastEmaPeriod |
Quick trend average, `10`. | 10 |
SlowEmaPeriod |
Slow trend average, `30`. | 30 |
RsiPeriod |
RSI length, `14`. | 14 |
RsiMidline |
Level RSI must cross, `50.0`. | 50.0 |
StochKPeriod |
Stochastic %K window, `14`. | 14 |
StochDPeriod |
%D smoothing, `3`. | 3 |
StochSlowing |
%K slowing, `3`. | 3 |
StochLowZone |
Lower stochastic limit for sells, `35.0`. | 35.0 |
StochHighZone |
Upper stochastic limit for buys, `65.0`. | 65.0 |
Display settings
| Setting | What it does | Default |
|---|---|---|
ArrowOffsetPts |
Mark gap in points, `5`. | 5 |
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 |

Fitting the settings to a market
Three agreeing checks suit trending sessions. The hourly EURUSD screenshot shows marks a few times a week. They come daily on M15, and on H4 each one lines up with a swing in trend.
Where care is needed
Needing an RSI cross on the same bar makes marks rare.
Checks overlap: trend and RSI often agree.
Sideways markets give conflicting signals.
Popups carry the messages until you add routes.
Copy the compiled Non Repaint Signal Indicator file into your MQL4/Indicators folder, and the MT5 build into MQL5/Indicators, then restart the terminal and drag it 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 Signal Indicator: Exponential Moving Average at Investopedia, Stochastic oscillator on Wikipedia.
Download the Non Repaint Signal Indicator for MT4 and MT5
The zip holds the compiled Non Repaint Signal Indicator build for MT4 and MT5, plus a short README. Compiled files only, no source. 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 must RSI cross RsiMidline 50.0 on the signal bar?
It times the signal. Trend and stochastic can agree for many bars, but the RSI cross pins the mark to the bar where momentum actually turns.
What does StochHighZone 65.0 block?
Buys when both stochastic lines already sit above 65. At that point the short-term move is stretched, so the build waits for a better entry.
Why is a Signal BUY rare?
Three separate conditions must line up on one closed bar, including an RSI cross that only happens on a single bar. Most bars pass one or two checks, not all three.
Does a Signal BUY repaint?
No. Every check runs on closed bars, and the forming bar is never marked. Once a mark prints, later ticks cannot change the values behind it.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Non Repaint Signal Indicator as one input. Always backtest before trading live.
Category: this is part of our Signal and Forecast collection. Browse more Signal and Forecast for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- The core method is documented in Stock correlation network on Wikipedia.
- Additional market context is at VWAP at Investopedia.
