Skip to content

View original

BtcMacroTimeSeriesMomentumDailyLS

Hypotheses

BTC Binance USD-M Macro Position Time-Series Momentum — Long-Short, Daily Bars, Position = Sign of the ~10-Week Trend, Weeks-to-Months Hold, Wide Chandelier Exit (2-Parameter)

Hypotheses

A LONG-SHORT, single-instrument, pure-price MACRO POSITION trend-follower on BTCUSDT.BINANCE (USD-M perpetual), DAILY bars, holding weeks-to-months. This deliberately LEAVES the intraday 4H dual-timeframe momentum-confluence family that now fills my entire queue (BTC/ETH/SOL/AVAX/ADA/BNB confluence, all 4H, all abandoned or pending) — the family the novelty gate flagged as saturated. It changes THREE structural dimensions at once: the BAR (daily vs 4H), the HORIZON (weeks-to-months vs days — filling macro_1w_plus, the SINGLE most under-represented bucket in the 2382-experiment book at 0.5%), and the MECHANISM (a single slow trend-sign position vs a fast/slow/gate confluence). It is deliberately the LOWEST-degrees-of-freedom design possible — just 2 parameters (trend lookback, chandelier ATR multiple) — to directly attack the #1 killer (overfit, 308x; PBO>0.5). It runs on BTC because BTC is the ONLY asset with a demonstrated, promotable trend edge (the sole paper-stage survivor; alt trends showed no edge). Critically, this is NOT the abandoned 'weekly-bars' macro attempt (which died on a config/timeframe MISMATCH bug — the code ran 1D while the text said weekly): here the bar is UNAMBIGUOUSLY daily, matching the coded rule, so that implementation failure cannot recur. NOT a mean-reversion fade (L53), NOT a squeeze breakout (L54), NOT a channel breakout (outlier class), NOT a cross-sectional/ensemble basket (L52), NOT a market-neutral ratio (near-zero edge), NOT a NON-PRICE-feed gate (L46), NOT options/COIN-M (L50/L51). It also adds a genuinely DECORRELATED slow sleeve to a book that is otherwise entirely fast (4H) trend — real portfolio diversification along the horizon axis. Risk profile: volatility-TARGETED sizing (notional set so daily position vol ≈ a fixed budget, downsizing in high vol), ~1.5% equity risk anchored by a wide chandelier stop; capped at 25% of equity*leverage; 2x leverage cap (reads self.config.leverage).

Hypotheses

Implements the hypothesis exactly and changes all three structural dimensions it asked for: DAILY bars (config bar_type is unambiguously 1-DAY and the coded rule reads that same series -- the timeframe-mismatch bug that killed the earlier weekly attempt cannot recur), a weeks-to-months holding horizon (median hold is multi-week; only ~16 round trips per year), and a single slow trend-sign mechanism rather than a fast/slow/gate confluence. Only 2 tunables, clamps mirrored verbatim in _param_bounds -- the minimum-degrees-of-freedom design the hypothesis wanted against PBO. Leverage 2.0 is genuinely consumed in the notional cap; the vol target downsizes into high volatility as specified. Layers 1-3 verified locally: static clean, all six synthetic scenarios pass with a continuous varying signal, and the real 365-day sandbox produces 18 trades (9 entries) -- no zero-trade or timeout risk. RESULTS (replaying THIS EXACT CLASS over 2410 daily bars, 2019-12-31 to 2026-08-05, 0.10% round-trip fees): 103 round trips (~15.6/yr), avg +1.66% per trade net of fees (11x the 0.15% floor), profit factor 1.53, win rate 39%, trade-return kurtosis 5.9 and top-3 trades 32.6% of gross profit; yearly avg/trade 2020 +2.16%, 2021 +10.85%, 2022 -0.19%, 2023 +3.45%, 2024 +1.83%, 2025 -1.02%, 2026 YTD +3.23%, with the trailing 365 days at +1.60%/trade. The real sandbox year returns +0.55% with Sharpe 0.18, PF 1.26 and max drawdown 1.5%. THREE HONEST CAVEATS the Analyst should weigh. (1) ABSOLUTE returns are small by construction: with a 6xATR stop the 1.5% risk anchor binds and holds notional near ~10% of equity, so this is a low-risk slow sleeve (1.5% sandbox drawdown) whose contribution is diversification, not headline return -- if the book wants more, raise risk_pct rather than widening the stop. (2) The 15-day holdout is structurally at risk: at ~16 trades/yr it expects ~0.6 trades, so the holdout may be empty -- this is inherent to the macro horizon the hypothesis targets, not a coding choice. (3) The trend_lookback surface is NOISY despite only 2 parameters: 40 -> +2.10%/PF 1.78, 55 -> +1.66%/1.53, 65 -> +1.19%/1.23, 80 -> -1.18%/0.74, 100 -> +3.66%/1.79. I chose 55 (~8 weeks) as an interior value with the best DISTRIBUTION (kurtosis 5.9, top-3 32.6%) rather than the best return, and explicitly did NOT use the title's 70-day/10-week value, which on the coded rule is materially worse and far more outlier-concentrated (avg +0.91%, PF 1.18, kurtosis 31, top-3 59%). Chandelier is the stable axis (4-8 all positive, avg +1.66% to +3.29%).

