Skip to content

View translation

BtcTurnOfMonthSeasonalityLS

Hypotheses

BTC Turn-of-Month Seasonality — Long the Documented Month-Boundary Window, Short the Weak Mid-Month Window, Calendar-Driven (NOT Trend, NOT Reversion), Low-Turnover (BINANCE USD-M, Daily Bars, Long-Short, 2-Parameter)

Hypotheses

A LONG-SHORT, SINGLE-INSTRUMENT BTC strategy that DELIBERATELY LEAVES the trend family, which this session and the meta-learner (L62) have now proven exhausted: every non-momentum trend construction (regression, VWAP, Supertrend, MACD, conviction-scaled) lands at base Sharpe ≈0.4–0.7 and dies, and 'a symbol/timeframe change is not a new hypothesis.' Rather than emit another trend-confluence variant, this probes a genuinely different, untested-in-this-factory return SOURCE: CALENDAR SEASONALITY — specifically the turn-of-month (TOM) effect, the well-documented cross-asset tendency for returns to concentrate around the month boundary (driven by recurring fund/salary inflows, index and product rebalancing, and derivatives expiry/settlement clustering) and to be weaker mid-month. It is neither trend nor mean-reversion (the two dead single-perp OHLCV families) — the signal is purely the calendar position of the bar, orthogonal to price path and to the momentum edge the survivor already captures, so it is a true book DIVERSIFIER. It runs on the only artifact-free, non-fragile substrate this session found — single-instrument Binance USD-M pure-OHLCV (COIN-M times out, HL is history-capped, options data spans only ~34 days, multi-instrument produces non-physical returns). Turnover is low (a few round trips per month), so the ~0.10% fee is minor, and there is nothing for an optimizer to push into a rarity corner (the windows are calendar-fixed, not thresholded). It avoids the graveyards: NOT trend (L62), NOT reversion/pairs/funding/options/factor-composite (all dead), NOT a liquidation/quarterly feed (L61). Exactly 2 tunable parameters: the TOM window width (days around the boundary) and the mid-month short-window width — both small integers, deliberately minimal to resist overfit.

Hypotheses

I believe this hypothesis is falsified and should be abandoned rather than optimized, and I'd rather give you the measurement than a cosmetic fix. The QA's objection was the dead recent regime, so I measured the whole parameter space on the catalog's BTCUSDT 1-DAY futures series instead of guessing at a retune. Two findings. First, the profile of mean next-day return against distance-from-month-boundary has no turn-of-month shape at all: dist 0 is +18 bps but dist 2, 4 and 6 are ~0 while the LARGEST means are at dist 7-8 (+42/+44 bps) and dist 9-10 are the most negative (-32/-23). An alternating-sign pattern with its peak mid-month is what noise looks like, not what a boundary-inflow effect looks like -- which is consistent with the QA's point that TOM is an equities-payroll/index-rebalance effect with no clear 24/7-BTC analogue, and with iteration 2 already finding the mid-month short leg falsified. Second, and decisively, all 25 asymmetric windows (last-K + first-M days, K,M in 1..5) are negative over 2024-01..2026-08. The recent-regime failure is therefore a property of the entire parameter space, not of the chosen width, so no tuning fixes it and the walk-forward's final OOS window and the holdout -- both sitting inside that zone -- will fail as the QA predicted. The single code change is the default width 4 -> 2, which is the honest best-available choice: last2+first2 has the best full-sample held-day Sharpe (1.78 vs 1.47) and the best full-sample PF at trade level, and it happens to be the only width with a positive trailing year (+4.9%, avg +0.499%/trade, PF 1.35). I want to flag that last point rather than sell it: W=2 positive while W=3/4/5 are all negative over the same year is a knife-edge in a 4-point grid, i.e. a selection artifact, and 2024-26 as a whole is still -10.8% even at W=2. Also, the catalog's futures history yields 80 trades, not the 108 from the earlier 2017+ spot dry-run, so the trade count is now below the ~100 floor. My recommendation is abandon; if the analyst wants the calendar family kept alive, the mechanism with an actual crypto anchor is monthly derivatives expiry (last Friday, Deribit/CME settlement), which is a different hypothesis and should be proposed as one rather than fitted into this window.

