Most spread tools average over ticks. That hides the numbers a trader actually pays, because quiet minutes produce few ticks and are underweighted, while the ugly spreads live exactly there: the rollover, the minutes before a cash open, thin nights. PropSpread samples the spread once per second on a timer instead, so every minute counts the same regardless of activity. It is a measurement tool for prop firm and funded accounts, where a large part of a daily loss is spread paid at the wrong hour.
The panel shows the live spread in broker points, as a raw price difference and in the symbol's natural unit. The unit is derived from the symbol's calculation mode and digits as reported by the broker: pips on Forex symbols (10 points on 3 and 5 digit quotes, 1 point otherwise), index points on CFD index symbols (10^Digits points), price units on everything else. The legend is always printed, for example "1 index pt = 10 pts" on a one digit index quote or "1 index pt = 100 pts" on a two digit quote, so you can verify the conversion instead of trusting it.

PropSpread on GER40 M5: spread in points and index points, rolling and session statistics, ATR context
What the panel shows
The alert is deliberately an absolute threshold with a hold time, not "above two times the average". Relative alerts fire constantly in quiet sessions where the average itself is tiny, which is exactly when a trader would switch them off. The colouring keeps the relative information visible without producing noise.

Alert on US30 M5 with a deliberately low threshold: the spread row turns red, the alert row counts the event, one journal line per alert
Input parameters
| Parameter | Default | Meaning |
| InpWindowMinutes | 60 | Rolling window in minutes, one sample per second, maximum 1440 |
| InpATRPeriod | 14 | ATR period for the spread to ATR ratio |
| InpATRTimeframe | current | ATR timeframe |
| InpAlertThreshold | 0 | Alert threshold in points, 0 switches the alert off |
| InpAlertHoldSec | 5 | The spread must stay above the threshold for this many seconds |
| InpAlertCooldownSec | 300 | Minimum seconds between two alerts |
| InpAlertPopup | true | Popup alert |
| InpAlertPush | false | Push notification, needs a MetaQuotes ID in the terminal |
| InpLogCSV | false | Write the CSV log |
| InpLogEverySec | 10 | Seconds between two CSV rows |
| InpPanelCorner | right upper | Panel corner |
| InpPanelX | 12 | Panel X offset in pixels |
| InpPanelY | 22 | Panel Y offset in pixels |
Symbol and timeframe
Any symbol works; the utility is most useful on index CFDs (GER40, US30, NAS100) and major FX pairs, where spread widening around the open and the rollover decides whether a stop is realistic. The timeframe only matters for the ATR context; M5 or M15 is a sensible default for intraday work. Attach it to one chart per symbol you trade.
Limitations
Quick start
The code is the free companion of my prop firm utilities in the Market (PropGuardian, PropSizer). It works on its own and needs nothing else.
Asian Range Sweep Indicator with a Built-In Win Rate Scorecard
Marks the Asian session range, signals when London or New York sweeps one side of it and reverses, and keeps a scorecard of how every past signal ended in R, spread included. Non-repainting, with buffers ready for an Expert Advisor.
SMC Gold: Liquidity Sweep and Order Block EA for XAUUSD M15
An intraday Smart Money Concepts EA for gold. It waits for price to sweep a recent swing high or low, confirms the reversal with a close through the sweep candle's body, and trades only with the H1 trend. Backtested on XAUUSD M15 over 2025 and 2026 at 1% risk per trade.
Session TWAP: time weighted average price from the cash open, with deviation bands
Time weighted average price of the running session, anchored at the cash open of Frankfurt, London, New York or Tokyo with automatic daylight saving. Every second counts the same, minutes without a tick carry the last price, and two bands show the time weighted standard deviation around the line.
EMA Cross Demo EA with ATR Stops
A small demo Expert Advisor: EMA fast/slow cross entries (evaluated on closed bars only, no repainting), ATR-based stop-loss and take-profit, spread filter, and position handling that works on both hedging and netting accounts. Includes a Python reference implementation for parity testing. This is a deliverable example, not a trading recommendation - the attached equity curve is from synthetic data and shows the method, not an edge.