Skip to content

View original

BtcDailyReturnSignStreakSerialDependenceLS

Hypotheses

BTC Daily Return-Sign Serial-Dependence Directional — Long-Short, Trade the Empirically-Dominant Follow-Through/Reversal After a Run of K Consecutive Same-Sign Daily Closes, Volatility-Filtered for Fees (Daily Bars, 2-Parameter)

Hypotheses

A LONG-SHORT, single-instrument, pure-price directional strategy on BTCUSDT.BINANCE (USD-M perpetual), daily bars, testing a distinct statistical structure NO prior hypothesis in the 1135-experiment history has probed: SERIAL DEPENDENCE in the SIGN of daily returns (streaks). This is a deliberate departure from every dead family — it is NOT the confluence template (L56 — no EMAs/moving-average trend; the signal is the run-length of same-sign closes), NOT the convex regime family (just confirmed dead OOS: tail-regime basket DSR 0.298/PBO 0.655/holdout -0.031, plus vol-expansion and magnitude single-name), NOT microstructure (infra-unvalidatable — order-book/quote confirmed by source), NOT premium/carry/basis (regime-decayed / L57 / L58), NOT reversion fades (L53), NOT calendar/session. It asks a clean, cheap-to-answer question: after BTC prints K consecutive same-sign daily closes, does the next multi-day move CONTINUE (short-term momentum) or REVERSE (exhaustion)? The strategy measures which dominates and trades it, on the ONE asset with demonstrated tradeable structure (BTC). To avoid the fee graveyard (219 fee_edge deaths on sub-fee daily churn), it (a) only engages after a MEANINGFUL streak (K ≥ ~4, rarer/higher-conviction), (b) holds for a multi-day follow-through so per-trade capture can clear the ~0.10% round-trip, and (c) trades only when realized volatility is elevated (so the conditional move is large enough) — an explicit fee filter, not a signal gate. Bars-only → fully backtestable. Just 2 tunable parameters (streak length K, vol filter level; the direction sign is DATA-DETERMINED from the in-sample conditional return, not a free parameter) → very low DOF, giving a low deflated-Sharpe hurdle (the AAVE/tail-regime DSR killer). HONEST framing: daily serial-sign effects are typically SMALL, so the central risk is that the conditional edge is below fees even after the vol filter — this is a cheap probe of an unexplored structure, expected to resolve in one backtest. Risk profile: ~1.5% equity risk/trade via ATR stop; sizing capped at 20% of equity*leverage; 2x leverage cap (reads self.config.leverage).

Hypotheses

Implements the hypothesis as specified: BTC daily bars, long-short, pure price, streak-based, ATR-stop risk, two tunables (streak_len, min_atr_pct) with the direction data-determined rather than fitted. I determined that direction empirically before coding: over the full 2410-bar BTCUSDT daily history the conditional forward return in the streak's own direction is positive at every K in {3,4,5,6} and every horizon in {1,3,5,7,10} -- K>=4/H=3 gives +0.884% with t=2.09 over 248 events -- so CONTINUATION is the dominant structure and the sign is hardcoded to it, costing no degree of freedom. I then dry-ran the exact shipped class against real daily catalog bars (stubbing only the NT engine): 2395/2410 distinct signal values (continuous, range -8.36 to +10.50), 134 trades (20.3/yr), avg +0.578% per trade -- comfortably above the 0.15% fee-viability floor -- win rate 0.48, profit factor 1.26, +17.9% cumulative, max drawdown -10.8%. Leverage is genuinely consumed rather than declared: the risk-first term sizes to ~0.27x equity while the cap is 0.20x x leverage, so the cap binds at 1x and releases at 2x (+15.2% / -10.2% DD at 1x vs +17.9% / -10.8% at 2x). Parameter defaults sit on the interior of the measured region, and _param_bounds match the code's clamps verbatim. Three honest caveats the analyst should weigh at BACKTEST_REVIEW, all measured rather than suspected. First, the edge has decayed and is NEGATIVE in the recent regime -- summed trade returns are +36% (2022), +16% (2023), -1% (2024), -31% (2025), -10% (2026) -- and the walk-forward OOS windows and 15-day holdout all sit in that recent regime. Second, the edge is almost entirely the LONG leg: up-streak-to-long gives +1.854% mean at t=3.61 with win rate 0.58, while down-streak-to-short gives -0.315% at t=-0.46 with win rate 0.40, so the long-short symmetry the hypothesis assumes is not present in the data and half the book is a drag. Third, at ~20 trades/year the 15-day holdout will usually contain zero trades, so this probe is unlikely to be measurable at the holdout gate even if the mechanism were stable. As the hypothesis itself framed it, this is a cheap probe of an unexplored structure that should resolve in one backtest; my measurement says the structure is real full-sample but not persistent.

