BtcCmDualDonchianTrendLS
Hypotheses
BTC COIN-M Inverse Perp Donchian Breakout Trend-Following, Long-Short Stop-and-Reverse (BINANCE_CM, Daily, 2-Parameter)
Hypotheses
A net-directional, single-instrument, medium-horizon TREND-FOLLOWING strategy on BTCUSD_PERP.BINANCE_CM (the BTC-margined inverse perpetual), using DAILY bars and pure OHLCV. It is a classic dual-Donchian stop-and-reverse: go LONG on a ~55-day high breakout, flip SHORT on a ~55-day low breakout, with a tighter ~20-day opposite-channel acting as the trailing exit/reverse trigger. This leans into the ONE edge this factory has repeatedly validated — NET-DIRECTIONAL, medium-horizon (~50-60 day) trend on the majors — and it is the SHORT-SIDE-ENABLED complement to the already-validated long-flat CoinM BTC Donchian: the analyst has stressed across multiple abandons that the short leg (net-short in bears) is what delivers REAL crash protection (long-only/cash-gate forms bled -42.8% in 2022; the net-short L/S sibling made +33.6%), and the existing long-flat version has ZERO bear participation. It is engineered to AVOID every engine trap that killed this batch: it is DISCRETE enter-once/exit-once and SINGLE-POSITION (no continuous per-bar rebalance inflation — that artifact produced avg_position 244% vs a 64% cap and impossible +117% days on both spot AND USD-M), NOT a multi-leg basket (no winner-balloon to 383% during parabolic runs), NOT spot (no CASH over-fill bug), NOT options (no Deribit sizing/marking block), NOT a fade/reversion (anti-predictive), NOT dollar-neutral relative momentum (decayed), NOT vol-targeted (falsified), and NOT 200-day (too slow). It fills the most under-represented ENGINE-CLEAN venue (BINANCE_CM 2.1% vs >=5%, proven evaluable by the validated CoinM Donchian siblings) plus the under-represented long_short bucket, with only TWO parameters to resist the overfitting seen this batch. The inverse contract yields a BTC-denominated, inverse-convex return stream the portfolio does not hold.
Hypotheses
This iteration fixes exactly the defect QA named and nothing else. QA's rejection was a hypothesis-vs-config axis mismatch: the hypothesis states DAILY bars and a ~55-day/~20-day medium-horizon trend, but iteration 2 shipped 8-HOUR bars, which turns the same 55/20 BAR lookbacks into an ~18-day/~6.7-day horizon -- a different, 3x faster strategy. config.bar_type is therefore back to BTCUSD_PERP.BINANCE_CM-1-DAY-LAST-EXTERNAL with the hypothesis's own 55/20 daily lookbacks. Not one line of trading logic changed (channels, stop-and-reverse, discrete single-position book, inverse whole-contract sizing, continuous signal, _param_bounds all identical), so nothing that already passed Layers 1-3 is at risk; the docstring now records the reconciliation instead of the frequency-lift justification. I raised the frequency in the first place only to escape this construction's daily trade starvation, and QA is right that this is a Research Lead call, not a coding one. HONEST SELF-ASSESSMENT: I recommend ABANDON. The 8-HOUR run was the only configuration with enough legs to estimate anything and it showed alpha ~0.0033, information_ratio -0.70 and 0.908 correlation to buy-and-hold -- the +193% is BTC beta with a negative skill component -- and that is the same null already recorded on the BTC-CM daily Donchian, ETH-CM Donchian and CM dual-EMA siblings. On the hypothesis-consistent daily clock this form additionally fires ~26 trades in 5.8 years, so the hard >=10-trade holdout gate is unreachable by construction. I cannot name a code change that creates alpha here.
Hypotheses
Structurally unmeasurable COIN-M directional trend with no alpha — not worth 2 hours of optimization, and the developer pre-registers abandon. On the hypothesis-consistent daily clock the strategy takes only 26 trades in 5.8 years (far below the ~100 floor) with ~5 in the last-20% window, so the HARD >=10-trade holdout gate is unreachable by construction and walk-forward windows cannot populate. What edge exists is BTC beta, not skill: alpha is -0.036 (negative), beta 0.38, benchmark_correlation 0.80, information_ratio -0.88, and the developer's own frequency-lift 8H experiment showed the identical null (alpha ~0.003, IR -0.70, corr 0.908) — the same result already recorded on the BTC-CM daily Donchian, ETH-CM Donchian and CM dual-EMA siblings (L65). Significance is absent (Sharpe 0.55, CI [-0.32, 1.36] straddling zero) and the record is carried by a single day (2021-05-17 +42.4%, kurtosis 10.2) with 2023 negative and a 38.7% drawdown. avg_trade_return_pct 3.9% clears the CM fee floor, so this is not a fee failure — the mechanism simply has no alpha on this instrument, and no parameter change creates alpha in the COIN-M directional-OHLCV trend family or conjures the trades a daily 55/20 Donchian needs to populate the holdout. Failure pattern: structurally unmeasurable + no_edge COIN-M directional trend, BTC-beta with negative alpha (L65).
Implementation
Long-short dual-Donchian breakout trend on the BTC COIN-M inverse perpetual (BTCUSD_PERP.BINANCE_CM), DAILY bars, pure OHLCV. A close above the prior 55-DAY channel high opens a LONG; a close below the prior 55-DAY channel low opens a SHORT; the tighter 20-DAY opposite channel is the trailing exit (a long closes below the 20-day low, a short above the 20-day high), leaving the book FLAT until the wider channel breaks the other way. Discrete and single-position: one entry, one exit, no per-bar rebalancing or resizing. Sizing is a fixed fraction of equity converted to WHOLE inverse contracts via contracts_for_notional ($100 USD per contract, BTC-margined and BTC-settled), never the linear equity/price formula. The continuous signal is the close's position within the entry channel in half-width units. Two tunables: entry_lookback, exit_lookback.
Verification Results
Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]:
- [edge_concern] Independently of the timeframe issue, the developer's own read is ABANDON and the sandbox supports it on edge grounds: alpha ~0.0033, information_ratio -0.70, benchmark_correlation 0.908 to buy-and-hold, so the +193% is overwhelmingly BTC beta with a negative skill component. The developer notes this is the same null already recorded on the BTC-CM daily Donchian, ETH-CM Donchian and CM dual-EMA siblings, and that they already ran this exact frequency-lift experiment on the dual-EMA CM sibling this session. Carry to the analyst: even if the timeframe is reconciled, the CM directional-OHLCV trend family shows no alpha here.
- TIMEFRAME / HORIZON MISMATCH vs the hypothesis. The hypothesis title and description explicitly and repeatedly state DAILY bars and frame the edge as 'the ONE edge this factory has repeatedly validated — NET-DIRECTIONAL, medium-horizon (~50-60 day) trend', with a '~55-day high breakout' and a '~20-day opposite-channel'. But config.bar_type is 8-HOUR, and holding the lookbacks at 55/20 BARS on 8h data yields a ~18-day/~6.7-day horizon — 3x faster than, and materially different from, the ~50-60 day medium-horizon trend that is the hypothesis's central self-described validated edge. Per check 1, the hypothesis's stated timeframe MUST equal config.bar_type (Daily != 8-HOUR), and the stated calendar horizons (55-day/20-day) do not match the code's actual (18-day/6.7-day). The timeframe change was deliberate/documented (to escape the daily version's trade starvation), but the submitted strategy is a short-term (~18-day) trend follower, not the medium-horizon one the hypothesis argues has edge. Code is otherwise correct — this is a hypothesis-vs-config axis mismatch, not a bug.
Backtest Review
Clean, hypothesis-consistent discrete single-position implementation with correct inverse-contract sizing; avg_trade_return_pct 3.9% clears the CM floor; no engine artifacts
Backtest Review
Has genuine bear participation (net-short leg) unlike the long-flat sibling
Backtest Review
Structurally unmeasurable: 26 trades over 5.8 years (far below ~100 floor), with ~5 in the last-20% window — the HARD >=10-trade holdout gate is unreachable by construction
Backtest Review
No alpha — it's BTC beta: alpha -0.036 (negative), beta 0.38, benchmark_correlation 0.80, information_ratio -0.88; the developer's own 8H run showed the same null (alpha ~0.003, IR -0.70, corr 0.908)
Backtest Review
Not significant: Sharpe 0.55 with CI [-0.32, 1.36] straddling zero, PSR 0.90 but on 26 trades
Backtest Review
Edge concentrated in one day: 2021-05-17 +42.4% (largest_win $42k) carries much of the record; return_kurtosis 10.2; 2023 -9.3%, max_drawdown 38.7%
Backtest Review
L65 COIN-M directional-OHLCV trend family — same null already recorded on BTC-CM daily Donchian, ETH-CM Donchian and CM dual-EMA siblings; developer pre-registers ABANDON
Iteration History
BtcCmDailyDualDonchianTrendLS
Iteration History
Verification failed (Layer 4 — QA review) [class=no_edge]:
- UNMEASURABLE + NO ALPHA at the specified single-instrument daily frequency (same profile as the BTC/ETH CM daily Donchian and dual-EMA siblings). 26 trades over 5.8 years: the hard holdout gate needs >=10 trades in the last-20% holdout, but ~5 land there, so it cannot pass by construction and optimization dies there. BTC beta, not skill: alpha -0.0249 (negative), IR -0.73, beta 0.38, benchmark_correlation 0.80. Sharpe 0.458 with CI [-0.22, 1.15] straddles zero (below the 0.5 OOS floor). Outlier-driven: largest_win $51,857 vs avg_win $9,989 (~5x), end_unrealized +24.1%, kurtosis 10.9; PF 2.16 and avg_trade 5.37% are tiny-sample artifacts. The short-leg bear participation is real (11 shorts) but creates no alpha.
- Engine-safety goals ARE met and worth recording: discrete single-position (no per-bar rebalance inflation), avg_position_pct 32.5% (<=100%, no over-exposure), no liquidation, correct inverse sizing via contracts_for_notional. The code cleanly avoids the artifacts the hypothesis reacts to — it simply lacks a promotable edge as a single-instrument daily book.
Backtest and paper results are hypothetical. Trading involves risk of loss.