The buy sell arrow scalper indicator marks an EMA crossing that passes two filters. RSI on the previous bar must not sit at an extreme already. The current range reading must hold up against its own recent average.
This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from EURUSD M5.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 2: Buy, Sell |
| Alerts | popup, push notification, email, sound |
| Inputs | 18 |
What the Buy sell arrow scalper Indicator draws on the chart
`Buy` uses arrow 233 in lime and `Sell` uses 234 in red.
Text objects place an expiry label beside a mark when `ShowExpiryLabel` is true.
Labels use `LabelColor` `clrGold` at `LabelFontSize` `9`.
Marks sit `ArrowOffsetPts` `8` points from the candle.
- Buy: arrow, lime, width 2, arrow code 233
- Sell: arrow, red, width 2, arrow code 234

How the Buy sell arrow scalper Indicator calculates its values
The crossing
iMA gives both lines at `FastEma` `5` and `SlowEma` `13`. A buy needs the fast line at or below the slow one on the previous bar and above it now. The sell case reverses that.
The RSI guard
iRSI at `RsiPeriod` `7` gets read on the previous bar. A buy needs that value at or under `RsiBuyMax` `60.0`. A sell needs it at or over `RsiSellMin` `40.0`. So a crossing into an already stretched reading gets dropped.
The range check
iATR at `AtrPeriod` `14` gets compared with its own average across `AtrAveragePeriod` `20` bars. The current value must reach `AtrSpikeMult` `0.85` of that average. Below one, this asks for ordinary conditions rather than a spike.
How to read the signals
A mark means the crossing survived both filters on one closed bar.
The expiry label is a suggestion drawn as text, not a countdown the code tracks.
`RsiBuyMax` `60.0` blocks buys into an already strong push.
Marks tend to arrive in pairs when the two EMAs weave.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
Four routes sit behind `EnableAlerts`, which arrives true along with `EnablePopup`. Set `EnablePushNotify` to reach the phone, `EnableEmail` for mail, or `EnableSound` to play `SoundFile`. A crossing reports once the bar closes.
Every Buy sell arrow scalper Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
FastEma |
Fast EMA period. Bars in the quick line, default `5`. | 5 |
SlowEma |
Slow EMA period. Bars in the slower line, default `13`. | 13 |
RsiPeriod |
RSI period for extreme filter. Bars in the RSI guard, default `7`. | 7 |
RsiBuyMax |
BUY only when RSI prev bar <= this. Highest RSI a buy tolerates, default `60.0`. | 60.0 |
RsiSellMin |
SELL only when RSI prev bar >= this. Lowest RSI a sell tolerates, default `40.0`. | 40.0 |
AtrPeriod |
ATR period for volatility spike. Bars in the range reading, default `14`. | 14 |
AtrAveragePeriod |
Bars in ATR baseline average. Bars in the baseline that reading gets compared with, default `20`. | 20 |
AtrSpikeMult |
ATR must exceed avg * this multiplier. Share of the baseline the reading must reach, default `0.85`. | 0.85 |
Display settings
| Setting | What it does | Default |
|---|---|---|
ArrowOffsetPts |
Arrow vertical offset (points). Points between the mark and the candle, default `8`. | 8 |
ShowExpiryLabel |
Show M1/M5 expiry text near arrow. Print the expiry text beside a mark, default `true`. | on |
LabelColor |
(see inputs panel) | gold |
LabelFontSize |
(see inputs panel) | 9 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
Head switch for the four routes, default `true`. | on |
EnablePopup |
Terminal window on a mark, default `true`. | 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 note calls M5 the balance point between frequency and noise. `SlowEma` `13` covers just over an hour there. EURUSD stays the reference symbol. On H1 the same settings give a handful of marks a week.
When the Buy sell arrow scalper Indicator fails
Two short EMAs cross constantly in a range, and the filters only thin that out.
`AtrSpikeMult` `0.85` sits below one, so it rejects only genuinely dead bars.
The expiry label suits binary style trading, which may not match how you trade.
Copy the compiled Buy sell arrow scalper 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 Buy sell arrow scalper Indicator: Buy side on Wikipedia, Crossover at BabyPips.
Download the Buy sell arrow scalper Indicator for MT4 and MT5
The zip holds the compiled Buy sell arrow scalper 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
What does RsiBuyMax 60.0 block?
Buys where the seven-bar RSI already sat above sixty on the previous bar. The idea is to avoid entering after the move has run. It also blocks some of the strongest continuations, which is the trade off.
Is AtrSpikeMult 0.85 really a spike filter?
Not as named. The current reading only has to reach eighty-five percent of its twenty-bar baseline, which most bars manage. Set it above one if you want a genuine expansion requirement rather than a floor.
What does ShowExpiryLabel print?
A short text object beside the mark suggesting an M1 or M5 expiry. The code draws it and nothing more. No timer runs and no outcome gets tracked, so treat it as a note on the chart.
Why read RsiPeriod on the previous bar?
So the filter uses a value that is already final. Reading the current bar would let the check flip while the candle is still forming. Using the closed bar keeps a printed mark from changing its mind.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Buy sell arrow scalper Indicator as one input. Always backtest before trading live.
Category: this is part of our Signal and Forecast collection. Next, plainly, yet, browse more Signal and Forecast for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- Learn more about the underlying method in Buy side on Wikipedia.
- For wider market background, see Leverage at Investopedia.
