Skip to content

View translation

BtcMacroTrendFollowLS

Hypotheses

BTC Long-Short Trend-Following at Macro Horizon (Single-Instrument BINANCE USD-M Perp, Daily Bars / Weekly Evaluation, Long Above the 200-Day MA + SHORT Below It With a Whipsaw Band — Profits in BOTH Bull AND Bear So Returns Are Regime-Distributed, Not 2021-Concentrated, Fee-Trivial, Pure OHLCV, 2-Parameter)

Hypotheses

A LONG-SHORT time-series trend follower on BTCUSDT.BINANCE (USD-M perpetual) designed specifically to escape the trap that has killed EVERY long-only directional strategy in this factory: single-regime concentration (all their return is the 2021 bull, so the analyst rejects them as artifacts — e.g. the Deep-Majors momentum timer, 807% return all in 2021). The fix is the SHORT side: this strategy is LONG BTC when it is above its 200-day MA and SHORT BTC when below, so it earns in the 2022/2025 bear legs (short) as well as the bull legs (long) — returns are DISTRIBUTED across regimes, which is exactly the multi-regime property the analyst demands and long-only can never provide. It is NOT the failed 'daily trend LS basket' (that was a multi-name basket on a fast 50-day lookback that got chopped up, no_edge): this is the SINGLE deepest instrument on a slow ~200-day trend with a whipsaw band, capturing the few large multi-month BTC trends per cycle while ignoring noise. It is engineered against every dominant killer: FEE_EDGE — weekly evaluation of a 200-day trend flips position only a handful of times per year, so fee drag is trivial against multi-ten-percent trend legs; OVERFIT — 2 parameters (MA length, band width), single name, no selection surface, no best-of-N optimizer sweep; SINGLE-REGIME — the short side makes it profitable in bear markets, the whole point; DATA — pure OHLCV on BTC (multi-year, deepest book, the 3%-survival BTC tag). It fills the emptiest horizon bucket (macro/1w+, 0.6%) and the under-represented long_short direction (15.0%). It is NOT a reversion (retired class), NOT a carry (fee-dead), NOT a basket (overfit), NOT options/CM/HL (dead).

Hypotheses

Iteration 3 attacks the sole (thrice-repeated) blocker: the QA rejected iters 1–2 as STRUCTURALLY UNMEASURABLE — ~13 then ~19 trades over 6 years give a non-diagnostic Sharpe CI and ~6 trades/walk-forward window, and a months-long macro hold means the 15-day holdout closes ~0 trades REGARDLESS of MA length. The QA credited the code as sound; the problem is the horizon, and MA-length tweaks (200→100) demonstrably did not fix it (13→19). The trade count and hold length of a single-name trend follower are governed by two things only: MA length and evaluation cadence. So the minimal, targeted fix raises both — ma_length 100→40 (a medium-term trend, still above the pure-chop zone, with the 3% band suppressing whipsaws) and eval_period 7→1 (DAILY evaluation, so every band cross is acted on instead of being gated to weekly). Together these materially increase the flip count (diagnostic walk-forward windows) and shorten holds to weeks-to-months, so the 15-day holdout can actually contain closed trades — directly resolving both measurability drivers the QA named. This is transparently a shift from the macro horizon to a medium-term one: it is the necessary tradeoff, because no macro MA length can satisfy the pipeline's trade-count and holdout-closure gates (as the QA itself concluded). The long-short structure — the multi-regime justification — is preserved unchanged, so the short side still earns in bear legs. Everything credited-correct is untouched: band hysteresis, opposite-band flip logic, path-independent capped sizing, single name, 2 parameters (ma_length, band), pure OHLCV, no banned imports — Layers 1–2 stay green. Honest caveat: a shorter trend carries some no_edge/chop risk that a macro trend avoids, but a measurable strategy that can be judged on edge is strictly better than an unmeasurable one that is auto-rejected; if it now trades enough to be measured and the edge holds (the short side must pull its weight for the multi-regime thesis), it can finally clear the structural gate that blocked all prior iterations.

Hypotheses