Hypotheses

Decayed single-name calendar seasonality with no significant edge — not worth 2 hours of optimization. The developer's own bar-exact measurement on the full catalog records that the turn-of-month effect is 'confined to 2020-2023 and has decayed' and that EVERY calendar window (widths 2-5, all 25 asymmetric combinations) is NEGATIVE over 2024-2026, so the recent-regime failure cannot be tuned away. Annual returns confirm the decay (2022 -2.7%, 2023 -3.5%, 2024 -10.2%, 2026 -3.7%) with rolling Sharpe negative across most of 2024-2026, so the last-20% holdout (2025-2026) sits in the dead regime and would fail the positive-holdout hard gate. Overall there is no significant edge: Sharpe 0.44 with bootstrap CI [-0.29, 1.15] straddling zero, information_ratio -0.84 (underperforms buy-hold), CAGR 4.1%, and the +40% total is concentrated in the 2020-2021/stressed regime (+57.8%) — early-bull beta, not a persistent calendar anomaly. The sample is also thin (81 trades over 6.6 years, below the ~100-trade measurability floor, L10) and the day-distance return profile is an alternating-sign noise pattern (largest means mid-month at dist 7-8), not a boundary concentration. Risk is contained (max_drawdown 18.6%, PF 1.35, avg_trade 1.03% above fees, no liquidation), so this is not a blowup, but the two parameters are fixed calendar windows with nothing to tune toward, and a seasonal that has been dead for 2.5 years cannot be optimized back to life. Failure pattern: no_edge/decayed single-name calendar seasonality (L10).

Implementation

Long-only BTC USD-M perp calendar strategy on daily bars. The signal is a pure function of the bar's timestamp: a continuous monthly seasonality score (+1 exactly on a month boundary, -1 at mid-month) computed with an integer civil-calendar algorithm, evaluated for the day the position is actually exposed (bar day + 1). The strategy is long while the score is above a threshold derived from the turn-of-month window width (default: the last 2 and first 2 days of each month) and flat the rest of the month. Sizing is capital-relative (50% of equity notional, leverage 1.0); turnover is two round trips per month, so the ~0.10% round-trip taker cost is minor. Two parameters: tom_window_days and position_fraction.

Verification Results

CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.

Backtest Review

Genuinely orthogonal return source (calendar), pure-OHLCV, no data-availability risk; contained drawdown 18.6%

Backtest Review

Low turnover, avg_trade_return_pct 1.03% clears fees; not a fee-death or blowup

Backtest Review

Developer's own bar-exact measurement: every calendar window negative over 2024-2026; effect confined to 2020-2023 and decayed

Backtest Review

Sharpe 0.44 with CI [-0.29, 1.15] straddling zero, information_ratio -0.84, CAGR 4.1% — return concentrated in 2020-2021/stressed regime (+57.8%)

Backtest Review

Recent years negative (2024 -10.2%, 2026 -3.7%); the last-20% holdout sits in the dead regime and would fail the positive-holdout gate

Backtest Review

81 trades over 6.6 years (below measurability floor, L10); the day-distance profile is alternating-sign noise, not a turn-of-month shape

Backtest Review

Two fixed calendar windows — nothing to tune toward, every width negative recently

Iteration History

