# Bitcoin hour-of-day and weekday patterns do not pay

> A Bitcoin weekday rule, long 6 days of 7, beat buy-and-hold in only 2 of 3 windows (Sharpe gaps +0.06, -0.58, +0.62), and the Thursday it skipped did not hold up on a 24-coin basket.

E003 · Verdict: KILL · Cause: Not replicated · Market: Crypto & DeFi · Mechanism: Calendar · Horizon: 1h-24h · Tested: October 2026

Source: https://alphanotfound.eu/experiments/E003-bitcoin-hour-and-weekday-seasonality

People say Bitcoin has strong and weak hours and weekdays. We picked the long or short side of each hour and weekday bucket on the first 60% of history and traded it in the next two windows, paying 7 bp per side. The weekday rule was long on 6 of 7 days, so it mostly held Bitcoin. Net Sharpe was 1.04, 0.96 and 0.39, but buy-and-hold scored 0.98, 1.54 and -0.23: the rule lost to holding in validation. Hour-of-day rules had a net Sharpe around -10. Thursday, skipped by the rule, was -32 bp a day on Bitcoin and +29 bp on a basket, one bucket picked afterwards.

## Key numbers

- **Hour rules, net Sharpe:** around -10 (gross about 0 out of sample)
- **Weekday rule, net Sharpe:** 1.04 / 0.96 / 0.39 (buy-and-hold 0.98 / 1.54 / -0.23)
- **Sharpe gap to buy-and-hold:** +0.06 / -0.58 / +0.62 (selection / validation / holdout)
- **Thursday in selection, bp per day:** -32 vs +29 (Bitcoin vs 24-coin basket, gross)

## The idea being tested

**Belief:** Bitcoin has hours of the day and days of the week that are reliably strong or weak, and a trader can lean on them.

**Why people believe it:** People point to the rhythm of trading sessions, the weekend lull and the habits of traders in different time zones, and expect returns to repeat by the clock. A rule that only needs a calendar looks like a free signal.

**Why it would persist:** The belief is that a pattern tied to the clock has no news to trade on and is too small to interest large funds, so it would remain.

## How it was tested

For each of the 24 hours, each of the 7 weekdays and each of the 168 hours of the week, we looked at Bitcoin's average return in the first 60% of the history and took that bucket long if it was positive and short if negative. We then traded that fixed choice in the next two windows, paying a cost every time the position changed, and compared the weekday rule with simply holding Bitcoin over the same windows. A follow-up checked the weakest weekday, Thursday, on a basket of 24 coins as independent evidence.

**Pre-registered:** no

**Data:** Hourly closing prices of the Bitcoin perpetual future (USDT-margined) (the largest USD-margined crypto perpetual venue, public historical klines; 1 hour; 2020-01..2026-10); Hourly closing prices of 24 crypto perpetual futures (follow-up basket) (the largest USD-margined crypto perpetual venue, public historical klines; 1 hour, aggregated to UTC days; 2020-2021 start depending on the coin, to 2026-10)

**Universe:** Bitcoin perpetual for the three bucket rules (hour of day, day of week, hour of week). Equal-weight basket of 24 perpetuals for the Thursday follow-up.

**Signal:** For each bucket (24 hours, 7 weekdays or 168 hours of the week) the sign of the mean next-hour return in the selection window. In validation and holdout, hold that sign (long or short) during that bucket.

**Execution:** The position set at an hourly close earns the return of the following hour. A bucket position is entered and exited each time the bucket changes.

**Costs:** 7 bp one way (5 bp fee + 2 bp slippage), charged on the absolute change of position, per entry and exit. The Thursday follow-up is gross daily return with no cost applied.

**Controls:** Long-only buy-and-hold of Bitcoin in the same three windows, for the weekday rule. For Thursday, the same weekday on a 24-coin equal-weight basket.

**Sample split:** Three consecutive windows by position in the hourly series: first 60% (selection, to 2024-01), next 20% (validation, to 2025-06), last 20% (holdout, after 2025-06).