Overfit + single-regime concentration, unfixable — four unwaivable hard-gate failures and a falsified thesis. Hard gates: walk-forward is_overfitted=true (IS 0.764 -> OOS -0.148, one window -1.21), OOS Sharpe <= 0, PBO 0.66 > 0.5, and holdout FAILED (sharpe -0.150, ratio 0.0). DSR 0.155 and a Sharpe CI straddling 0 confirm the raw 0.40 is a best-of-225-trials selection artifact. The strategy's entire premise — that the short side distributes returns across regimes to escape 2021-concentration — is empirically FALSE: the full return is 2021 (+218%), a single 2021-01-27 +125% day carries the headline (skew 39, kurtosis 1718), and the short side LOSES (short_win_rate 0.367; bear years 2022 -10.9% and 2025 -6.7% are negative) rather than profiting in the declines it was built for. This is the same overfit/single-regime death as its just-abandoned ETH turtle sibling (similarity 0.77) and the Deep-Majors momentum timer — a pure-OHLCV single-name trend follower (class 0/213 survival). Already iteration 3 with the horizon reworked twice; the two knobs were swept 225 trials with OOS negative everywhere and the holdout failed, so there is no untested parameter region to tune toward and no same-mechanism reframe that wouldn't overfit again. META-NOTE FOR RESEARCH LEAD: adding a short side to a single-name OHLCV trend follower does NOT distribute returns across regimes — the short legs lose in the 2022/2025 bears and the entire edge remains one 2021 day. Stop reframing single-name directional trend timers to 'fix' single-regime concentration; the concentration is in the signal, not the direction.

Implementation

Long-short, single-instrument trend follower on BTCUSDT.BINANCE USD-M perpetual, daily bars, evaluated DAILY. It goes LONG when close is more than `band` (3%) above its `ma_length`-day (40) moving average, SHORT when more than `band` below it, and HOLDS the current position while price sits inside the band (whipsaw hysteresis). It flips on the opposite-band cross, so it is long in up-trends and short in down-trends — earning in both bull and bear legs. Sizing is path-independent capped (min(base_capital, equity) × position_frac) at leverage 1.0. Two tunable knobs: ma_length, band; daily evaluation and sizing are frozen.

Verification Results

Verification failed (Layer 4 — QA review): - STILL UNMEASURABLE — the MA 200->100 fix raised the trade count only 13->19, and the Sharpe CI [-3.86, +8.04] STILL spans strongly negative to strongly positive. With 19 trades over ~6 years the +401% / Sharpe 3.78 remains indistinguishable from luck (a few large trend legs; largest_win $287,605 dominates); non-diagnostic per L16. Walk-forward gets ~6 trades/window (still thin), and — as the developer explicitly concedes — the 15-day HOLDOUT will contain ~0 closed trades (a months-long macro position never closes in 15 days) REGARDLESS of MA length, so the holdout gate is structurally unevaluable. - The multi-regime thesis remains unproven — the SHORT side (the entire justification) still underperforms at short_win_rate 0.333 (3 of 9) vs long_win_rate 0.60, essentially unchanged from iter-1. The whole differentiation from every rejected long-only timer is that the short side earns in bear legs so returns are regime-DISTRIBUTED. With longs carrying the book and shorts mostly losing, +401% is still likely bull-concentrated (the exact artifact it claims to fix), unprovable on 19 trades. - CREDIT (no defect): the developer applied the iter-1 feedback faithfully and minimally (only ma_length + config changed; all credited-correct mechanics unchanged) and was transparent about the residual holdout limitation. The code is sound; the rejection is purely structural measurability. - Return-series risk metrics remain artifact-laden (annualized_volatility 1302%, data_days 19 impossible given 112-day holds and a 378-day max-DD duration). Trade-level facts (19 trades, PF 5.22, commission 0.38%, no liquidation) are trustworthy; the ratio metrics are not.

Verification Results

Research lead: re-classify as medium-term (not macro/1w+) for accurate bucket accounting. The shift was the necessary tradeoff to make it measurable (as I concluded in iters 1-2), so it's acceptable — but it doesn't fill the macro bucket the hypothesis targeted.

Verification Results

HORIZON SHIFT (transparent, but the bucket claim is now inaccurate): the hypothesis title/thesis is 'Macro Horizon / 200-Day MA' filling the emptiest macro/1w+ bucket, but the iter-3 code is a 40-day MEDIUM-TERM trend (39-day avg holds). It no longer fills the macro bucket it claims, and 40 days is FASTER than the 50-day the hypothesis explicitly differentiated itself from as 'chop'. Empirically the single-name + 3% band makes it work (PF 2.48, win_rate 0.43 with big winners — not chopped), and the core long-short / short-for-multi-regime thesis is preserved, but this is a genuine deviation from the stated strategy.

Verification Results

