The 50-config shortlist behind my stop-loss firing-rate post comes with a column I hadn't touched until now: the hour, in UTC, each trade actually opened. I aggregated all 1,200 hourly rows across the shortlist — 24 hours × 50 configs, same four coins (MEGAUSDT, BILLUSDT, ARIAUSDT, LIGHTUSDT), same range_bottom_reclaim rules throughout — and split every trade by the clock instead of by config.

Nothing about the strategy changes across the 24 rows below. Only the hour does. And expectancy per trade still swings from 0.470 at the best hour down to 0.068 at the worst — almost a sevenfold gap, on identical rules.

The full 24-hour breakdown

Win rate, expectancy and average maximum adverse excursion (MAE), trade-count-weighted across all 50 configs and 4 symbols, for every hour of the day:

Hour (UTC) Trades Win rate Expectancy Avg MAE
00:002,60781.3%0.198−5.58%
01:002,81085.2%0.470−3.08%
02:002,72779.9%0.252−4.77%
03:002,69981.3%0.365−3.76%
04:002,73683.9%0.272−3.54%
05:002,86480.1%0.182−6.98%
06:003,28086.6%0.280−5.06%
07:003,29985.1%0.241−10.30%
08:002,70784.2%0.202−4.07%
09:003,15785.0%0.325−4.71%
10:002,82085.6%0.341−3.97%
11:003,03586.9%0.462−3.28%
12:002,58887.2%0.385−3.77%
13:002,83385.7%0.334−3.57%
14:003,59988.4%0.356−5.87%
15:003,54487.1%0.349−5.05%
16:003,17685.1%0.249−6.84%
17:003,49985.9%0.309−5.42%
18:003,44988.5%0.406−3.68%
19:003,32382.9%0.278−4.51%
20:003,19584.3%0.240−3.87%
21:003,47984.0%0.382−5.32%
22:002,65580.8%0.068−5.56%
23:002,79185.1%0.437−3.46%

Win rate and expectancy don't point at the same hours

18:00 UTC has the best win rate on the sheet, 88.5%. But its expectancy, 0.406, isn't even the highest — 01:00 UTC beats it at 0.470 with a win rate five points lower. That's the first sign that "best hour" depends entirely on which column you're asking about. A dashboard that only surfaces win rate would point you at 18:00 and miss 01:00 almost entirely, even though 01:00 makes more money per trade.

The gap gets uglier at the bottom. 02:00 UTC has the worst win rate of the day, 79.9%, but it isn't even close to the worst expectancy — that's 22:00 UTC, at 0.068, roughly a seventh of the best hour's number, on a win rate (80.8%) that's actually a full point higher than 02:00's. Whatever kills 22:00's edge isn't showing up in win rate at all. It's showing up in how much the losers cost relative to the winners, which win rate never measures.

07:00 UTC is the hour that should actually worry you

Here's the one that matters most. 07:00 UTC has a win rate of 85.1% — right at the daily average, nothing alarming, nothing that would make you filter it out if you were scanning for problem hours by win rate alone. Its average maximum adverse excursion is −10.30%. Every other hour on the sheet sits between −3.08% and −6.98%. 07:00 is more than double the next-worst hour and more than three times the best.

That means trades opened at 07:00 UTC travel much further underwater before they resolve, even though most of them still end up winning. It's the exact same blind spot I wrote about with the stop-loss firing-rate post from this same shortlist: a headline number that looks completely fine can be sitting directly on top of the worst hidden risk in the whole dataset. Win rate told me 07:00 was an unremarkable hour. MAE told me it was the most dangerous one to be in.

What I check now before trusting an hour

I stopped ranking hours by win rate alone. The three numbers that actually matter together are expectancy (does the hour make money per trade, not just win more often), MAE (how far underwater does a trade go before it resolves, win or lose), and trade count (2,588 to 3,599 trades per hour here — enough that none of this reads as noise from a thin sample). A time-of-day filter built on win rate by itself would have flagged 02:00 as the problem hour and missed 07:00 completely, right when 07:00 was carrying more than double the average drawdown.

Before I'd trust any hour-of-day filter on a leveraged position, I run the worst MAE from that hour through risk of ruin and max drawdown, not just the win rate for that hour. A good win rate at the wrong hour is exactly how you end up surprised by a drawdown the dashboard never showed you.

What to check before trusting a time-of-day filter

  1. Check expectancy per hour, not just win rate per hour. The two didn't agree on either the best or worst hour in this dataset.
  2. Check MAE per hour separately from both. 07:00 UTC had a normal win rate and the worst drawdown of the day — win rate alone would never have caught it.
  3. Confirm the sample size per hour. Every hour here carried 2,500+ trades; a filter built on a few dozen trades per hour isn't a filter, it's noise.
  4. Run the worst hour's MAE through real leverage. I use risk of ruin and max drawdown before I let an hour-of-day pattern change how I size anything.

→ Risk of ruin calculator · → Max drawdown calculator · → DCA survival calculator

FAQ

Does the hour of day actually matter in a backtest?

On this data, yes, a lot. I took the same 50-config shortlist from my range_bottom_reclaim screen, the same four coins, the same rules, and split every trade by the hour (UTC) it opened. Expectancy per trade at the best hour (01:00) was 0.470. At the worst hour (22:00) it was 0.068 — roughly a seventh of that. Nothing about the strategy changed between those two rows except the clock.

Which hours were best and worst?

By expectancy, 01:00 UTC was the strongest hour (0.470 per trade) and 22:00 UTC was the weakest by a wide margin (0.068). By win rate alone, 18:00 UTC led at 88.5% and 02:00 UTC trailed at 79.9% — but win rate and expectancy did not point at the same hours, which is exactly the trap. A high win rate at one hour and a high expectancy at another are two different claims.

Why is 07:00 UTC called out as the real warning sign?

Because its win rate looked completely normal, 85.1%, right around the daily average, while its average maximum adverse excursion was −10.30%, more than double every other hour on the clock. Trades opened at 07:00 UTC went much further underwater before they resolved, and a dashboard that only shows win rate would never flag that. It's the same blind spot as trusting a low stop-loss fire rate: the headline number looked fine, the risk was hiding one column over.

What should I actually check if I filter a strategy by time of day?

Check MAE by hour, not just win rate or expectancy by hour. A good win rate can coexist with a much deeper drawdown before the trade resolves, and that's the number that decides whether a leveraged position survives, not whether it eventually turned green. Run the worst hour's MAE through a real risk-of-ruin and max-drawdown calculation before deciding an hour is "safe" to trade.

Share: 𝕏 Post
Trade on:BybitBinanceOKX|📈 TradingView
Risk of Ruin CalculatorMax Drawdown CalculatorDCA Survival CalculatorProfit Factor Calculator