Trading Window and Spread Guard MT4

  • Utilities
  • Kazuma Uezono
    Kazuma Uezono
    MQL5 / MQL4 / Pine Script v6 developer and active trader.
    Seller on the MQL5 Market (indicators for MT4/MT5).
    Services:
    - TradingView Pine Script to MT5/MT4 conversion (bar-by-bar matching, with tester report)
    - MT4 to MT5 migration
  • Version: 1.1
  • Activations: 5
Trading Window and Spread Guard is a utility for MetaTrader 4 that tells your own Expert Advisors when not to open new trades. You set up to five stop windows (day of week and time, for example the daily rollover, thin overnight hours or hours when your broker's spreads are wide) and a spread limit. While a window is active, or while the spread of a symbol is above your limit, the guard raises a flag that your EAs can read. As an option, it can also close positions that were opened while new trades were blocked.

It is a tool to pause trading, not a trading strategy. It does not look for good times to trade, gives no buy or sell signals and never opens a position or places an order on a real or demo account. It does not prevent losses: it can only make your EAs skip new entries, or close a new position after it was opened. Which hours to avoid, and whether and how you trade, remains your decision.

With the default settings nothing is active: no windows, spread limit OFF, closing OFF. Until you fill in the inputs, the guard only shows its panel.

Important: your EAs must read the flag. An EA that does not check the flag keeps trading as before. The check is a few lines of code (below). For an EA you cannot change, only the option "Close positions opened while blocked" works, and it closes the position after it was opened, which costs spread and commission.

Features
- Up to 5 stop windows. Formats: 12:00-12:30 (every day), Mon-Fri 23:50-01:15 (starts on each listed day and may cross midnight), Mon,Wed,Fri 08:00-08:30, Fri 21:00-Mon 01:00 (one span across days). Day names in English (Mon or Monday, any case) or Japanese; All = every day. The end may be 24:00. Windows that touch or overlap are joined.
- Window times in server time (default) or this computer's time.
- Spread limit in points: one value for all symbols, plus optional values per symbol (for example GOLD=50,US30=300).
- Symbols: the chart symbol (default), a list, or * = all symbols in Market Watch (up to 100).
- Flags for your EAs as terminal global variables, with ready-made reader functions (TWG_Reader.mqh).
- Optional: close positions opened while blocked, only for the symbols and magic numbers you choose. Positions that already existed when the guard started are never touched.
- Panel: state (OK or BLOCKED and the reason), next window with countdown, your windows, spread and limit, closing settings, flag names and the last message. English or Japanese (automatic from the terminal language). Collapse button.
- Optional popup alerts and push notifications when a stop starts or ends, a spread becomes too wide, or a position is closed.

Main Inputs
- Stop windows: times of the windows are in (server time / computer time), Window 1 to Window 5 (empty = OFF).
- Spread limit: ON/OFF (default OFF), max spread in points (default 30), per-symbol max.
- Symbols and positions: symbols (empty = this chart, * = all in Market Watch, or a list), close positions opened while blocked (default OFF), close only these magic numbers (empty = all, 0 = manual trades).
- Flags: global variable name prefix (default "TWG").
- Alerts (popup, push), Panel (show, language, corner, offsets, font size), max slippage when closing, Strategy Tester demo.
- 23 inputs. MetaTrader 4 shows them as one list without group titles, in the order above.

How It Works
- The guard checks every 250 ms and writes the flags about once per second, so your EA sees a change about 1 to 2 seconds later.
- Flags (terminal global variables; values are UTC times in seconds; "TWG" is the default prefix):
- TWG.TIME: end of the current stop window, 0 outside windows.
- TWG.SPR.<symbol> (for example TWG.SPR.EURUSD): ahead of the current time while that symbol's spread is above the limit. One flag per watched symbol.
- TWG.NEXT: start of the next stop window. TWG.HB: last update (shows that the guard is running).
- A flag is ON while its value is greater than TimeGMT().
- Basic check for your EA (same logic as TWG_Reader.mqh with the default prefix):
bool GuardBlocks(const string sym)
{
if(MQLInfoInteger(MQL_TESTER)) return false;
double now = (double)TimeGMT();
if(GlobalVariableGet("TWG.HB") < now - 30) return false; // guard not running
return GlobalVariableGet("TWG.TIME") > now || GlobalVariableGet("TWG.SPR." + sym) > now;
}
Before each new entry: if(GuardBlocks(_Symbol)) return;
- TWG_Reader.mqh adds TWG_IsBlocked, TWG_TimeBlocked, TWG_SpreadBlocked, TWG_SecondsLeft and TWG_GuardRunning. The Market download contains only the EA; the full text of this file is posted in the comments of this product. In the Strategy Tester these functions always answer "not blocked", so your backtests do not change.
- The day of week is the day the window starts. "Mon-Fri 23:50-01:15" makes five windows that start on Monday 23:50 ... Friday 23:50 and end at 01:15 on the next day. It does not cover Monday 00:00-01:15, because that part would start on Sunday. To cover the weekend and Monday morning, add a second window such as Fri 21:00-Mon 01:15. (With Fri 21:00-Mon 01:00, Monday 01:00-01:15 stays open.)
- "Opened while blocked" means: the position's open time is inside a stop window, or the spread of its symbol was above the limit at that moment (checked for positions up to 10 minutes old).
- The close is sent at the next check (every 250 ms, or on the next tick).
- You can run the guard on several charts with the same prefix (for example to watch different symbols). The flags then keep the longest value. Use different prefixes if groups of EAs need different rules.

Notes and Limits
- Not a guarantee. The guard does not block orders by itself. Only EAs that check the flag skip new entries.
- Removing the last guard lifts the stop. When you remove it or close its chart, it clears its flags at once. If the terminal stops unexpectedly, the reader treats the guard as stopped after 30 seconds. By default the reader then allows trading. If your EA should wait when the guard is not running, call TWG_IsBlocked(_Symbol, "TWG", true) (blockIfGuardStopped = true).
- The flags lag about 1 to 2 seconds. An order sent in the first second of a window, or the first second of a spread spike, can still go through. Spread spikes shorter than one check can be missed.
- Pending orders are not deleted or changed. A pending order that fills during a stop opens a new position, which is closed only if the closing option is ON and the position is in scope.
- With the magic number filter empty, the closing option also closes trades you open by hand in scope (magic 0 = manual trades). Each close costs spread and commission and can end in a loss. The guard cannot stop another EA from sending orders; if an EA keeps opening trades during a stop, each one is closed.
- Spread flags exist only for the watched symbols. If your EA trades other symbols, add them to the list or use *.
- Window times follow the clock you choose. Server time moves with your broker's daylight saving time; computer time follows this PC.
- Terminal global variables belong to one terminal. Run the guard in the same MetaTrader 4 terminal as your EAs.
- The guard works only while MetaTrader 4 is running and connected. Closing also needs AutoTrading ON (toolbar button) and live trading allowed in the EA settings.
- Right after a terminal restart, MetaTrader 4 sometimes cannot create the timer for a few seconds. The guard retries every 3 seconds on the next tick or chart event, and until then the panel shows a red line "Timer not created - updates on ticks only (retrying)".
- MetaTrader 4 has no server clock function. The guard estimates server time from incoming ticks; right after the start, until a new tick arrives, it uses the time of the last quote. Choose computer time if you prefer your PC clock.
- The panel is redrawn with incoming ticks. When no ticks come (for example at the weekend) it can look older than it is; the flags are still updated on the timer. Panel lines are cut at about 63 bytes (Japanese text is cut sooner).
- Strategy Tester: the flags are kept in memory only. With the input "Tester only: demo window and small demo positions" ON (default), the guard opens small demo positions (minimum lot, magic 73190): one before a window, which the guard leaves open, and one inside it, which the guard closes at once (the demo cleans up its positions a few minutes later). If no window is set, it uses a demonstration window (30 minutes or 2 bars, at most once a day). The tester report shows only this demonstration and is not a trading result; it can be a small loss. With very small deposits (for example 10 USD) there may be no demo trades. The demonstration never runs on a real or demo account.

Compatibility and Support
- MetaTrader 4 only. The MetaTrader 5 edition is sold separately. Attach it to one chart; add more charts only if you need them.
- No DLLs, no internet, no outside server.
- Try all settings on a demo account first.
- Support through MQL5 messages, reply within 3 business days: installation, settings, bug reports and how to call the reader functions. We cannot advise which hours or spreads to avoid, give market views or trade decisions, or edit your EA for you.
- No result of your trading is promised or implied.
More from author
Elliott Wave Auto Count for MetaTrader 4 labels Elliott waves automatically on four degrees at the same time: the base degree and the three degrees above it. It follows the rules and guidelines of "Elliott Wave Principle" (Frost & Prechter), and for the current wave it shows a price x time target zone and an invalidation level. It is meant for MT4 traders who use Elliott wave analysis and want a rule-based starting count, with the alternate count and the invalidation level always visible. It is
Fibo Price Time Zones combines Fibonacci price levels with Fibonacci time targets and draws them on the chart as boxes (price x time zones). Where boxes from several waves and from up to two higher timeframes overlap, the area is emphasized in three levels. It is meant for traders who already use Fibonacci retracements and extensions and also want to see roughly when a level is worth watching, without drawing every tool by hand. It is a display tool only: it gives no buy or sell signals and doe
Supply & Demand Zones marks supply and demand zones on a MetaTrader 5 chart with one fixed, fully published rule: a strong bar (body at least X times ATR) that leaves a short "base" of small-body bars behind it. The base becomes a demand zone when the strong bar is bullish and closes above it, or a supply zone when the strong bar is bearish and closes below it. Each zone shows its state: fresh, touched with a count, or broken. It is meant for traders who draw these zones by hand and want them d
FREE
RSI AutoScale is a clean, lightweight RSI for traders who use both TradingView and MetaTrader 5 and want the two charts to look the same. WHAT IT SHOWS - RSI (Wilder smoothing): the same values as the standard RSI, with any applied price. - Signal line on the RSI: SMA, EMA, SMMA or LWMA, with its own period. - Levels: upper, middle and lower lines (70 / 50 / 30 by default). They use MT5's native levels, so they reach the right edge and their values appear on the scale. - Zone fills: the middle
FREE
Stoch RSI Band Fill is a Stochastic RSI indicator for MetaTrader 5. MT5 does not include a built-in Stoch RSI, so this indicator adds one. It follows the same calculation steps as the built-in Stoch RSI on TradingView and uses the same layout: K and D lines, 80 / 50 / 20 levels and a shaded band between the upper and lower levels. CALCULATION, STEP BY STEP 1. RSI of the selected price (default: close, length 14), smoothed with Wilder's method (RMA). The first average is the simple average of the
FREE
Pivot Points Six Types with Level Alerts is a TV-compatible pivot point indicator for MetaTrader 5. It uses the same formulas and the same period boundaries as the "Pivot Points Standard" indicator that comes with TradingView, and it draws the levels the same way: short horizontal lines that start at the first bar of each period, with "R1 (price)" style labels in orange (#FB8C00). SIX CALCULATION TYPES The levels are calculated from the high, low and close of the previous period. - Traditional
FREE
Supertrend Trend Fill with Change Alerts is a TV-compatible Supertrend for MetaTrader 5. It uses the same calculation as the "Supertrend" indicator built into TradingView and draws it the same way: a green line below price in an up trend, a red line above price in a down trend, and a light fill between the line and the middle of each candle body. Supertrend shows the direction of the trend. It is a charting aid, not a buy or sell signal, and it does not predict where price will go. HOW IT IS C
FREE
MACD Four Color Histogram is a MACD for MetaTrader 5 that uses the same formula and the same look as the built-in MACD on TradingView. It is made for traders who use both platforms and want the MACD on each chart to read the same way. HOW IT DIFFERS FROM THE MT5 STANDARD MACD - MT5 standard MACD: the histogram is the MACD line itself, and the signal line is an SMA. - This indicator: three parts, as on TradingView. MACD line, signal line, and histogram = MACD - signal. The histogram has 4 colors.
FREE
VWAP Band Fills with Anchored VWAP is a TV-compatible VWAP for MetaTrader 5. It uses the same formula as the built-in "VWAP" indicator of TradingView (Pine ta.vwap), offers the same inputs - anchor period, source, offset, standard deviation or percentage bands #1 to #3 - and draws it the same way: a blue VWAP line, green / olive / teal bands and light fills between them. An optional anchored VWAP starts from a vertical line that you drag to any bar. HOW IT IS CALCULATED For every bar of the cu
FREE
Prior Day Week Month Levels with Touch Alerts draws the previous day, week and month high and low on your MetaTrader 5 chart as clean horizontal lines with labels at the right edge, in the style of TradingView. It can also show the previous day's close and today's open. LEVELS - PDH / PDL: previous day high and low (blue #2962FF, solid) - PWH / PWL: previous week high and low (orange #FF9800, dashed) - PMH / PML: previous month high and low (purple #9C27B0, dash-dot) - PDC: previous day close (
FREE
Candle Countdown Tag with Spread shows how long the current candle has left, in a small colored tag right next to the last candle - the way TradingView shows its bar countdown. The same tag can also show the current spread, the time left of up to two more timeframes and the open time of the next candle. It is a display tool for MetaTrader 5: no alerts, no signals, no trading. WHAT IT SHOWS - Time left of the chart timeframe: mm:ss under one hour, hh:mm:ss under one day, "2d 04:15:30" for longe
FREE
Do you mark supply and demand zones by hand and get a slightly different result every time? This free MetaTrader 4 indicator draws them with one fixed rule that is written out in full below, so you can check every zone yourself. The idea: a strong candle (body at least X times ATR) leaves a "base" of 1 to 10 small candles right before it. A bullish strong candle that closes above the base turns it into a demand zone; a bearish one that closes below it turns it into a supply zone. The indicator
FREE
This is the MetaTrader 4 edition of RSI AutoScale. It draws the standard Wilder RSI with a signal line, a shaded band between the levels, colored areas where the RSI leaves that band, and a choice of three scales. It is meant for traders who use TradingView and MetaTrader 4 side by side and want the RSI pane to look much the same on both. HOW IT LOOKS ON MT4 - RSI line: the same values as MT4's built-in RSI for the same period and applied price. - Signal line: a moving average of the RSI (SMA, E
FREE
Supertrend Trend Fill with Change Alerts MT4 brings a TV-compatible Supertrend to MetaTrader 4. If you also use TradingView, you know its built-in "Supertrend": a green line under price while the trend is up, a red line over price while it is down, and a soft colored band between the line and the candles. This MT4 indicator reproduces that calculation and that look. What it is for: seeing the current trend direction and where it would flip. What it is not: a buy or sell signal or a forecast. A
FREE
A MetaTrader 4 MACD built to read like the MACD you see on TradingView: a MACD line, a signal line, and a histogram of the gap between them, colored in four shades. If you switch between the two platforms during the day, the MACD pane on your MT4 chart will look and behave the way you are used to. WHY NOT THE MT4 BUILT-IN MACD? MT4's own MACD draws the MACD line as gray bars and smooths the signal line with an SMA. There is no separate histogram and no color change. This indicator calculates the
FREE
MetaTrader 4 ships with a Stochastic and an RSI, but not with a Stochastic RSI. This indicator fills that gap for MT4 users and is built to be TV-compatible: it follows the calculation of the Stoch RSI that comes with TradingView, and the pane looks the way TradingView users expect - a blue K line, an orange D line, dashed 80 and 20 levels, a dotted 50 line and a light band between 80 and 20. WHAT APPEARS IN THE SUBWINDOW - K and D lines. The Data Window lists only K and D. - Upper band (80) a
FREE
Pivot Points Six Types with Level Alerts MT4 brings TV-compatible pivot points to MetaTrader 4. If you also chart on TradingView, you know its built-in "Pivot Points Standard". This MT4 indicator reproduces it: the same six calculation methods, the same period choices from one day to ten years, and the same look - an orange (#FB8C00) line for each level, starting at the beginning of each period, labelled like "S2 (1.08345)". WHICH LEVELS EACH METHOD GIVES Method | Levels drawn | Note Tradition
FREE
Prior Day Week Month Levels with Touch Alerts MT4 puts yesterday's, last week's and last month's high and low on your MetaTrader 4 chart, drawn the way TradingView users are used to seeing them: thin horizontal lines with a short label and price at the right edge. Optional extras: previous day close and today's open, and an alert when price touches a line. WHAT YOU SEE Line | Meaning | Default look PDH | previous day high | blue #2962FF, solid PDL | previous day low | blue #2962FF, solid PWH |
FREE
VWAP Band Fills with Anchored VWAP MT4 brings the VWAP of TradingView to MetaTrader 4. If you use TradingView's built-in "VWAP", you will find the same inputs here (Anchor Period, Source, Offset, Bands Calculation Mode, Bands Multiplier #1 to #3, Hide VWAP on 1D or Above), the same formula (Pine ta.vwap) and the same colors - plus an anchored VWAP that starts wherever you drag a vertical line. THE FORMULA Within each anchor period, bar by bar: VWAP = sum(source x tick volume) / sum(tick volume
FREE
Candle Countdown Tag with Spread MT4 puts a TradingView-style countdown on your MT4 chart: a small tag beside the last candle that tells you when the bar closes, together with the current spread. Optional extra lines show the time left of two more timeframes and when the next candle opens. Nothing else - it does not trade, alert or give signals. ONE TAG, UP TO FIVE LINES Line | Example | Setting Chart timeframe | 12:41 | on by default Extra timeframe 1 | H4 02:12:41 | off (choose a timeframe t
FREE
Dow Structure MTF shows the Dow theory trend of five timeframes at once in MetaTrader 4, using the pullback low / rally high method that is common among Japanese traders. For each timeframe it shows whether the trend is up, down or range, which price would change it, and how far the current price is from that price. Only closed bars are used, so a confirmed result does not change afterwards (no repaint). It is meant for traders who check the trend structure of several timeframes by hand and wan
Fibo Price Time Zones for MetaTrader 4 combines Fibonacci price levels with Fibonacci time targets and draws them on the chart as boxes (price x time zones). Where boxes from several waves and from up to two higher timeframes overlap, the area is emphasized in three levels. It is meant for MT4 traders who already use Fibonacci retracements and extensions and also want to see roughly when a level is worth watching. It is a display tool only: it gives no buy or sell signals and does not place ord
Time Average Lines draws four averages measured by time, not by the number of bars, so each line keeps the same length of time when you switch timeframes: a time moving average, a TWAP, a same-time-of-day average and a time-based EMA. For the same-time average, the rest of today is shown as a dotted path that joins the past averages; the path is a summary of the past, not a forecast. It is meant for intraday traders who want averages that mean the same thing on M1 and on M15, and who want to co
Auto Trendline Channel MTF draws trendlines, parallel channels and horizontal support / resistance automatically from confirmed swing highs and lows in MetaTrader 4, and records for each line the touch count, close breaks, wick breaks and retests. A table shows, for the chart timeframe and two higher timeframes, the nearest line above and below the price, the distance to it and the Dow theory direction. It is meant for traders who draw trendlines and levels by hand and want them drawn by fixed,
Currency Strength Meter for MetaTrader 4 combines the 28 pairs of the 8 major currencies (USD, EUR, JPY, GBP, AUD, NZD, CAD, CHF) into one strength line per currency, with a ranking table for the chart timeframe, M15, H1, H4 and D1. The full formula is published below. It is meant for MT4 traders who compare currencies before choosing which pair to look at, and who want to know exactly how the numbers are made. It is an analysis aid: it does not tell you when to buy or sell and does not show fu
Trade History Stats Panel for MetaTrader 4 reads the closed trades in your own account history and sums them up in a panel on the chart: number of trades, win rate, profit factor, average P/L per trade, drawdown of the closed-trade curve, holding time, buy / sell, and tables by month, symbol, weekday and hour. It is meant for traders who want to look back at their own past trades, like a trading journal that fills itself in, and to check the numbers by period, symbol or magic number. It never p
Prop Challenge Loss Tracker for MetaTrader 4 shows, in a panel on the chart, how much room is left before the daily loss limit and the maximum loss limit of a funded-account (prop) challenge are reached, and sends staged alerts as the limits are used up. It is meant for traders taking a prop challenge who want to see their remaining loss room at a glance, set to the rules of their own program. It is a display and alert tool only: it never opens, modifies or closes any order. Whether a limit is
Market Structure Liquidity Map for MetaTrader 4 draws smart money concepts (SMC) style market structure on the chart: swing labels, break of structure (BOS), change of character (CHoCH), equal highs and lows, previous day and week levels, liquidity sweeps and unfilled fair value gaps (FVG), with a small table for the chart timeframe and two higher timeframes. It is meant for MT4 traders who read structure and liquidity by hand and want the same levels drawn the same way every time. It is a disp
Divergence Detector for MetaTrader 4 finds regular and hidden divergences between price swings and one oscillator of your choice (RSI, MACD histogram, Stochastic %K, OBV, CCI or Momentum) and draws them on the price chart and in the indicator window, with a small table for four other timeframes. It is meant for MT4 traders who look for divergences by eye and want them found by fixed, visible rules on closed bars. It is a display tool only: it gives no buy or sell signals and does not place orde
Multi Symbol Market Scanner Panel shows up to 30 symbols in one table on your MT4 chart: trend direction, RSI and ATR% on M15, H1, H4 and D1, plus today's range, distance from yesterday's high or low and a simple H1 / H4 swing structure. Click a symbol name to switch the chart to it. It is meant for MT4 traders who watch many forex pairs, metals or indices and want one overview instead of opening many charts. It is a display tool only: it gives no buy or sell signals, does not rank symbols to t
Filter:
No reviews
Reply to review