Analyst: decompose returns BY REGIME and confirm the SHORT leg is net-positive in the 2022 bear — if +361% is still all-2021, it's the same single-regime artifact the hypothesis claims to fix. Now a decidable question on the 58-trade sample.

Verification Results

SHORT-SIDE THESIS — now measurable, the key analyst validation. short_win_rate 0.333 (10 of 30) vs long 0.536. The entire justification over every rejected long-only timer is that the SHORT side earns in bears so returns are regime-DISTRIBUTED. Unlike iters 1-2 (6 shorts, non-diagnostic), there are now 30 shorts — a diagnostic sample — so whether the short leg pulls its weight is finally answerable. A 33% win rate is normal for trend-following IF the winning shorts (2022 bear) are large, so not disqualifying, but MUST be verified.

Verification Results

Analyst: check robustness to removing the top 2-3 winners; recompute Sharpe/vol from a clean daily equity curve; confirm positive OOS Sharpe in later walk-forward windows.

Verification Results

Return concentration + metric artifacts: skew 6.10 / kurtosis 42.96 with largest_win $151,681 — the +361% leans on a few large winners (characteristic of trend-following, positive skew desirable, but a concentration risk). annualized_volatility 275% and data_days 58 are return-series artifacts (run spans years per the 706-day max-DD duration); trade-level facts (58 trades, PF 2.48, commission 0.89%, no liquidation) and metrics_reliable=true are trustworthy.

Verification Results

None on the code — sound and now diagnostically evaluable.

Verification Results

CREDIT (no defect): the developer resolved the exact measurability blocker I raised over three iterations, the only way it could be (shorter MA + daily eval to raise both trade count and holdout compatibility), and was transparent about the horizon tradeoff. Code unchanged except the two params — band hysteresis, opposite-band flip, capped path-independent sizing, MARGIN shorts, no stacking, no liquidation intact. metrics_reliable flipped FALSE->TRUE, trades 19->58, Sharpe CI lower bound now POSITIVE (0.76).

Backtest Review

58 trades (28 long / 30 short), avg hold 39d — iter-3 cadence fix made it measurable with genuinely active long AND short legs

Backtest Review

avg_trade_return_pct 7.08% and PF 2.18 with commission 0.98% of gross — comfortably fee-viable, no FEE_EDGE risk

Backtest Review

2 parameters, single deep name, no cross-sectional selection surface — low overfitting surface

Backtest Review

Some medium-term trend edge persists outside 2021 (2024 +26%)

Backtest Review

Central thesis contradicted: return is ~entirely the 2021 bull (+218% of +361% total), driven by one +125% realized trade (skew 39, kurtosis 1718) — the exact single-regime concentration the design claims to avoid

Backtest Review

Short side does NOT deliver regime distribution: bear-ish years are negative (2022 -11%, 2025 -6.7%), short_win_rate only 0.37

Backtest Review

Weak Sharpe 0.40 with CI low -0.257 spanning zero; max_drawdown 21.3%

Backtest Review

end_unrealized_pct 64.6% — a large share of the headline is an un-exited open position, not realized track record

Analysis

avg_trade_return_pct 6.2-7.1% and PF ~1.9-2.2 with commission ~1% of gross — NOT a fee_edge failure; the mechanism clears trading costs

Analysis

Clean 2-parameter construction, smooth sensitivity grid, no cliffs; both long (28) and short (30) legs fire

Analysis

iter-3 cadence fix succeeded in making the strategy measurable (58 trades, 39d avg hold)

Analysis

Four hard gate failures: is_overfitted=true (IS 0.76 -> OOS -0.148), OOS Sharpe <= 0, PBO 0.66, and holdout FAILED (-0.150, ratio 0.0)

Analysis

DSR 0.155, sharpe_ci_low -0.269 — Sharpe indistinguishable from best-of-225-trials noise; the raw 0.40 is a selection artifact

Analysis

Central thesis FALSIFIED: the entire return is 2021 (+218%), and a single 2021-01-27 +125% day carries the headline (skew 39, kurtosis 1718). The short side that was supposed to profit in bear regimes LOSES (short_win_rate 0.367; 2022 -10.9%, 2025 -6.7%) — it did NOT escape the single-regime trap it was designed to fix

Analysis

DD 20.7% > 10% floor, annualized_vol 52% — leveraged single-regime exposure, not distributed alpha

Analysis

Pure-OHLCV single-name trend class (0/213 survival); already iteration 3 with the horizon reworked twice

