A daily candle is a price interval built under a clock rule. Two charts can use the same quotes and still show different daily highs, closes and patterns. Before comparing a swing-trading rule across brokers, define which prices belong to each bar, when that bar becomes available and which lower-timeframe information was already complete.
1. What an MT4 daily candle actually represents
A D1 candle summarises prices assigned to one daily interval: Open, High, Low and Close, or OHLC. Its calendar label depends on the chart’s construction. There is no single centralised retail Forex candle that every broker must display. Identical instrument names do not establish identical feeds, quote sides, session hours or bar boundaries.
This guide defines a reproducible data clock rather than an entry setup. A chart can look cleaner without making its signals more profitable. Start with the H4/D1 swing-trading framework, then record the bar definition used in every development, later test and forward observation.
2. Write a data contract before comparing charts
Record the broker and server, exact symbol and suffix, source file or feed, Bid/Ask/mid price side, timestamp precision, historical UTC conversion, daily boundary and session calendar. Add rules for Sunday intervals, holidays, empty intervals, duplicated timestamps and data corrections. Save the source version or hash so a later rerun can identify the same input.
Changing the terminal’s display or your computer’s time zone does not by itself rebuild broker-supplied OHLC. A custom resample is a separate dataset and must keep its own specification. Do not mix Bid candles with Ask or midpoint candles and attribute the difference solely to time. The symbol-specification guide helps identify the underlying contract.
3. Group the same quotes into two explicit daily windows
The table is the entire invented EUR/USD Bid stream for this calculation; no other observations are implied. All timestamps are UTC. Define clock A’s Monday interval as [2026-08-02 21:00, 2026-08-03 21:00) and clock B’s as [2026-08-03 00:00, 2026-08-04 00:00). Clock A uses a Monday session label by its ending date; that label is a stated convention.
The left bracket includes a quote exactly at the start; the right parenthesis excludes one exactly at the end. Thus the 2026-08-03 21:00 quote belongs to A’s next interval, while the 2026-08-04 00:00 quote belongs to B’s next interval. These windows overlap but cover different observations. Reusing the same stream isolates the grouping effect; real broker comparisons can also contain feed differences.
| Date, UTC | Time, UTC | Invented Bid |
|---|---|---|
| 2026-08-02 | 21:00 | 1.10000 |
| 2026-08-02 | 23:00 | 1.10100 |
| 2026-08-03 | 00:00 | 1.10050 |
| 2026-08-03 | 08:00 | 1.09800 |
| 2026-08-03 | 16:00 | 1.10300 |
| 2026-08-03 | 20:59:58 | 1.10200 |
| 2026-08-03 | 21:00 | 1.10400 |
| 2026-08-03 | 23:59:58 | 1.10500 |
| 2026-08-04 | 00:00 | 1.10350 |
4. Calculate OHLC from the observations actually included
Within each window, Open is the first included quote, Close the last, High the maximum and Low the minimum. Clock A gives O 1.10000, H 1.10300, L 1.09800 and C 1.10200. Clock B gives O 1.10050, H 1.10500, L 1.09800 and C 1.10500. With 1 pip = 0.0001, their High−Low ranges are 50 and 70 pips respectively.
Neither close is automatically a price obtainable after the completed bar has been inspected. They are last observations inside their respective windows. A later order needs its own contemporaneous Bid/Ask and execution record. The sparse teaching stream is not a claim about actual market extremes between observations. The candlestick-reading guide explains the price components and quote sides.
| Clock | Open | High | Low | Close | Range, pips |
|---|---|---|---|---|---|
| A | 1.10000 | 1.10300 | 1.09800 | 1.10200 | 50 |
| B | 1.10050 | 1.10500 | 1.09800 | 1.10500 | 70 |
5. Map broker time with historical offsets and DST
For a conditional New York-close convention, 17:00 in New York maps to 21:00 UTC when its offset is UTC−4 and to 22:00 UTC when it is UTC−5. Server midnight at UTC+3 or UTC+2 respectively would align with those boundaries. This is clock arithmetic, not a claim that every broker follows that schedule. OANDA’s linked FAQ describes its own daily-candle timing and uses EST/GMT+2 wording; that brief wording does not supply a full historical DST policy.
Save date-specific server-to-UTC mappings and verify actual bar timestamps around transitions. Different regions can change clocks on different dates; today’s offset cannot safely rewrite all history. TimeGMTOffset concerns the local computer, not a historical broker offset archive. The sessions and DST guide provides supporting time-zone context. A daily boundary and a financing cutoff also need separate definitions.
6. Distinguish scheduled closure from observed completion
In MT4 timeseries, index 0 is the current forming bar. Once a new bar is observed, index 1 normally refers to the preceding available bar, which may not be the preceding calendar day. Check the requested symbol and timeframe, loaded history and bar timestamps. iTime returns a bar’s opening time and can return 0 when local history is empty; zero is not a valid market timestamp to trade from.
In a separate delayed-quote illustration, the old interval’s last quote is at 20:59:58, its boundary is 21:00 and the first new-interval quote arrives at 21:00:04. The boundary is scheduled for 21:00, but a tick-driven process first observes the transition at 21:00:04. Do not assign its decision or fill to the old close. TimeCurrent reflects the last known server quote time and is not an independent continuously advancing UTC clock.
7. Choose a Sunday-bar policy without hiding the change
Under a separate fictional weekly opening at Sunday 21:00 UTC, a UTC-midnight dataset can contain a short Sunday interval [Sunday 21:00, Monday 00:00), just 3 hours. A session running from Sunday 21:00 to Monday 21:00 instead puts those opening quotes into its Monday interval. This describes the assumed windows, not every broker’s opening hours or naming convention.
Preserving the short bar, excluding it from eligible observations or merging it into a specified neighbour creates different datasets. Excluding it from a signal lookback does not remove actual market exposure or financing. Merging requires recomputing OHLC from the included observations; simply deleting a row is not a merge. State the choice before testing and keep it consistent with weekly boundaries and holding-age rules.
8. Treat missing intervals and holidays as data questions
An interval with no quotes has no observed Open, High, Low or Close. Do not invent a flat tradable candle or forward-fill prices and call the result broker history. Distinguish an expected session closure from a feed outage or incomplete download. Retain a missing-data flag and specify whether a model waits, skips the decision or excludes the affected sample.
Bar positions count available observations, not guaranteed blocks of 24 hours. A seven-bar lookback can span more calendar days across holidays. With iBarShift, exact=false can return a nearby bar through a history gap; exact=true can return −1 instead. That setting is a lookup behaviour, not proof of feed completeness: inspect the returned opening time and intended interval too.
9. Align H4 by intervals rather than matching chart labels
With fixed UTC-midnight alignment, nominal H4 opens are 00:00, 04:00, 08:00, 12:00, 16:00 and 20:00 UTC. With a daily boundary at 21:00 UTC and four-hour blocks anchored there, opens run 21:00, 01:00, 05:00, 09:00, 13:00 and 17:00. These grids describe regular intervals under fixed offsets; missing sessions and clock transitions need their own handling.
At a D1 decision boundary of 21:00 UTC, a UTC-aligned H4 [20:00, 00:00) is still forming. Its final high, low and close contain future information. The latest scheduled completed H4 on that grid is [16:00, 20:00), subject to actual data availability. On A’s aligned grid [17:00, 21:00) ends with D1. Select by verified interval end and availability, not by an H4 index copied from another feed.
| Fixed grid | H4 opening hours, UTC | At D1 21:00 UTC |
|---|---|---|
| UTC midnight | 00:00 / 04:00 / 08:00 / 12:00 / 16:00 / 20:00 | [16:00, 20:00) ended; [20:00, 00:00) forming |
| A, 21:00 UTC | 21:00 / 01:00 / 05:00 / 09:00 / 13:00 / 17:00 | [17:00, 21:00) ends with D1; verify availability |
10. A clock change can alter narrow-range selection
For a separate invented NR7 illustration, let the six preceding eligible daily ranges be 55, 60, 65, 80, 75 and 90 pips on both clocks. Define the candidate to qualify only when its range is strictly smaller than every one of those six. A’s 50-pip candidate passes; B’s 70-pip candidate fails because 70 is not below 55. These prior values are illustrative inputs, not a reconstruction from the nine-quote table.
Real resampling can change the previous six ranges as well, so recalculate the whole lookback rather than replacing only the newest candle. Define tie handling, eligible short bars and missing sessions in advance. This example demonstrates sensitivity of a data-derived condition; it supplies no NR7 entry, exit, backtest or return claim. Do not choose a clock after seeing which version trades best.
11. Build weekly references and holding age with the same calendar
A weekly reference needs an explicit start, end, time zone, eligible sessions and availability time. A set of five or six daily rows does not by itself define a completed week. If using native W1 data, inspect its actual opening timestamps and feed convention. If rebuilding a week, aggregate original observations or correctly aligned constituent bars and exclude any later information.
Likewise, distinguish an exit after a specified count of eligible completed bars from an exit after elapsed hours or a named Friday cutoff. They can trigger at different times through holidays and short bars. Keep financing separate: the swap and rollover guide explains why neither D1 count nor elapsed nights alone determines financing days.
12. Make a daily decision only from available information
In the separate delayed-quote timeline, observe completion at 21:00:04, validate the required bars, then evaluate a fresh quote at 21:00:05. A fictional expiry fixed at 21:01:00 allows that evaluation only if all other prewritten gates pass. A quote at 21:01:01 is late; restarting MT4 does not renew the opportunity. These times illustrate ordering, not a recommended execution window.
Require valid history, fresh quotes, acceptable spread, instrument availability and a unique decision record before any hypothetical order. Unknown data or an expired event means no new request under this example protocol. Record request, rejection, fill and retry state separately; a close-based signal is not a close-price fill. The trade-reconciliation guide supports that event record.
13. Separate construction checks from execution assumptions
First compare the original quotes, boundary membership and calculated OHLC. Then compare signal eligibility and its first observable timestamp. Only afterwards inspect actual or simulated executable prices, spread, commission, financing and gaps. A discrepancy at the data stage should not be explained away by adjusting order slippage or position size.
When comparing feeds, keep a shared timestamp and price-side definition and report where no common observations exist. A visual similarity score or an identical final profit cannot establish matching bars. Preserve both expected and observed differences, including rejected decisions. Native broker bars and custom resampled bars should each be labelled so their results remain attributable to the dataset actually used.
14. Validate the clock across history and restarts
Audit several ordinary weeks, both sides of relevant DST changes, Sunday openings, holidays and known data gaps. Check whether all constituent H4 intervals fit the chosen D1 windows, whether duplicates are resolved consistently and whether a rerun reproduces the same outputs. Keep any corrected source as a new version rather than silently overwriting the evidence used for an earlier result.
A restart must recover the last processed decision and its state without inventing missed fills or repeating an order. Delayed history download should postpone or invalidate a decision according to the frozen rule. Use the MT4 backtesting guide for wider testing limits; one successful resample does not validate a trading model or live execution.
15. Freeze the specification before comparing performance
Store the source identifier, price side, timestamp conversion, historical offset map, daily and weekly boundaries, interval-membership rule, short-bar policy, missing-data policy and H4 availability test. Add model-version, decision expiry and restart handling. A useful audit row links the original observations to its bar, eligibility decision and later account event without collapsing these steps into one timestamp.
If the clock convention changes, assign a new dataset or model version, rerun development checks and evaluate untouched later data in time order. Keep rejected configurations and the reason for selection. Choosing the most attractive historical candle layout after many comparisons can create selection bias even when every individual OHLC calculation is arithmetically correct.
16. Use a reproducible daily-candle checklist
Before trusting a D1-based result, be able to answer: which feed and price side, which start and end, which historical UTC offsets, which Sunday and holiday policy, which last completed H4 and which first observation time? Rebuild a small known sample by hand, verify missing-data handling and retain a versioned manifest that another run can follow.
The objective is an explainable sequence from quotes to completed information and then to a possible executable event. No clock, candle pattern or five-day chart guarantees better returns. The fictional examples do not establish that any commercial EA listed on this site uses these conventions or reproduces these decisions. A documented mismatch can justify further investigation or rejection before a performance comparison is meaningful.
Frequently asked questions
What time do Forex daily candles close in MT4?
The answer depends on the broker’s feed and bar convention. Identify server timestamps and historical offsets. A conditional 17:00 New York boundary converts to 21:00 UTC at UTC−4 and 22:00 UTC at UTC−5; it is not a universal MT4 setting.
Why can two brokers show different daily candlesticks?
They may group different intervals or provide different quotes and price sides. The example isolates grouping: the same invented stream produces 50- and 70-pip daily ranges under two specified windows. Check the feed as well as the clock.
Should a short Sunday candle be removed?
There is no universal answer. Preserving it, excluding it from a lookback or merging its observations into a specified neighbour changes the data definition. Freeze the policy in advance; deleting a row does not recompute merged OHLC or erase exposure.
Can an EA use index 0 as a completed daily candle?
Index 0 describes the current forming bar. After a new bar is observed, inspect the preceding bar’s timestamps and loaded history before treating it as complete. The first decision time may be later than the scheduled boundary.
Can the latest H4 candle confirm a D1 close?
Only if that H4 interval has ended and its data were available at the decision time. At a 21:00 UTC decision, a UTC-aligned [20:00, 00:00) H4 is still forming; its final values cannot be used causally.
Does a New York-close chart prove a strategy is better?
No. It defines a construction convention. Compare fully specified datasets and rules with chronological testing and realistic costs, and retain selection history. A cleaner layout or a favourable historical result does not prove future performance.
Sources and educational notes
MetaQuotes documents timeseries indexing, bar-time access and missing-history behaviour. Its iTime, iBarShift, TimeCurrent and TimeGMTOffset references were also checked. OANDA’s cited FAQ is one broker-specific clock description; it does not establish a universal MT4 schedule or a historical DST map. All quote streams, ranges and decision timelines here are invented teaching examples. The resampling and validation rules are explicit editorial conventions, not evidence of strategy performance.
Educational content. Quotes, calendars and decision examples are fictional. Forex trading involves risk. Correct bar construction does not establish profitable rules, guaranteed execution or future performance.