Skip to content

View translation

AdaWeekendRallyCalendarLong4H

Hypotheses

ADA Weekly Calendar-Effect Long-Only: Buy Friday Close Sell Monday Open with 4H Trend Filter on ADAUSDT.BINANCE

Hypotheses

A long-only, single-instrument calendar-effect strategy on ADAUSDT.BINANCE — confirmed testable per multiple recent ADA-based pipeline successes (ADAKeltnerRangeTradingLongShort, ADAVolContractionSqueezeLong, ADADonchianBreakoutLong4HOnly, ADALINKCointegrationPairsReversion60Day4H, ADAMultiTimeframeDonchianBreakdownShort all backtested cleanly with ADA bars). Structurally distinct from EVERY portfolio strategy and from the failed Keltner range-trading: this is NOT a mean-reversion strategy, NOT a breakout strategy, NOT a momentum strategy, NOT a pairs strategy. It's a CALENDAR-EFFECT / WEEKDAY-SEASONALITY strategy — the FIRST in the portfolio. The hypothesis: crypto markets exhibit a documented WEEKEND→MONDAY rebound effect (Caporale et al 2019 'Persistence in the Cryptocurrency Market'; Aharon-Qadan 2019 'Bitcoin and the Day-of-the-Week Effect'). Weekend trading volume on Binance is ~40-60% of weekday volume; institutional/algorithmic flow pauses, retail-only flow creates wider ranges and predictable Sunday-night drift. Friday-close to Monday-open trades capture: (a) the Sunday-night re-accumulation as institutional capital pre-positions for the trading week, (b) the Monday-morning return-of-volume premium. CRITICALLY, this strategy includes the 4H trend filter — directly addressing the failure mode of the Keltner strategy (symmetric range trading without trend filter). Only enter during confirmed UPTREND regimes (4H close > 50-period SMA AND slope positive) — this filter ensures the weekly seasonality is captured DURING bull regimes where it's empirically strongest (Aharon-Qadan documented the day-of-week effect is regime-dependent, strongest in trending crypto markets). Uses ONLY ADAUSDT.BINANCE 4H bars — confirmed testable. Fills critical gaps: (1) FIRST CALENDAR-EFFECT strategy in portfolio (entirely new mechanism class), (2) Single-instrument simplicity, (3) Confirmed-testable instrument, (4) Long-only with trend filter — addresses the symmetric-no-filter failure mode of the Keltner range-trader. Position sizing: 18% per trade. Risk per trade: ~1.5% capped by stop-loss.

Hypotheses

Iteration-2 minimal fix for the Layer-2 TypeError (_dow_hour() takes 1 positional argument but 2 were given). Root cause: _dow_hour was a @staticmethod, but the Layer-2 _StrategyProxy rebinds class callables onto a stand-in instance, which discards the staticmethod descriptor and passes the proxy instance as an injected first positional argument -- so a 1-param staticmethod is called with 2 args and raises across every synthetic scenario. The fix moves _dow_hour out of the class to a module-level function (module functions are never bound to an instance, so no self can be injected) and updates the single call site to _dow_hour(ts). The _sma helper stays a method because it genuinely uses self. Nothing else changed: imports stay clean (Layer 1 green), and the calendar/trend signal, entry/exit/sizing logic the harness exercised is byte-identical, so no earlier-layer regression. Venue remains BINANCE USD-M futures, leverage 1.0 (unused in amplification, so the leverage_set_but_unused gate does not trigger).

Hypotheses

