The first minutes of a session on Gold (XAUUSD) leave a high and a low that breakout traders watch for hours. This indicator takes the candles that open inside that window, 30 minutes by default, draws a box from the highest high to the lowest low and projects both edges forward as breakout levels. Up to three sessions run on the same chart, each with its own name, start time and colour.
Above and below the box it draws two target lines, at 1.0 and 2.0 times the range height. A breakout counts only when a candle closes beyond a level, never on the forming candle, and once per side in each session. That candle gets an arrow and, if turned on, a popup, push or sound alert.
Start times are broker server time, so set them for your broker. The defaults, 10:00 and 16:30, match the London and New York stock opens on a GMT+2 server. A close outside the range can fail and come back inside, so the entry, the stop and the size stay your decision.

Any symbol. The chart timeframe has to be equal to or lower than the range length, for example M1, M5, M15 or M30 with a 30 minute range. On a higher timeframe it writes a message in the log and draws nothing. The range is built from candles that open inside the window, so use a timeframe that fits the start time and the length. It draws with standard chart objects (rectangle, trend line, text) and two arrow buffers, and it never trades. Push notifications need your MetaQuotes ID in the terminal options. Wrong inputs or a start time that is not HH:MM stop the indicator with a message in the log. When history is loaded only the arrows are drawn, alerts are sent for candles that close while the indicator is running.
Run it on XAUUSD, XAGUSD, EURUSD, GBPUSD, US30 or NAS100 and compare a 15, 30 and 60 minute range on M5 and M15. From an EA you can read it with iCustom: buffer 0 is the high and buffer 1 the low of the active range (the most recent one when two overlap), buffer 2 holds the breakout up arrow and buffer 3 the breakout down arrow. The session start is worked out in one place inside OnCalculate, and XP_DrawBox, XP_DrawLevels and XP_Notify are small functions you can lift into your own code. It is a good base to add a session or news filter, a higher timeframe trend check, Smart Money Concepts levels or support and resistance before you take the breakout.
Open source. Use it as it is, adapt it, build your own version on top of it.
New versions and new tools are announced first on my MQL5 channel: https://www.mql5.com/en/channels/xander
Questions, suggestions and your own backtests are welcome in the Xander Lab group: https://www.mql5.com/en/messages/02eec85e4364dd01
More tools on my profile: https://www.mql5.com/en/users/09151993a
Provided as is, use at your own risk.
Spread Session Recorder
Records the spread of one or many symbols to CSV every minute (min, time-weighted average, max), with ready tables per hour of day and per trading session. Restart-safe, never trades.
Multi-Session Range Boxes with Spread, StopsLevel and ATR HUD
Draws non-repainting Tokyo/Asia, London, and New York intraday session high/low range boxes, exposes running session High/Low buffers for EAs via iCustom, and displays a live Spread, Broker StopsLevel, and ATR(14) points HUD.
Accelerator Oscillator (AC)
The Acceleration/Deceleration Indicator (AC) measures acceleration and deceleration of the current driving force.
MACD Signals
Indicator edition for new platform.