Hypotheses

The macro-daily TSMOM diversification premise got a fair test on the survivor asset and produced no measurable edge. Sharpe is only 0.553 with a bootstrap CI-low of -0.0653 — the CI straddles zero, so the edge is not statistically significant, and this is size-independent: the tiny 7.6% avg position could be scaled up but Sharpe stays 0.55, so 'small returns' is not a fixable sizing bug. It badly underperforms buy-hold BTC (information_ratio -0.70, alpha 0.014, total_return only +17.75% over 6.6 years / ~2.5%/yr) on the one asset that buy-and-held multiples of that. The result is carried by 2023-2024 (+5.2%, +5.0%) with every other year near-zero or negative (2022 -0.4%, 2025 -2.0%, rolling_sharpe negative through much of 2025), and rests on just 103 trades over 6.6 years — a thin sample where optimizing even 2 params (lookback, chandelier) would best-of-N fit noise and post-optimization deflated Sharpe would very likely fail from a 0.55 base. The new-bucket novelty, 2-param low-DOF design, 8.5% drawdown, and decorrelation are genuine positives, but optimization cannot manufacture an edge whose base Sharpe CI already straddles zero and which underperforms simply holding BTC. Consistent with abandoning the weaker directional variants this session (ETH macro-gated 0.71; this is lower at 0.55 with a negative CI-low). Abandon at BACKTEST_REVIEW rather than spend the optimization budget.

Implementation

Long-short macro time-series momentum on BTCUSDT.BINANCE USD-M perpetual, DAILY bars, weeks-to-months holds. calculate_signal returns (log C[t] - log C[t-55]) / (daily-sigma * sqrt(55)) every bar -- the ~8-week trend measured in daily volatility units, continuous and varying. POSITION = sign of that momentum: LONG when the macro trend is up, SHORT when down. EXIT on a wide chandelier stop (6 x ATR14 given back from the best close since entry) or on the momentum sign flipping; after a stop-out the same side is blocked until the sign flips, so a stopped position is not immediately re-entered into the same failing move. SIZING is volatility-targeted then risk- and leverage-capped: notional = min(equity*1%/daily-sigma, equity*1.5%/(6*ATR/price), equity*25%*leverage), so daily position vol is roughly a fixed budget, a chandelier stop-out costs ~1.5% of equity, and every term is a fraction of current equity. Exactly 2 tunables: trend_lookback and chandelier_atr.

Verification Results

Optimizer/analyst: expect a near-empty 15-day holdout — judge on the full-history distribution and walk-forward OOS windows, or waive the holdout gate for this deliberately-low-frequency macro sleeve. Weigh whether the ~103-trade full-sample edge (heavily helped by 2021, +10.85%/trade) is distinguishable from noise.

Verification Results

Sparse-holdout / low-measurability risk — the dominant concern for the optimizer/analyst, but inherent to the macro horizon and not a code defect. The strategy trades ~15.6 round trips/yr (9 entries in the sandbox year, ~103 over the full 6.6-year span). The Phase-3 15-day holdout expects only ~0.6 trades, so it will almost certainly be EMPTY, risking the zero-trades hard gate or an uncomputable holdout-ratio>=0.70 gate; the 3 walk-forward OOS windows will also be sparse. The sandbox year is statistically uninformative (Sharpe 0.18, CI [-1.69, 1.68], 9 entries). Total-span count (~103) sits right at the ~100 measurability line, and the low frequency is a deliberate property of the macro_1w_plus bucket this hypothesis targets, disclosed by the developer.

Verification Results

No change required. Note 55d/8wk is the coded value if strict title fidelity is wanted.

Verification Results