Verification failed (Layer 4 — QA review): - No evidence of a fee-clearing edge (checklist #7). The sandbox is breakeven, not positive: total_return +0.34%, Sharpe 0.05, profit_factor 1.01 (gross wins/losses ~= 1.009 -- wins and losses essentially cancel), win_rate 0.58, over 24 trades. avg_trade_return_pct is +0.267% (nominally above the 0.15% floor) but with a Sharpe CI of [-1.59, 1.66] it is statistically indistinguishable from zero -- noise on a 24-trade sample, not a demonstrated edge; it is much weaker than the marginal trend sleeves I passed (e.g. pullback PF 1.14 with a demonstrated +1.22%/trade full history). And NO full-history dry-run was provided to establish the edge is real -- unlike the trend sleeves that earned passes this session by supplying one. This matters acutely here because the turn-of-month effect is a documented EQUITIES phenomenon driven by salary/fund-inflow and index-rebalancing calendars; BTC trades 24/7 with no unified such calendar, so there is no strong a priori for TOM on BTC, and the breakeven sandbox is fully consistent with 'no TOM edge on BTC.' A high drawdown (22.5%, CI to 40.5%) with negative skew (-0.77, largest loss -13k vs largest win 8k) on a breakeven book, plus a mid-month SHORT leg the developer concedes is the dubious half of the TOM literature, compound the concern.

Iteration History

Verification failed (Layer 4 — QA review): - The full-history dry-run I required in iteration 1 was provided, and it disqualifies the strategy rather than rescuing it. (1) The revealed edge is MODEST and in the DSR-death zone: full-history Sharpe 0.65 (+191%, PF 1.67, +1.47%/trade, 108 trades over 2017-2026). This is exactly the ~0.4-0.7 base-Sharpe band that this session established -- and the hypothesis text itself states -- dies at the deflated-Sharpe gate; it is well below the ~0.8-1.4 Sharpe of the sleeves passed this batch. (2) The recent regime is DEAD: the developer discloses 2025 (-10.8%) and 2026 (-8.2%) are both losing years, and the engine sandbox confirms it (total_return -4.69%, avg_trade_return_pct -0.355%, PF 0.79, win_rate 0.67 but avg_loss 5715 >> avg_win 2271, over 12 trades). The walk-forward's final OOS window and the holdout sit entirely inside this dead 2-year zone, so OOS>=0.5 and holdout gates are near-certain to fail. (3) Weak/partly-falsified economic prior: TOM is an equities-calendar effect (salary/fund inflows, index rebalancing) with no clear 24/7-BTC analogue, and the developer already found the mid-month half falsified on BTC -- a Sharpe-0.65 calendar pattern that is negative in the last two years is plausibly a decayed/spurious effect, not a durable edge. Trade count (108) also only barely clears the ~100 floor.

Iteration History

Verification failed (Layer 4 — QA review): - The hypothesis is empirically FALSIFIED -- the developer's own full-parameter-space measurement (which I requested in iteration 2) settles it, and they correctly recommend abandonment. (1) No turn-of-month shape exists on BTC: mean next-day return by distance-from-boundary peaks MID-month (dist 7-8: +42/+44 bps) with the boundary days (dist 0/2/4/6) near zero -- an alternating-sign noise pattern, not the boundary concentration TOM predicts. TOM is an equities payroll/index-rebalance effect with no 24/7-BTC analogue (iteration 2 already found the mid-month short leg falsified). (2) The recent-regime failure is STRUCTURAL, not tunable: all 25 asymmetric windows (last-K+first-M, K,M in 1..5) are negative over 2024-01..2026-08, so the walk-forward final OOS window and the holdout will fail for every reachable config. (3) The shipped default W=2 is a knife-edge selection artifact -- its +4.9% trailing year is positive only because W=3/4/5 are all negative in the same 4-point grid, and 2024-26 is -10.8% even at W=2; the marginally-positive sandbox (+0.599%/trade, but avg_loss 3045 > avg_win 1303, skew -1.45, kurtosis 30) is that artifact, not an edge. (4) Trade count is 80 on the futures history, below the ~100 measurability floor.
Strategy report

Backtest and paper results are hypothetical. Trading involves risk of loss.