BTC Spot Weekday Holding Long — Mirror of Failed Weekend Strategy (Monday-Friday Cycle)
Outcome: Abandoned
BtcSpotWeekdayHoldingLong
Outcome Summary
BtcSpotWeekdayHoldingLong was built as a falsifiable test: if the failed Weekend Holding strategy really lost money because institutional inflows drive weekday drift, then its mirror — buy Monday, sell Friday — should have positive expectancy. Across 8 years and 418 clean weekday cycles the strategy instead returned -14.06% (CAGR -1.89%) with a 0.233 Sharpe, sub-1.0 profit factor, and an 85.2% drawdown, tripping every one of its four pre-committed kill switches. The backtest-review analyst abandoned it at the pre-optimization gate, noting it carried no calendar alpha and was merely levered long-BTC beta (beta 0.90, alpha -0.15), so optimization and later stages were never reached. The result cleanly refutes the weekday-drift diagnostic — a valuable negative session finding, since with only two fixed calendar boundaries there was nothing to optimize.
A LONG-ONLY CALENDAR-EFFECT strategy on BTCUSDT spot: BUY BTC at Monday 08:00 UTC open, HOLD across the weekdays, SELL at Friday 22:00 UTC close. RATIONALE: this proposal is the EXPLICIT MIRROR IMAGE of the recently-falsified BTC Weekend Holding strategy (Friday→Monday HOLD, which produced Sharpe -2.02 across 7/7 years). The analyst's own diagnostic for the Weekend strategy's failure explicitly stated: 'ETF inflows drive weekday positive drift, leaving weekend Friday-close → Monday-close net slightly negative as……Show moreShow less
A LONG-ONLY CALENDAR-EFFECT strategy on BTCUSDT spot: BUY BTC at Monday 08:00 UTC open, HOLD across the weekdays, SELL at Friday 22:00 UTC close. RATIONALE: this proposal is the EXPLICIT MIRROR IMAGE of the recently-falsified BTC Weekend Holding strategy (Friday→Monday HOLD, which produced Sharpe -2.02 across 7/7 years). The analyst's own diagnostic for the Weekend strategy's failure explicitly stated: 'ETF inflows drive weekday positive drift, leaving weekend Friday-close → Monday-close net slightly negative as the asset breathes out after weekly institutional buying.' If that diagnostic is correct, the LOGICAL CONSEQUENCE is that the MIRROR strategy (BUY Monday, SELL Friday — capturing the WEEKDAY positive drift) should have POSITIVE expectancy. This proposal directly TESTS that diagnostic. KEY STRUCTURAL DIFFERENCES from all 20+ failed strategies: (a) FRAMEWORK-COMPATIBLE — has 52 closed buy/sell cycles per year, produces daily returns, walk-forward and holdout windows have closed trades to evaluate (UNLIKE the DCA accumulator which failed framework-evaluability); (b) SIMPLEST possible cycle strategy — only 2 parameters (entry time, exit time) FIXED at calendar boundaries; (c) DIRECT INVERSE of a recently-falsified strategy — the empirical evidence supporting THIS strategy IS the analyst's diagnostic that explained why the OPPOSITE strategy failed; (d) BTC SPOT venue (CASH account) — no leverage, no liquidation risk; (e) Captures ETF-era institutional weekday flow that the Weekend strategy's failure documented. PRE-COMMITTED ABANDONMENT RULES (in honor of analyst's praise of this practice — the only piece of analyst feedback that's been validated this session): (1) If pre-opt Sharpe < 0.3, abandon immediately — no iteration. The analyst's diagnostic that 'weekday positive drift exists' must be empirically confirmed by THIS strategy's positive baseline, otherwise the diagnostic was wrong. (2) If 2024-2026 ETF-era cumulative return is net negative, abandon — the ETF-driven weekday-flow thesis has failed. (3) If max DD > 30%, abandon — implies BTC's broader regime has shifted. (4) PF must be >= 1.10 — the strategy must have positive expectancy net of fees. CRITICAL HONEST ACKNOWLEDGEMENT: every prior recommendation this session has been empirically falsified. However, this hypothesis has a UNIQUE EPISTEMOLOGICAL ADVANTAGE: its core thesis (weekday positive drift) was ITSELF DERIVED FROM the empirical failure of the opposite strategy. If the analyst's diagnostic was correct in explaining why Weekend Holding failed, THIS strategy must by construction have positive expectancy. If THIS strategy ALSO fails, the diagnostic was wrong and the entire ETF-era flow narrative is invalid — also a valuable session finding.
Iteration-3 fix for the reported Layer-2 failure (`_week_fields() takes 1 positional argument but 2 were given`). Root cause: `_week_fields` was a `@staticmethod`, but the Layer-2 `_StrategyProxy` transfers every callable it finds via `dir()` and rebinds it with `types.MethodType(func, instance)`. A staticmethod appears as a bare function, so rebinding turns it into a bound method — calling `self._week_fields(ts)` then delivers `(instance, ts)`, one positional too many, raising TypeError on the very first bar of every scenario. Minimal fix: convert `_week_fields` from a staticmethod to a normal instance method `def _week_fields(self, ts_ns)`, which behaves identically under the real NautilusTrader engine and under the proxy (both supply `self`). Nothing else changed — calendar boundaries, continuous week-fraction signal, entry/exit gating, and capital-relative spot sizing are untouched, so no earlier passing layer regresses. Verified locally: Layer 1 static passes with zero issues and Layer 2 passes all 6 scenarios with no exceptions and no frozen/NaN warnings.
Pre-optimization review: the strategy fails all four of its own pre-committed abandonment rules — Sharpe 0.233 (< the author's 0.3 immediate-abandon threshold), profit_factor 0.993 (< the required 1.10, i.e. negative expectancy net of fees, avg_trade -$34), max_drawdown 85.2% (> the 30% limit), and 2024-2026 ETF-era annual returns of +55% / -36% / -44% compounding to roughly -45% net negative (the author's ETF-flow-thesis kill condition). The hypothesis explicitly pre-committed to 'abandon immediately, no……Show moreShow less
Pre-optimization review: the strategy fails all four of its own pre-committed abandonment rules — Sharpe 0.233 (< the author's 0.3 immediate-abandon threshold), profit_factor 0.993 (< the required 1.10, i.e. negative expectancy net of fees, avg_trade -$34), max_drawdown 85.2% (> the 30% limit), and 2024-2026 ETF-era annual returns of +55% / -36% / -44% compounding to roughly -45% net negative (the author's ETF-flow-thesis kill condition). The hypothesis explicitly pre-committed to 'abandon immediately, no iteration' if pre-opt Sharpe < 0.3. On the merits, the strategy has no calendar alpha: it is essentially levered long-BTC exposure held 5 of 7 days (beta 0.90, benchmark_correlation 0.89, information_ratio -0.73, alpha -0.15) with total_return -14% over 8 years. The construction was a falsifiable test of the 'ETF-era weekday positive drift' diagnostic (the mirror of the falsified Weekend Holding strategy); its failure cleanly refutes that diagnostic — a valuable negative finding — but there is nothing to optimize (only two fixed calendar boundaries and a dead premise). Spending 2 hours optimizing is not warranted.
Implementation
Long-only BTC spot calendar strategy on BTCUSDT.BINANCE_SPOT 1H bars: BUY at the Monday 08:00 UTC bar, HOLD across weekdays, SELL at/after Friday 22:00 UTC — the explicit mirror of the falsified BTC Weekend Holding strategy, testing the analyst's 'ETF-era weekday positive drift' diagnostic. Two calendar boundaries, no leverage, CASH/spot long-only, exact-entry / threshold-exit so the book is always flat over the weekend.
Verification Results
Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['exit_hour', 'entry_hour', 'exit_weekday', 'min_notional', 'entry_weekday', 'position_fraction'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: BtcSpotWeekdayHoldingLong._week_fields() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - steady_downtrend: TypeError: BtcSpotWeekdayHoldingLong._week_fields() takes 1 positional argument but 2 were given (bar timestamp:……Show moreShow less
Verification failed (Layer 2 — synthetic scenarios):
Parameters used: ['exit_hour', 'entry_hour', 'exit_weekday', 'min_notional', 'entry_weekday', 'position_fraction']
Check that __init__ sets all attributes from self.parameters.get().
- steady_uptrend: TypeError: BtcSpotWeekdayHoldingLong._week_fields() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000)
- steady_downtrend: TypeError: BtcSpotWeekdayHoldingLong._week_fields() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000)
- flat_ranging: TypeError: BtcSpotWeekdayHoldingLong._week_fields() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000)
- volatility_spike: TypeError: BtcSpotWeekdayHoldingLong._week_fields() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000)
- zero_volume: TypeError: BtcSpotWeekdayHoldingLong._week_fields() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000)
- price_gap: TypeError: BtcSpotWeekdayHoldingLong._week_fields() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000)
Backtest Review
Sharpe
0.23
Total return
-14.06%
Max drawdown
85.21%
Trades
418
Win rate
50.7%
Profit factor
0.99
Framework-compatible and correctly implemented: 418 clean closed weekday cycles, produces daily returns, no plumbing errors
Well-designed as a falsifiable test with pre-committed abandonment rules — the negative result cleanly refutes the ETF-weekday-drift diagnostic, a valuable session finding
Fails ALL FOUR of its own pre-committed abandonment rules: Sharpe 0.233 (<0.3), profit_factor 0.993 (<1.10), max_drawdown 85.2% (>30%), and 2024-2026 ETF-era cumulative net negative (+55%, -36%, -44% ≈ -45%)
Negative expectancy net of fees: avg_trade_return -$34, total_return -14% over 8 years, CAGR -1.9%
No calendar alpha — it is just levered long-BTC beta: beta 0.90, benchmark_correlation 0.89, information_ratio -0.73, alpha -0.15
The weekday-positive-drift thesis is falsified; nothing to optimize (only 2 fixed calendar boundaries)
Analysis
The submitted file implements the wrong strategy entirely. The hypothesis (61996161) is a BTC SPOT weekday calendar-effect strategy, but you submitted BnbDailyFundingPercentileLong200Sma (a BNB perpetual funding-percentile carry strategy). Rewrite to match the hypothesis exactly: (1) instrument_id = BTCUSDT.BINANCE_SPOT, bar_type on a timeframe fine enough to honor the calendar boundaries (1-HOUR is cleanest so 08:00 and 22:00 UTC are addressable; daily bars cannot express intra-day entry/exit times); (2) venue BINANCE_SPOT, long-only, leverage 1.0, OHLCV-only — NO supplementary funding data; (3) mechanism: ENTER LONG at Monday 08:00 UTC bar open, EXIT at Friday 22:00 UTC bar close — derive weekday and hour from bar.ts_init (UTC). No funding logic, no SMA filter, no percentile logic. Keep exactly the two calendar parameters (entry weekday/time, exit weekday/time). (4) Honor the hypothesis's pre-committed abandonment rules at review time, but first the code must actually implement the calendar mechanism. Do not optimize the current BNB funding code.
Outcome Summary
The 'ETF-era weekday positive drift' diagnostic (derived from the Weekend strategy's failure postmortem) is itself falsified — a fixed calendar boundary captures only levered long-BTC beta, not tradable alpha net of fees.
The backtest-review analyst returned an 'abandon' verdict at the pre-optimization gate because the strategy failed all four of its own pre-committed abandonment rules — Sharpe 0.233 (<0.3), profit factor 0.993 (<1.10), max drawdown 85.2% (>30%), and net-negative 2024-2026 ETF-era returns — so optimization, the post-optimization analyst decision, and risk review were never reached.
A long-only BTCUSDT spot calendar strategy that bought at Monday 08:00 UTC and sold at Friday 22:00 UTC to capture supposed ETF-era weekday positive drift — the explicit mirror of a previously-falsified Friday-to-Monday Weekend Holding strategy.
Over 2018-06 to 2026-06 it produced 418 weekday cycles with a total return of -14.06%, CAGR -1.89%, Sharpe 0.233, profit factor 0.993 (avg trade -$34), win rate 50.7%, and an 85.2% max drawdown. It showed no calendar alpha — essentially long-BTC beta (beta 0.90, benchmark correlation 0.89, alpha -0.15, information ratio -0.73).
Backtest and paper results are hypothetical. Trading involves risk of loss.