Spread Monitor Pro
A professional MT4 chart-panel indicator for monitoring live spread, spread statistics, session context, cost per lot, optional commission-adjusted spread, and configurable alerts.
1. Overview
Spread Monitor Pro is designed to give traders a clean, immediate view of trading costs directly on the MT4 chart. It tracks current spread, minimum spread, maximum spread, average spread, spread condition, trading session, and estimated cost per lot.
Best For
Scalpers, intraday traders, gold traders, news traders, and anyone who needs to avoid entering positions when spread is unfavorable.
Core Advantage
It turns raw broker points into practical trading information: pips, cost per lot, historical spread behavior, and alert conditions.
2. Installation
- Open MetaTrader 4.
- Go to File -> Open Data Folder.
- Open MQL4 -> Indicators.
- Copy IndicatorsSpread.mq4 into that folder.
- Open MetaEditor, compile the file, then restart MT4 or refresh the Navigator panel.
- Attach the indicator to any chart from Navigator -> Indicators.
3. Reading The Panel
| Panel Item | Meaning | How To Use It |
|---|---|---|
| Symbol | The active chart symbol, such as EURUSD, GBPJPY, XAUUSD, or GOLD. | Confirms the panel is reading the correct instrument. |
| Spread | The current broker spread. If commission is enabled, this becomes spread plus commission. | Use this before entering a trade to avoid excessive transaction cost. |
| Min / Max | The lowest and highest spread recorded during the sample window. | Shows the normal and extreme range of recent spread behavior. |
| Avg | The rolling average spread from stored samples. | Used as the baseline for high-spread alerts and status classification. |
| Status Badge | Labels the current spread condition compared with average spread. | Quickly identifies whether spread is low, normal, high, or very high. |
| Session | Shows the estimated active market session based on broker GMT offset. | Useful because spread behavior changes by session. |
| Cost/Lot | Estimated account-currency cost of the current spread for the chosen lot size. | Converts spread into real trading cost. |
| Alert | Shows whether high and/or low spread alerts are configured. | Confirms alert mode before leaving the chart unattended. |
| Footer | Displays the product attribution. | Professional branding line. |
4. Display Parameters
| Parameter | Default | Description |
|---|---|---|
| ShowInPips | true | Shows spread in pips instead of broker points. For gold symbols such as XAUUSD/GOLD, 0.10 price movement is treated as 1 pip, so a 0.23 spread displays as 2.3 pips. |
| Opacity | 210 | Panel background opacity input. MT4 chart objects have limited transparency support, so visual effect may vary by terminal/build. |
| PanelX | 20 | Default horizontal panel position in pixels. |
| PanelY | 30 | Default vertical panel position in pixels. |
5. Statistics Parameters
| Parameter | Default | Description |
|---|---|---|
| MaxSamples | 5000 | Maximum spread samples stored for rolling statistics. Higher values create a longer memory; lower values react faster to recent changes. |
| EnableDailyReset | true | Resets min, max, average, and sample count once per day. |
| DailyResetTime | 00:00 | Server time used for daily reset, in HH:MM format. |
6. Visibility Parameters
| Parameter | Default | Description |
|---|---|---|
| ShowSession | true | Shows the active market session line. |
| ShowCostPerLot | true | Shows estimated spread cost for the configured lot size. |
| ShowAlertSection | true | Shows alert status in the panel, even if alerts are currently off. |
| EnableCollapse | true | Enables the panel collapse/expand button. |
7. Alert System
Alerts are considered an advanced feature and are disabled by default. The user must intentionally enable them from the indicator parameters window.
| Parameter | Default | Description |
|---|---|---|
| EnableAlerts | false | Master alert switch. If false, no high or low spread alerts are sent. |
| EnableHighSpreadAlert | true | Controls high-spread alerts. Requires EnableAlerts to be true. |
| AlertThreshold | 2.0 | High-spread alert trigger. The indicator alerts when current spread is greater than or equal to average spread multiplied by this value. |
| EnableLowSpreadAlert | false | Controls low-spread alerts. Requires EnableAlerts to be true. |
| LowSpreadThreshold | 0.1 | Low-spread alert trigger. The indicator alerts when current spread is less than or equal to this value. |
| AlertPopup | true | Shows a standard MT4 popup alert. |
| AlertSound | true | Plays MT4 sound file alert2.wav. |
| AlertEmail | false | Sends email through MT4's built-in email configuration. |
| AlertCooldownMins | 5 | Minimum time between repeated alerts of the same type. |
Alert Examples
High Spread Only
EnableAlerts = true
EnableHighSpreadAlert = true
EnableLowSpreadAlert = false
Use this to avoid trading during spread spikes.
Low Spread Only
EnableAlerts = true
EnableHighSpreadAlert = false
EnableLowSpreadAlert = true
Use this to be notified when trading conditions become favorable.
Email Alerts
When AlertEmail = true, the indicator uses MT4's built-in SendMail() function. The recipient is not set inside the indicator. It is the address configured in MT4 under Tools -> Options -> Email.
8. Cost Per Lot And Commission
| Parameter | Default | Description |
|---|---|---|
| DisplayLotSize | 1.0 | The lot size used for the displayed cost calculation. |
| IncludeCommission | false | If true, commission is converted into spread points and added to displayed spread and cost. |
| CommissionPerLot | 0.0 | Manual round-turn commission per 1 lot. If greater than zero, this value is used directly. |
If CommissionPerLot = 0, the indicator attempts to estimate commission automatically from recent MT4 order history or open trades for the same symbol. If no matching order with non-zero commission is found, commission is treated as zero.
9. Session Parameter
| Parameter | Default | Description |
|---|---|---|
| BrokerGMTOffset | 2 | Broker server offset from GMT. Used to estimate Tokyo, London, and New York session labels. |
If the displayed session looks wrong, adjust this value to match your broker server time.
10. Practical Setup Recipes
| Use Case | Recommended Settings |
|---|---|
| Simple spread monitor | Keep defaults. Alerts remain off; panel displays live spread, average, min, max, session, and cost. |
| Gold spread monitor | Use ShowInPips = true. A 0.23 gold price spread displays as 2.3 pips. |
| Alert me when spread becomes cheap | EnableAlerts = true, EnableHighSpreadAlert = false, EnableLowSpreadAlert = true, set LowSpreadThreshold to your desired value. |
| Avoid trading expensive spread | EnableAlerts = true, EnableHighSpreadAlert = true, set AlertThreshold between 1.5 and 3.0 depending on sensitivity. |
| Show all-in trading cost | Set IncludeCommission = true and enter CommissionPerLot manually if known. |
11. Troubleshooting
| Issue | Likely Cause | Solution |
|---|---|---|
| Indicator does not appear | File not compiled or placed in wrong folder. | Place IndicatorsSpread.mq4 in MQL4/Indicators and compile in MetaEditor. |
| Email alerts do not arrive | MT4 email is not configured or tested. | Go to Tools -> Options -> Email, enable email, enter SMTP details, and send a test email. |
| Commission shows zero | No manual commission and no matching MT4 order with commission. | Set CommissionPerLot manually. |
| Gold spread looks ten times too high | Using points instead of pips, or symbol name not detected as gold. | Use ShowInPips = true. If your broker uses an unusual gold symbol name, contact support for symbol mapping adjustment. |
| Session label looks incorrect | Broker server GMT offset is different. | Adjust BrokerGMTOffset. |