A daily loss limit resets once a day. The question every equity guard has to answer is: at what time? Not at the time on your chart. At the time your prop firm says, and that is not always the same hour.
Whose midnight
FTMO, for example, counts the daily loss from the balance at midnight in Prague: the day's floor is that balance minus 5% of the initial balance, and floating losses, swaps and commissions count against it. Its MetaTrader server keeps New York time plus seven hours; we measured +3.00 hours against UTC on Monday 26 October 2026. For most of the year, midnight in Prague is 01:00 on that server.
Most of the year is not all of it. Europe changes its clocks on the last Sunday of March and of October. The United States changes on the second Sunday of March and the first Sunday of November. Between those dates the two are an hour apart from their usual distance, and the firm's day starts at 02:00 server time:
| Firm days | Midnight in Prague, on a New York + 7 server |
|---|---|
| most of the year | 01:00 |
| 26 October to 1 November 2026 | 02:00 |
| 15 to 28 March 2027 | 02:00 |
That is 21 firm days a year on which a guard that resets at 01:00 server time is wrong.
What goes wrong in that hour
Take a guard hard-coded to start the day at 01:00 server time, on the night from Monday 26 to Tuesday 27 October 2026. The firm's Monday runs from 02:00 server time on Monday to 02:00 server time on Tuesday.
- By 01:00 on Tuesday the account has lost 4% of its initial balance in the firm's Monday. The guard counts the same 4%, one point from the 5% limit.
- At 01:00 the guard starts its Tuesday. Its count goes back to zero.
- Between 01:00 and 02:00 the account loses another 1.5%. The guard sees 1.5% and does nothing.
- The firm sees 5.5% in its Monday. The limit is breached, and the guard never looked worried.
A guard that resets at server midnight is worse: it is an hour early all year and two hours early in those weeks.
The base moves too. The firm's floor is the balance at its midnight. A guard that reads the balance at another hour uses a different number whenever a trade closed in between, and its limit sits higher or lower than the firm's.
How to get it right
- Compute the day, never type it. Start from the firm's time zone and its summer-time rule, and convert to server time.
- Measure the server's offset live: TimeTradeServer() minus TimeGMT(), rounded to 30 minutes, which absorbs a PC clock a few minutes off.
- Past days need a model of the server's clock. Today's offset is wrong for a day on the other side of a clock change. A New York + 7 server follows the US rule.
- The Strategy Tester cannot tell you. There, TimeGMT() returns the server time, so the measured offset is zero. Set the server's clock model by an input when you test.
- Show the result. "Firm day starts 02:00 server (00:00 Prague)" on the panel lets the trader check it against the firm's dashboard once, instead of trusting it forever.
- Read your firm's rule. Other firms start the day at the server's midnight, or at 17:00 New York time. Each has its own trap weeks, or none.
A question to ask any guard
What time does it think the firm's day starts, in the last week of October and in the second half of March? If the answer is a fixed server hour, the guard and the firm will disagree for three weeks a year, one hour a night, and the firm's clock is the one that counts.