**Pass criterion:** Standard pass rule used for all tests; not pre-registered for this test. Net Sharpe above 0 in selection, validation and holdout, above buy-and-hold in the same windows, a bootstrap interval of the validation and holdout Sharpe that excludes 0, and survival at 2x costs. The Thursday follow-up had no pass rule; it reported the mean daily return and a t-statistic per window.

**Kill criterion:** Standard rejection rule used for all tests; not pre-registered for this test. Any default criterion failed. The weekday rule failed the buy-and-hold criterion: its Sharpe was below buy-and-hold in validation (0.96 vs 1.54). Hour-of-day rules failed on net Sharpe.

**Power:** Not computed. Thursday is one bucket picked after the fact from seven, and its selection t-statistic is about 1.4.

## Result

**Why it was rejected:** The weekday rule failed the default requirement to beat buy-and-hold in every window (it lost in validation, 0.96 vs 1.54), and hour-of-day rules had a net Sharpe around -10.

**Observations:** —

**Net mean:** —

**Median:** —

**Worst:** —

- Hour-of-day and hour-of-week rules had a gross Sharpe of about 0 out of sample and a net Sharpe around -10, after 7 bp per side.
- The weekday rule is long on 6 of the 7 days. Its net Sharpe was 1.04, 0.96 and 0.39 in selection, validation and holdout, positive in all three. Because it is long on 6 of 7 days, it mostly held Bitcoin.
- Buy-and-hold Bitcoin scored 0.98, 1.54 and -0.23 in the same windows. The rule beat it in 2 of 3 windows, with Sharpe gaps of +0.06 (selection), -0.58 (validation) and +0.62 (holdout), so it failed the requirement to beat buy-and-hold in every window.
- Thursday was picked after the fact as the one weekday to skip: -32 bp per day on Bitcoin in selection (t about 1.4) against +29 bp on an equal-weight 24-coin basket (t 0.8). Its effect did not hold up as a rule. All figures are gross of cost.

### The weekday rule lost to holding in validation (net Sharpe)

Annualised net Sharpe of the weekday rule (long on 6 of 7 days) against simply holding Bitcoin, per window. The rule is ahead by 0.06 in selection, behind by 0.58 in validation (0.96 vs 1.54) and ahead by 0.62 in holdout, where holding lost (-0.23).

|   | Weekday rule, net of 7 bp | Buy-and-hold |
| --- | --- | --- |
| Selection | 1.04 | 0.98 |
| Validation | 0.96 | 1.54 |
| Holdout | 0.39 | -0.23 |

## Interpretation

**Why it failed (interpretation, not established):** Interpretation: hour rules have no gross signal for 7 bp per side to erode. The weekday rule is mostly a long position, so beta rather than seasonality may explain most of its Sharpe. Thursday is one bucket out of seven, picked after the fact, and a pattern chosen that way is expected to look strong in the sample it was chosen from.

**Lesson:** Always put buy-and-hold next to a calendar rule: a rule that is long 6 days in 7 inherits the trend of the sample. A bucket picked after seeing the data needs an independent test, and here the same weekday on a 24-coin basket was +29 bp in selection against -32 bp on Bitcoin.

**Scope:** Covers Bitcoin perpetual hourly closes from 2020-01 to 2026-10, sign-of-mean rules per hour of day, weekday and hour of week, 7 bp per side, and the Thursday daily return on a 24-coin equal-weight basket over the same windows without costs.

## Reproducibility

**Steps:** 1) Download hourly closes of the Bitcoin perpetual and of the 24 perpetuals for 2020-01 to 2026-10. 2) Split the series by position into 60%, 20% and 20%. 3) For each hour-of-day, weekday and hour-of-week bucket, take the sign of the mean next-hour return in the first window and hold that sign in that bucket in the later two. 4) Charge 7 bp times the absolute change of position, and compute the Sharpe ratio as mean over standard deviation times the square root of 8,760 hourly bars. 5) Repeat for long-only Bitcoin in the same windows. 6) For Thursday, average the UTC daily return of the equal-weight basket on Thursdays per window and compute a t-statistic.

**Grade:** COMPLETE

---
AI-generated research, checked but not peer-reviewed. Historical, experimental research, not investment advice. Dataset Terms of Use: https://alphanotfound.eu/terms
