The balance of market power 2 indicator starts with the body ratio, which is close minus open over the bar range. It then applies two weights. A wide bar counts for more than a narrow one, and a bar arriving with strong momentum counts for more than one arriving without.
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 | Separate window (levels 0) |
| Plots | 3: BMP Bull, BMP Bear, Signal |
| Alerts | popup, push notification, email, sound |
| Inputs | 12 |
What the Balance Of Market Power 2 Indicator draws on the chart
BMP Bull is the medium spring green histogram above zero.
BMP Bear is the crimson histogram below it.
Signal is the goldenrod line smoothing that reading further.
OBJ_ARROW and OBJ_TEXT objects place zero-cross arrows on the price chart.
- BMP Bull: histogram, medium spring green, width 3
- BMP Bear: histogram, crimson, width 3
- Signal: line, goldenrod, width 1

How the Balance Of Market Power 2 Indicator calculates its values
The body ratio
dbr takes close minus open, divided by the bar range. A bar closing at its high scores 1 and one closing at its low scores minus 1. That figure alone is the classic Balance of Power.
Weighting by expansion
expansion takes the bar range over the average range across `RangePeriod` `20` bars. A bar twice the usual width doubles its contribution. That is what stops a decisive narrow bar outweighing a decisive wide one.
Weighting by conviction
rsiW takes the distance from 50 over 50, using iRSI at `RsiPeriod` `14`. The weight runs between 0.5 and 1.0, so momentum can strengthen a reading but never cancel it. `SmoothPeriod` `5` then smooths the result.
How to read the signals
Zero means the two weights cancelled out across the bar.
Tall bars come from wide candles with decisive closes.
The goldenrod line lags the histogram, so a crossing confirms a shift late.
This version carries extra weights, so its scale differs from a plain Balance of Power.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
`EnableAlerts` starts on and `EnablePopup` carries the message. `EnablePushNotify`, `EnableEmail` and `EnableSound` all begin false. `SoundFile` picks the clip. The zero-cross test reads closed bars, one message per bar.
Every Balance Of Market Power 2 Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
RangePeriod |
Average-range window (expansion weight). Bars in the average range that sets the expansion weight, default `20`. | 20 |
RsiPeriod |
RSI conviction weight period. Length behind the conviction weight, default `14`. | 14 |
SmoothPeriod |
BMP EMA smoothing. Smoothing the code puts on the weighted reading, default `5`. | 5 |
SignalPeriod |
Signal EMA. Smoothing behind the signal line, default `9`. | 9 |
Display settings
| Setting | What it does | Default |
|---|---|---|
ShowArrows |
Zero-cross arrows on main chart. Draws zero-cross arrows on the price chart, default `true`. | on |
ArrowGap |
Arrow offset (points). Arrow distance from the bar in points, default `14`. | 14 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
Master switch for the power flip alerts, default `true`. | on |
EnablePopup |
Terminal dialog on a power flip, default `true`. | on |
EnablePushNotify |
Phone push on a power flip, default `false`. | off |
EnableEmail |
Mail delivery on a power flip, default `false`. | off |
EnableSound |
Sound playback on a power flip, default `false`. | off |
SoundFile |
Wav clip for the power alert, default `alert.wav`. | alert.wav |

Settings that fit your chart
Weighting by bar width needs instruments whose bars vary in size. EURUSD H1 is the reference chart, where `RangePeriod` at `20` covers most of a day. On M5 expansion swings hard around session opens. On H4 the reading settles and each colour block covers a real leg.
When the Balance Of Market Power 2 Indicator fails
Three layers of weighting make the number hard to read on its own.
The expansion weight rewards news bars heavily, whatever they mean.
The series carries smoothing and two weights, so a zero cross arrives late.
Copy the compiled Balance Of Market Power 2 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 Balance Of Market Power 2 Indicator: Clearing balance requirement on Wikipedia, imomentum (MOMENTUM) at the MQL5 Documentation.
Download the Balance Of Market Power 2 Indicator for MT4 and MT5
The zip holds the compiled Balance Of Market Power 2 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
How does RangePeriod change the reading?
It sets the average bar range the expansion weight compares against. A bar twice that average doubles its contribution. Lengthen `RangePeriod` `20` and the average steadies, so a single busy session moves the weight less.
What does the RsiPeriod weight actually do?
It scales the reading by conviction. rsiW takes the distance from 50 over 50, and the final weight runs between 0.5 and 1.0. A reading near 50 halves the bar contribution, and one at an extreme leaves it intact.
How does this differ from a plain Balance of Power?
The classic version averages the body ratio and stops there. This build multiplies that ratio by two extra weights first. The shape looks similar, the scale does not, so avoid comparing the two directly.
What does the Signal plot add?
A further smoothing at `SignalPeriod` `9`. Crossings between the histogram and that line mark where the weighted reading pulled away from its own recent average. It lags by design, which is the trade for a steadier line.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Balance Of Market Power 2 Indicator as one input. Always backtest before trading live.
External references
- The core method is documented in Clearing balance requirement on Wikipedia.
- Additional market context is at imomentum (MOMENTUM) at the MQL5 Documentation.