Outcome Summary

This BTC long-short trend follower was iteration 3 of an effort to beat single-regime concentration by shorting the bear, having twice reworked its horizon (200-day then 100-day weekly) to become measurable; the daily-evaluated ~40-day version finally produced a diagnostic 58 trades and cleared the pre-optimization gate with an 'optimize' verdict on strong per-trade returns and profit factor. But optimization exposed it as overfit and single-regime: in-sample Sharpe of 0.76 collapsed to a negative -0.148 out-of-sample, PBO hit 0.66, and the holdout failed at -0.150. Decisively, its core premise was empirically false — the entire +361% traced to 2021 and one +125% day, and the shorts lost money in the 2022/2025 bears they were meant to profit from. After three iterations the analyst abandoned it and flagged a meta-note: stop reframing single-name directional trend timers to fix regime concentration, because the concentration is in the signal, not the trade direction.

Outcome Summary

Adding a short side to a single-name pure-OHLCV trend follower does not distribute returns across regimes — the concentration lives in the signal, not the direction — so re-parameterizing horizon or eval cadence cannot rescue this strategy class (0/213 survival).

Outcome Summary

The analyst issued an abandon verdict on four unwaivable hard-gate failures (is_overfitted=true, OOS Sharpe ≤ 0, PBO 0.66 > 0.5, failed holdout) and a falsified thesis: nearly all return came from 2021 (+218%, dominated by a single +125% day, skew 39 / kurtosis 1718) while the short side actually lost (short_win_rate 0.37; 2022 -10.9%, 2025 -6.7%), so it never escaped the single-regime trap it was built to fix.

Outcome Summary

A long-short medium-term MA trend-follower on single-name BTCUSDT.BINANCE daily bars — long above the ~40-day MA and short below it with a whipsaw band — designed so the short side would earn in bear legs and thereby distribute returns across regimes instead of concentrating in the 2021 bull.

Outcome Summary

The backtest showed +361% total return over 58 trades (28 long / 30 short) with profit factor 2.18 and avg_trade_return_pct 7.08%, but a weak Sharpe of 0.40 (CI low -0.26) and 21.3% max drawdown; optimization left Sharpe at ~0.39 while the walk-forward was overfit (IS 0.76 → OOS -0.148), PBO was 0.66, and the holdout failed at -0.150.

Iteration History

Verification failed (Layer 4 — QA review): - UNMEASURABLE / non-diagnostic and structurally incompatible with the validation pipeline. total_trades is 13 over the full ~6-year history, Sharpe CI [-3.26, +10.22] spans strongly negative to strongly positive, so the +343% / Sharpe 4.85 point estimate cannot be distinguished from luck (L16/L26). Concretely, the 3-phase optimization cannot validate this: walk-forward (3 windows over ~6 years) yields ~4 trades/window (optimizing 2 params on ~4 trades = pure overfit), and the 15-day holdout will contain ~0 trades for a 200-day-MA weekly trend follower, leaving the holdout gate unevaluable. The low N is intrinsic to the single-instrument macro horizon, with no fix that preserves the hypothesis (faster MA = the chop it avoids; more instruments = the basket overfit it avoids). - The core multi-regime thesis is weakly evidenced — the SHORT side (the entire justification) underperforms: short_win_rate 0.333 (2 of 6) vs long_win_rate 0.714. The whole differentiation from every rejected long-only timer is that the short side earns in bear legs so returns are regime-DISTRIBUTED, not 2021-bull-concentrated. With longs carrying the book and shorts mostly losing, the +343% may still be bull-concentrated — the exact artifact it claims to fix — and 13 trades can't prove otherwise. max_drawdown 51% also undercuts the 'smooth across regimes' claim. - Return-series risk metrics are artifact-laden: annualized_volatility 1128% and data_days 13 are impossible given 160-day holds and an 819-day max-DD duration (run spans years). Trade-level facts (13 trades, PF 4.75, commission 0.31% of gross, no liquidation) are trustworthy; the ratio metrics are not. - CREDIT (no defect): the code is mechanically correct — signal (close-MA)/MA, weekly eval, LONG above +band / SHORT below -band with correct hysteresis, capped path-independent sizing, shorts on MARGIN (not spot), subscription flags consistent, no stacking, no liquidation. Genuinely distinct from the retired reversion / dead carry / overfit basket classes. The rejection is purely measurability, not implementation.
Strategy report

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