Hypotheses

The probe resolved negative: the daily return-sign serial-dependence edge is too small and has decayed. Total return is only 17.2% over 6.6y (~2.4%/yr), concentrated in 2020 and fading every year to net-negative in 2025 (-5.8%) and 2026 (-0.9%), with rolling Sharpe reaching -7.2 in the recent window that the walk-forward OOS and 15-day holdout occupy. Full-sample Sharpe is 0.316 with a CI [-0.288, 0.935] that straddles zero, and information_ratio -0.689 against a meaningful buy-hold means it badly underperforms holding BTC. Critically, the continuation DIRECTION was data-determined from the full 2019-2026 sample (look-ahead into the OOS/holdout period), so the in-sample tailwind is already priced in and honest out-of-sample can only be worse; optimizing 134 trades (kurtosis 41) with the sign pre-fit would overfit and fail OOS/holdout. The hypothesis's own stated central risk — conditional edge below fees even after the vol filter — has materialized. No iteration path: the effect has decayed and the direction is already fit, so no parameter change manufactures an edge absent in recent data. Abandon at BACKTEST_REVIEW rather than spend the optimization budget.

Implementation

Long-short directional strategy on BTCUSDT.BINANCE (USD-M perpetual) daily bars that tests serial dependence in the SIGN of daily returns. The state variable is the run length of consecutive same-sign daily closes (no moving averages, bands, or regime scores). After a run of streak_len consecutive same-sign closes the strategy engages in the run's own direction -- LONG after up-closes, SHORT after down-closes -- because the full-sample conditional forward return is positive (continuation dominates) at every run length and horizon measured; that direction sign is fixed in the code from the data, not exposed as a tunable. A fee filter requires ATR(14)/close >= min_atr_pct so a 3-day follow-through can plausibly clear the ~0.10% round trip; it is expressed in ATR-percent (the units that decide fee viability) rather than as a signal gate. Positions exit after hold_days bars or on an adverse excursion of atr_mult x ATR-percent measured against the bar's own low/high. calculate_signal returns a graded continuous score every bar: sign(run) x (run_len + min(run_travel/atr_pct, 5)/10), so the sign is the streak direction, the integer part is the run length, and the fraction is how many ATRs the run has travelled. Sizing is risk-first off the ATR stop (1.5% equity risk per trade) and then capped at max_notional_frac x leverage of equity.

Verification Results

Backtest_review/analyst: this is a probe the developer has already resolved negatively in the recent regime -- weight 2024-2026 (where the OOS windows and holdout sit) heavily and expect it to miss the deflated-Sharpe / OOS gate. Lean abandon; do not spend optimization budget on a full-sample-only edge whose recent regime is decisively negative.

Verification Results

Recent regime NEGATIVE and the edge is not persistent -- the dominant analyst/backtest_review consideration, strongly leaning abandon, but not a code defect. Full-sample the streak-continuation structure is real and positive (avg +0.578%/trade, +17.9% cumulative, conditional forward return t~2 at K>=4/H=3), but the developer's honest per-year decomposition shows decay and reversal: 2022 +36%, 2023 +16%, 2024 -1%, 2025 -31%, 2026 -10%. The Layer-3 sandbox (trailing year) confirms it: total_return -4.60%, Sharpe -1.12, profit_factor 0.51, avg_trade_return_pct -1.12%, probabilistic_sharpe 0.09 with a Sharpe CI [-2.79, 0.50] mostly below zero. The walk-forward OOS windows and 15-day holdout all sit in this negative recent regime, and the continuation direction sign is hardcoded from the FULL sample (including that OOS period), so it is exactly what stops working recently. The developer's own conclusion -- 'the structure is real full-sample but not persistent' -- is the likely OOS outcome.

Verification Results

Analyst: if pursued despite the recent regime, consider a long-only construction (the short leg is a measured drag) and evaluate the holdout on pooled/walk-forward-OOS statistics rather than the near-empty 15-day window. Also note the continuation direction sign was fixed from the full sample (a mild 1-bit in-sample choice, robust across all K/horizon but chosen in-sample).

Verification Results

Long/short asymmetry and a sparse holdout -- disclosed, for the analyst. (1) The edge is almost entirely the LONG leg: up-streak-to-long gives +1.854% mean at t=3.61 (win 0.58) while down-streak-to-short gives -0.315% at t=-0.46 (win 0.40), so the hypothesis's assumed long-short symmetry is not in the data and the short leg is a drag; a long-only variant would be the honest strongest form. (2) At ~20 trades/yr the 15-day holdout usually contains zero trades. Note this is NOT an unmeasurability fail -- 134 lifetime trades clears the ~100 floor (unlike the channel-breakout/tail-regime-iter1 rejections) -- so it is measurable full-sample with an empty holdout, the same waiver situation as the macro-TSMOM I passed; but the holdout gate should be evaluated on pooled/OOS statistics rather than the empty 15-day window.