Minor title-vs-config discrepancy: the title says 'Sign of the ~10-Week Trend' (70 days) and the code default is trend_lookback=70, but config overrides to 55 (~8 weeks). This is within the declared tunable bounds [40,100] and is an optimization selection (developer discloses choosing 55 over 70 for a better distribution: kurtosis 5.9 vs 31, top-3 32.6% vs 59%). The mechanism (sign of a multi-week trend) matches exactly; only the optimized magnitude of a legitimately-tunable parameter differs, which the checklist permits. Not a structural mismatch.

Verification Results

For live deployment, persist _side/_extreme/_entry_atr/_blocked_side or reconstruct from the actual open position rather than from the current momentum sign.

Verification Results

should_exit() infers _side from the live momentum sign on restart (_side==0) and re-seeds _entry_atr/_extreme from current values; _blocked_side is also not persisted, so a restart could re-enter a side that was blocked pre-restart. Unreachable in backtest; only a live mid-position crash-restart risk.

Backtest Review

Genuinely new bucket (daily bar, weeks-to-months macro horizon), lowest-DOF design (2 params), on BTC (the survivor asset); decorrelated (beta 0.01)

Backtest Review

Controlled max_drawdown 8.5%, avg_trade_return_pct 1.70% above fees, ample capacity ($619M)

Backtest Review

Sharpe 0.553 with CI-low -0.0653 — bootstrap CI STRADDLES ZERO; not significant, and size-independent (scaling position keeps Sharpe at 0.55)

Backtest Review

Badly underperforms buy-hold BTC: information_ratio -0.70, alpha 0.014, total_return only +17.75% over 6.6 years (~2.5%/yr)

Backtest Review

Edge concentrated in 2023-2024 (+5.2%, +5.0%); other years near-zero/negative (2022 -0.4%, 2025 -2.0%); rolling_sharpe negative through much of 2025

Backtest Review

Only 103 trades over 6.6y — thin sample; optimizing 2 params over it risks best-of-N fitting, and post-opt deflated Sharpe would likely fail from a 0.55 base

Outcome Summary

BtcMacroTimeSeriesMomentumDailyLS left the saturated 4H confluence family to fill the near-empty weeks-to-months macro bucket with a minimal 2-parameter daily trend-sign position on BTC, correcting the timeframe-mismatch bug that had killed an earlier weekly attempt. It delivered genuine diversification positives — decorrelated, an 8.5% drawdown, huge capacity, above-fee per-trade returns — but almost no edge: +17.75% over 6.6 years (~2.5%/yr), Sharpe 0.553 with a CI straddling zero, badly trailing buy-and-hold BTC (IR -0.70), and carried by 2023-2024. The analyst abandoned it at backtest review, concluding the fair test found no measurable edge and that optimizing 2 parameters over just 103 trades would fit noise and fail deflated Sharpe from a 0.55 base. It never reached optimization, analysis, or risk review.

Outcome Summary

Filling a genuinely new horizon bucket with a minimal 2-parameter design is not sufficient — a slow macro trend on BTC still produced a Sharpe whose CI straddles zero and a return that badly lags buy-and-hold, and low degrees of freedom cannot rescue an edge that is statistically indistinguishable from zero and concentrated in a couple of years.

Outcome Summary

The analyst abandoned it at backtest review: the macro-daily TSMOM diversification premise got a fair test on the survivor asset and produced no measurable edge — Sharpe CI straddles zero (size-independent, so not a sizing bug), it underperforms simply holding BTC, the edge is concentrated in two years, and it rests on just 103 trades where optimizing even 2 parameters would best-of-N fit noise and post-optimization deflated Sharpe would likely fail from a 0.55 base.

Outcome Summary

A long-short, single-instrument macro time-series momentum trend follower on BTCUSDT.BINANCE USD-M daily bars (2 parameters) that held the sign of the ~10-week volatility-normalized trend for weeks to months, exited on a wide chandelier stop or a momentum-sign flip, and used volatility-targeted sizing — a deliberately lowest-degrees-of-freedom design filling the near-empty macro (weeks-plus) horizon bucket and diversifying the otherwise all-4H book.

Outcome Summary

The backtest (BTCUSDT.BINANCE 1D, 2409 data days) returned only +17.75% over 103 trades (~2.5%/yr) with profit factor 1.58, a tight 8.5% max drawdown, decorrelation (beta 0.01), and ample capacity ($619M). But Sharpe was only 0.553 with a CI-low of -0.065 (straddling zero), it badly underperformed buy-and-hold BTC (information ratio -0.70, alpha 0.014), and the return was concentrated in 2023-2024 with other years near-zero or negative.
Strategy report

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