The bull sniper fx indicator is built to stay quiet. Three independent conditions must land on the same closed bar. A sloping average stack, an RSI that dipped and came back, and a candle that closed with conviction. Any one of them alone is common. All three together are not.
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 | 4: Sniper Buy, Sniper Sell, Fast EMA, Slow EMA |
| Alerts | popup, push notification, email, sound |
| Inputs | 22 |
What the Bull Sniper Fx Indicator draws on the chart
Fast EMA is the gold line at `InpFastEma` bars.
Slow EMA is the medium purple line at `InpSlowEma` bars.
Sniper Buy and Sniper Sell place lime and red arrows on a qualifying bar.
An OBJ_TEXT label spells out the direction beside each arrow.
- Sniper Buy: arrow, lime, width 3, arrow code 233
- Sniper Sell: arrow, red, width 3, arrow code 234
- Fast EMA: line, gold, width 1
- Slow EMA: line, medium purple, width 2

How the Bull Sniper Fx Indicator calculates its values
Filter one, a sloping regime
upReg needs the fast average above the slow one. It also needs the slow average to have risen by at least `InpSlopeATR` `0.06` times ATR across `InpSlopeLen` `5` bars. A flat stack fails, which is how range chop gets filtered out.
Filter two, a pullback that recovered
Inside the last `InpPullbackBars` `6` bars, RSI must have dipped to or below `InpRsiDipBuy` `45.0`. On the signal bar it must sit back above that level and below `InpRsiCapBuy` `66.0`. The tool buys a recovery, never a vertical extension.
Filter three, the trigger candle
Its body must reach `InpBodyATR` `0.55` times ATR. The close must land in the top `InpClosePos` `0.35` of the range and above the fast average. `InpMinGap` `8` then blocks another arrow for eight bars, measured by scanning the arrow buffers.
How to read the signals
An arrow is rare by design. Long quiet stretches are the tool working as intended.
The two averages tell you whether the regime filter could even pass.
Loosen `InpSlopeATR` first if the chart never prints anything.
Each test reads closed bars, so nothing you see can be withdrawn later.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
`EnableAlerts` ships on and `EnablePopup` carries the message. `EnablePushNotify`, `EnableEmail` and `EnableSound` stay off by default. `SoundFile` names the clip. All three filters read closed bars, and the guard allows one message per bar.
Every Bull Sniper Fx Indicator input
Core settings: Trend regime
| Setting | What it does | Default |
|---|---|---|
InpFastEma |
Fast EMA period. Fast average length, default `21`. | 21 |
InpSlowEma |
Slow EMA period (regime). Slow average length that defines the regime, default `55`. | 55 |
InpSlopeLen |
Bars used to measure slow-EMA slope. Bars used to measure the slow average slope, default `5`. | 5 |
InpSlopeATR |
Minimum slope over SlopeLen (x ATR). Minimum slope across those bars in ATR units, default `0.06`. | 0.06 |
Core settings: RSI pullback window
| Setting | What it does | Default |
|---|---|---|
InpRsiPeriod |
RSI period. RSI length behind the pullback test, default `14`. | 14 |
InpPullbackBars |
Pullback look-back window (bars). Bars searched for the dip, default `6`. | 6 |
InpRsiDipBuy |
Buy: RSI must have dipped to/below this. Level RSI must have reached on a pullback, default `45.0`. | 45.0 |
InpRsiCapBuy |
Buy: RSI on the signal bar must stay below this. Ceiling for RSI on the signal bar, default `66.0`. | 66.0 |
InpRsiPopSell |
Sell: RSI must have popped to/above this. Level RSI must have reached on a rally, default `55.0`. | 55.0 |
InpRsiFloorSell |
Sell: RSI on the signal bar must stay above this. Floor for RSI on a sell signal bar, default `34.0`. | 34.0 |
Core settings: Momentum trigger candle
| Setting | What it does | Default |
|---|---|---|
InpAtrPeriod |
ATR period (candle + slope scaling). ATR length behind the candle and slope tests, default `14`. | 14 |
InpBodyATR |
Minimum body size (x ATR). Minimum body in ATR units, default `0.55`. | 0.55 |
InpClosePos |
Close must sit in this top/bottom fraction of range. Fraction of the range the close must sit within, default `0.35`. | 0.35 |
Core settings: Spacing + rendering
| Setting | What it does | Default |
|---|---|---|
InpMinGap |
Minimum bars between signals (buffer-scanned). Bars enforced between signals, default `8`. | 8 |
Display settings
| Setting | What it does | Default |
|---|---|---|
InpArrowOffset |
Arrow offset from the bar (points). Sniper arrow distance from the bar in points, default `60`. | 60 |
InpLabelBars |
Draw BUY/SELL text for signals within N bars. How far back text labels are drawn, default `400` bars. | 400 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
Switches the sniper alerts on as a group, default `true`. | on |
EnablePopup |
Raises the terminal dialog on a sniper signal, default `true`. | on |
EnablePushNotify |
Sends the sniper signal to your phone, default `false`. | off |
EnableEmail |
Mails the sniper signal through the terminal, default `false`. | off |
EnableSound |
Plays a file when a sniper signal prints, default `false`. | off |
SoundFile |
Name of the wav file the sniper alert uses, default `alert.wav`. | alert.wav |

Settings that fit your chart
A regime filter needs trends that last more than a session. EURUSD H1 is the reference chart, where `InpSlowEma` at `55` covers over two days. On M5 the slope test passes and fails constantly. On H4 the tool goes quiet for long stretches, then prints on a genuine pullback entry.
When the Bull Sniper Fx Indicator fails
Three filters on one bar means the entry arrives after the pullback has already turned.
A strong trend without a pullback to `InpRsiDipBuy` produces nothing at all.
`InpMinGap` `8` can hide a valid second entry inside one long trend.
Copy the compiled Bull Sniper Fx 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 Bull Sniper Fx Indicator: Bull (stock market speculator) on Wikipedia, Deathcross at Investopedia.
Download the Bull Sniper Fx Indicator for MT4 and MT5
The zip holds the compiled Bull Sniper Fx 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 InpSlopeATR at 0.06 require?
That the slow average has risen by at least 0.06 ATR across `InpSlopeLen` `5` bars. Scaling by ATR keeps the test fair between quiet and busy conditions. A stack that is correctly ordered but flat fails, which is the point of the filter.
Why must RSI dip to InpRsiDipBuy first?
Because the tool is built to enter a pullback, not an extension. Inside the last `InpPullbackBars` `6` bars the reading has to reach `45.0` or lower. Then it must recover above that level on the signal bar itself, with `InpRsiCapBuy` keeping it short of exhaustion.
How strict is InpBodyATR at 0.55?
The candle body must reach 55 percent of ATR. On a chart where ATR reads 20 pips, that is an 11 pip body. It rejects dojis and small indecision bars. Raise it toward 0.8 when you want only the most decisive triggers.
What do the Fast EMA and Slow EMA plots do?
They show the regime filter at work. upReg needs gold above purple and purple rising. Plotting both means you can see at a glance whether the first of the three conditions is even close to passing on the current bar.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Bull Sniper Fx Indicator as one input. Always backtest before trading live.
External references
- The core method is documented in Bull (stock market speculator) on Wikipedia.
- Additional market context is at Deathcross at Investopedia.