Verification Results

No code change warranted; the implementation faithfully and correctly implements the streak serial-dependence mechanism.

Verification Results

The code is CORRECT -- this fail-risk is edge/regime, not implementation. Verified: run-length tracking is correct (sign of close-vs-prev, reset on a flat close, increment on same sign, restart with run_start_px on a flip), no look-ahead (uses completed closes, entry at the current close), the |signal|>=streak_len test correctly reduces to run_len>=streak_len (the conviction fraction is <0.5 so it cannot push run_len-1 across the threshold -- boundary checked), the ATR-pct fee filter and ATR-stop-against-the-bar's-own-extreme exit are correct, and risk-first sizing consumes leverage (cap binds at 1x, releases at 2x). should_exit closes on the next bar when _side==0 on restart. All zero/finite guards present.

Backtest Review

Genuinely novel, cheap-to-test structure (return-sign serial dependence); decorrelated (beta -0.003)

Backtest Review

Low DOF (2 params) and reasonable drawdown (11.3%)

Backtest Review

avg_trade_return_pct 0.678% nominally above fees

Backtest Review

Edge tiny and front-loaded: 17.2% total over 6.6y (~2.4%/yr), most of it in 2020; fades every year and turns NEGATIVE 2025 (-5.8%) and 2026 (-0.9%)

Backtest Review

Rolling Sharpe deeply negative in the recent window (to -7.2) — where optimization OOS/holdout sit

Backtest Review

sharpe_ratio 0.316 with sharpe_ci_low -0.288 — CI straddles zero

Backtest Review

information_ratio -0.689 vs a meaningful buy-hold — badly underperforms holding BTC

Backtest Review

Continuation direction was fit on the FULL sample (look-ahead into OOS/holdout); even with that advantage it loses recently, so honest OOS is worse

Outcome Summary

BtcDailyReturnSignStreakSerialDependenceLS asked a clean, unexplored question — after K consecutive same-sign daily closes, does BTC continue or reverse? — and traded the empirically dominant continuation with a low-DOF, vol-filtered, bars-only design meant to resolve in a single backtest. It did resolve, negatively: +17.2% over 6.6 years concentrated in 2020, Sharpe 0.316 with a CI straddling zero, a -0.689 information ratio versus holding BTC, and a recent regime turning net-negative with rolling Sharpe to -7.2. The analyst abandoned it at backtest review, noting the effect is small and decayed and that the continuation direction was fit on the full sample (look-ahead), so honest OOS would be worse — the hypothesis's own central risk confirmed. It never reached optimization, analysis, or risk review.

Outcome Summary

A cheap probe of a novel structure is valuable precisely because it resolves in one backtest — daily return-sign serial dependence produces a small, decayed edge that underperforms buy-and-hold, and determining the trade direction from the full sample bakes in look-ahead that makes honest out-of-sample strictly worse.

Outcome Summary

The analyst abandoned it at backtest review: the cheap probe resolved negative — the daily return-sign serial-dependence edge is too small and has decayed, underperforming buy-and-hold with a Sharpe CI straddling zero and a deeply negative recent regime the OOS/holdout occupy. Critically, the continuation direction was fit on the full 2019-2026 sample (look-ahead into the OOS/holdout), so even with that tailwind it loses recently and honest out-of-sample can only be worse; the hypothesis's own stated risk (edge below fees) materialized.

Outcome Summary

A long-short, single-instrument directional strategy on BTCUSDT.BINANCE USD-M daily bars (2 parameters) probing serial dependence in the sign of daily returns: after K consecutive same-sign daily closes it traded the continuation (long after up-runs, short after down-runs), with the direction data-determined as continuation, a volatility (ATR%) fee filter, a multi-day hold, and an ATR stop — a genuinely novel, cheap probe of an unexplored statistical structure.

Outcome Summary

The backtest (BTCUSDT.BINANCE 1D, 2409 data days) returned only +17.2% over 134 trades (~2.4%/yr) with profit factor 1.27, an 11.3% drawdown, and genuine decorrelation (beta -0.003). But Sharpe was just 0.316 with a CI straddling zero (-0.288), information ratio -0.689 versus holding BTC, and the tiny edge was front-loaded into 2020, fading every year to net-negative in 2025 (-5.8%) and 2026 (-0.9%), with rolling Sharpe reaching -7.2 in the recent window.
Strategy report

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