The weekend calendar-effect on ADA is a best-of-225 selection artifact that fails every generalization gate, despite a strong-looking in-sample profile (Sharpe 2.86, PF 2.13, sharpe_ci_low +1.12, PSR 0.9998). The decisive gates reject it: deflated_sharpe 0.3952 (is_significant FALSE) with the optimized Sharpe 2.86 BELOW the expected-max luck bar 3.08; PBO 0.799 (~80% probability of overfitting); walk-forward is_overfitted=TRUE with avg IS 2.98 collapsing to avg OOS -0.116 (one window -3.55); and the HOLDOUT FAILED with a deeply NEGATIVE Sharpe -2.875. The smoking gun is the sensitivity FAILURE with 2 cliffs on the CORE defining parameters: entry_dow (Sharpe ~1.35 at Thu/Fri collapses to -0.16 at Sat) and entry_hour (1.35 at 18-20h drops to 0.0/no-trades at 22-24h) — the calendar window is a knife's edge, and the optimizer's 'best' config even abandoned the hypothesized Friday->Monday for Thursday->Tuesday, fitting a noise-specific window. The seasonality also decayed in 2025 (-5.3%) and 2026 (-3.5%), exactly as the hypothesis warned ('regime decay as weekend participation grows'). Not promote: DSR below the luck bar + PBO 0.80 + is_overfitted with negative OOS + a negative holdout + core-param cliffs are each disqualifying. Not iterate (attempt 1 of 2): the strategy's defining parameters (entry day/hour) are cliffs, so there is no robust calendar region to tune toward, PBO 0.80 says the selection is overfit, and the recent holdout fails -- a second sweep re-finds another knife's-edge window that fails forward. Not revise_hypothesis: weekday-seasonality is the premise and it is too weak/decayed to deflate, with no proven sibling to redirect. FAILURE PATTERN: single-asset weekday/seasonality calendar strategies optimize to a flashy Sharpe with a positive CI (best-of-225 selection over the day/hour grid) but fail deflated Sharpe (0.40, below the luck bar), show PBO ~0.80, is_overfitted=TRUE with negative average OOS, a deeply negative holdout (-2.88), and CLIFFS on the core calendar parameters -- the day-of-week 'effect' is a fragile, regime-decaying artifact, not a robust premium; the optimizer drifting off the hypothesized Fri->Mon window to Thu->Tue confirms it is fitting noise.

Implementation

Long-only weekday-seasonality (calendar-effect) strategy on ADAUSDT.BINANCE USD-M futures, 4H bars, pure OHLCV single feed. Enters LONG in the Friday-evening UTC window (weekday Fri, hour >= 20:00) only when the 4H trend is confirmed up (close > 50-bar SMA and SMA slope positive over 10 bars), capturing the documented weekend->Monday rebound. Exits at the Monday open (calendar exit), on an 8% hard stop, or after a 24-bar safety time stop. The signal is the continuous trend-distance score (close/SMA - 1) recomputed every bar; the discrete calendar+trend condition gates entry. Sized at 18% equity notional. leverage 1.0.

Verification Results

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['exit_dow', 'entry_dow', 'entry_hour', 'sma_period', 'min_notional', 'position_pct', 'max_hold_bars', 'stop_loss_pct', 'slope_lookback'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() takes 1 positional argument but 2 were given (bar timestamp: 1735693260000) - steady_downtrend: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() takes 1 positional argument but 2 were given (bar timestamp: 1735693260000) - flat_ranging: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() takes 1 positional argument but 2 were given (bar timestamp: 1735693260000) - volatility_spike: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() takes 1 positional argument but 2 were given (bar timestamp: 1735693260000) - zero_volume: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() takes 1 positional argument but 2 were given (bar timestamp: 1735693260000) - price_gap: TypeError: AdaWeekendRallyCalendarLong4H._dow_hour() takes 1 positional argument but 2 were given (bar timestamp: 1735693260000)

Backtest Review

Strong, consistent risk-adjusted profile: Sharpe 1.35, PF 1.55, Sortino 2.88, max_drawdown only 5.45%, positive in 6 of 7 years (not front-loaded)

Backtest Review

Healthy economics and capacity: expectancy +$249/trade (~1.3% net), capacity ~$44M, impact 4.8%, low exposure (10.4%) — deployable and scalable

Backtest Review

Implemented correctly and trades as specified (110 calendar entries, 0 dropped); genuinely novel mechanism (first calendar-effect strategy), trend filter addresses the prior Keltner failure mode

Backtest Review

Moderate sample: 110 trades (~17/yr) — walk-forward windows get ~6/year; DSR will test significance carefully

Backtest Review

Outlier dependence: return_kurtosis 19.7, skew 3.09 (e.g. 2024-11-11 +6.4%); Sharpe CI lower edge slightly negative (-0.35)

Backtest Review

Recent softening: 2026 -3.3%, rolling Sharpe declining — the holdout (recent window) is the key test

Backtest Review

Edge attribution risk: the trend filter means entries only fire in uptrends, so part of the return may be weekend long-beta rather than genuine weekday seasonality — optimization/holdout must confirm it's real

Analysis

Strong in-sample/CI profile: optimized Sharpe 2.86, PF 2.13, Sortino 6.95, max_drawdown 10.7%, sharpe_ci_low +1.12 (positive), PSR 0.9998; 6 positive years 2020-2024

Analysis

Implemented correctly, large capacity (~$84M), low impact (3.5%); novel calendar mechanism

Analysis

Failed deflated Sharpe: DSR=0.3952 (bar 0.95, is_significant FALSE) with the optimized Sharpe 2.86 below the expected-max luck bar 3.08

Analysis

PBO 0.799 — ~80% probability of backtest overfitting (decisively > 0.5)

Analysis

Walk-forward is_overfitted=TRUE: avg IS 2.98 collapses to avg OOS -0.116 (windows [-3.55, 2.27, 0.93])

Analysis

Holdout FAILED with a deeply NEGATIVE Sharpe -2.875

Analysis

Sensitivity FAILED with 2 cliffs on the CORE calendar params (entry_dow, entry_hour): shifting the entry day/hour by one collapses Sharpe to negative/zero

Analysis

Overfit signature: the 'best' config abandoned the hypothesized Friday->Monday for Thursday->Tuesday; seasonality decayed in 2025 (-5.3%) and 2026 (-3.5%) as the hypothesis itself warned

Outcome Summary

This was the portfolio's first calendar-effect strategy — buy ADA's Friday-evening close in an uptrend, sell Monday — and it earned an 'optimize' verdict on an unusually clean base (Sharpe 1.35, PF 1.55, only 5.45% drawdown, positive in 6 of 7 years), though flagged for outlier dependence and recent softening. Optimization produced a dazzling in-sample profile (Sharpe 2.86, PSR 0.9998, sharpe_ci_low +1.12), but every forward gate rejected it: deflated Sharpe 0.40 below the luck bar, PBO 0.80, an overfit walk-forward collapsing to negative average OOS, and a deeply negative holdout of -2.88. The smoking gun was sensitivity cliffs on the defining calendar parameters — shifting the entry day or hour by one collapsed Sharpe to zero or negative — and the optimizer abandoning the hypothesized Friday→Monday for a noise-fit Thursday→Tuesday. The analyst abandoned it on iteration 2, concluding the day-of-week premium is a fragile, regime-decaying artifact with no robust window to tune toward, exactly the decay the hypothesis itself had warned about.

Outcome Summary

Single-asset weekday/seasonality calendar strategies optimize to a flashy Sharpe with a positive CI via best-of-N selection over the day/hour grid, but the day-of-week 'effect' is a fragile, regime-decaying artifact — cliffs on the core entry day/hour and a negative holdout reveal a knife's-edge window with no robust region to tune, and the trend filter risks attributing weekend long-beta to genuine seasonality.

Outcome Summary

The post-optimization analyst abandoned it on every generalization gate: deflated Sharpe 0.3952 (optimized Sharpe 2.86 below the 3.08 expected-max luck bar, not significant), PBO 0.799, walk-forward is_overfitted=True (avg IS 2.98 → avg OOS -0.116, one window -3.55), a deeply negative holdout (Sharpe -2.875), and sensitivity cliffs on the two core calendar parameters — with the optimizer even drifting off the hypothesized Friday→Monday to a noise-specific Thursday→Tuesday window.

Outcome Summary

A long-only weekday-seasonality calendar strategy on ADAUSDT 4H perpetual futures (pure OHLCV) — the portfolio's first calendar-effect strategy — buying the Friday-evening close (UTC weekday 4, hour ≥20) only during a confirmed 4H uptrend (close > 50-SMA with positive slope) and selling at the Monday open, to capture a documented crypto weekend→Monday rebound, with a hard stop and time stop.

Outcome Summary

The base backtest was unusually clean — 110 trades (~17/year, all long, none dropped), +31.7% total, Sharpe 1.35, profit factor 1.55, Sortino 2.88, expectancy +$249/trade, only 5.45% max drawdown, ~$44M capacity, positive in 6 of 7 years; optimization produced an even stronger in-sample profile (Sharpe 2.86, PF 2.13, Sortino 6.95, sharpe_ci_low +1.12, PSR 0.9998), but it leaned on outliers (kurtosis 19.7) and softened recently (2025 -5.3%, 2026 -3.5%).
Strategy report

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