LinkSpot4HDrawdownAccumulationLong
Hypotheses
LINK BINANCE_SPOT 4H N-Bar Drawdown Accumulation Long-Only (Buy-the-Dip on LINK Spot, 3-Parameter, No Stop-Loss)
Hypotheses
A long-only single-instrument accumulation strategy on LINKUSDT.BINANCE_SPOT using 4-HOUR bars and OHLCV-only data. Mechanism: when LINK's current close has dropped >= 20% from its rolling 90-bar (~15-day) high, enter a long spot position. Exit when LINK recovers >= 7% above entry price OR after a hard 240-bar (~40 day) time exit. This applies the sibling-validated drawdown accumulation mechanism (BTC Spot 30-Day Drawdown Accumulation reached PAPER STAGE at Sharpe 3.33) to LINK — a high-volatility, range-bound altcoin where the mechanism should thrive. STRATEGIC RATIONALE: (1) PORTFOLIO QUOTA FILL — BINANCE_SPOT at 10.5% vs ≥15% target. Adds spot exposure while staying in the proven mechanism class. (2) MECHANISM CLASS IS THE STRONGEST PERFORMER THIS SESSION — drawdown accumulation has the BTC sibling at paper Sharpe 3.33 (the highest validated single-asset Sharpe in the factory). Multiple variants are in pipeline (SOL single-asset, 3-Major basket) testing cross-asset transferability. This adds LINK as a NEW asset class for the mechanism, with characteristics structurally favorable for drawdown-mean-reversion: (a) LINK has historically high volatility (60-80% annualized) producing frequent 20% drawdowns, (b) LINK has been range-bound since 2022 (no sustained directional trend) which favors mean-reversion dynamics, (c) LINK has periodic Chainlink-utility-narrative-driven recovery rallies that produce sharp post-drawdown bounces. (3) WHY LINK SPECIFICALLY: avoids BTC (already in paper stage with the mechanism), ETH (ratio decay vs BTC), SOL (already submitted single-asset), BNB (post-2024 moratorium and BNB Spot Drawdown FAILED catastrophically), AVAX (multiple mechanism failures), XRP (Premium MR failure), DOGE (multiple failures including DOGE Daily Breakout + DOGE HL Keltner just failed). LINK has the cleanest 'range-bound major altcoin' profile in 2024-2026. (4) EXPLICIT COUNTER TO ANALYST MECHANISM-CLASS MORATORIUM — the latest DOGE HL Keltner abandon notes recommend 'HARD MORATORIUM on all breakout-class hypotheses for at least 6 months' AND 'Future HL hypotheses should target MEAN-REVERSION OR BASKET strategies'. While this is spot not HL, it directly implements the broader recommendation: NO BREAKOUTS, accumulation/mean-reversion only. (5) ITERATION-SAFE: only 3 hypothesis-declared tunable parameters (drawdown_threshold_pct, lookback_bars, position_pct). NO stop_loss parameter — explicit fix for LINK/ETH iter-2 optimizer-reversal failure. Risk bounded by (a) 20% drawdown entry threshold (buying meaningful weakness), (b) hard 240-bar time exit (NOT tunable), (c) hard 7% recovery target (NOT tunable), (d) 30% position sizing capping single-trade impact. Optimizer cannot push extreme parameter values because both exit mechanisms are hard-coded. (6) FEE MATH EXPLICITLY VIABLE ON SPOT: 0.20% RT spot fees vs viability floor 0.25% per trade. Expected win = 7-15% recovery × 30% position = 2.1-4.5% per winning trade. Net of 0.20% fees = 1.9-4.3% per winner. At 60-70% win rate (typical drawdown-buy in range-bound altcoins during normal regimes): EV ≈ +1.0-2.5% per trade NET, comfortably above 0.25% spot floor. (7) AVOIDS ALL SYSTEM-WIDE FAILURE PATTERNS: NOT breakout-class (system-wide moratorium); NOT funding/premium/OI/skewness (different mechanism class); NOT cross-venue (single venue); NOT BNB (moratorium); NOT BB MR (deprecated); NOT Connors down-day (deprecated). The drawdown accumulation mechanism class is the ONLY mechanism with confirmed paper-stage validation this session.
Hypotheses
Iteration 2 addresses the two QA findings with the smallest possible change; the signal logic, exit rules, sizing and imports that passed Layers 1-3 are untouched. (1) NON-MEASURABLE ENTRY GATE: the failure was caused by the optimized parameters (drawdown_threshold_pct=0.2934, lookback_bars=70), which fire only ~2x/yr. I dry-ran the exact entry/exit rule over LINK's full real 4H spot history from the catalog (16,499 bars, 2019-01 to 2026-07) before submitting: at 0.2934 the rule completes ~46 trades over 7.5 years and only 2 in the last 365 days (matching the sandbox exactly), whereas at 0.18/90 it completes 96 trades (12.7/yr, 10 in the last 365 days, 81% win rate, +2.92% avg gross per trade ≈ +2.7% net of the 0.20% spot round-trip — well above the 0.25% spot floor). So the default is now 0.18, and — critically — the three tunables are CLAMPED IN CODE to a band whose every corner is measurable (dd 0.12-0.20 x lookback 70-120 → 65-131 completed trades, >= 4 in any sandbox year). The optimizer physically cannot reproduce the 2-trade configuration; it can only move toward more trades. The band bounds are locked class constants, exactly like the +7%/240-bar exits, so the tunable count stays at three. (2) CONFIG-vs-TEXT DRIFT: the description above now states the literal runtime parameters (18% / 90 bars / 30%), and the class docstring documents the clamp band and why it exists. Structure is unchanged and still matches the hypothesis (rolling-high drawdown entry, +7% recovery / 240-bar exits, no stop-loss, long-only spot). One deviation stated plainly: the hypothesis text says '>= 20%', but at 20% the mechanism completes 77 trades over 7.5 years — below the ~100-trade reliability floor QA cited — so I set the declared-tunable threshold to 18% (still 'meaningful weakness', 96 trades) and let the optimizer explore 12-20%; the mechanism itself is unchanged.
Hypotheses
Overfit — fails the robustness gates decisively and unwaivably. PBO is 0.8942 (>0.5 hard fail): the 225-trial optimization is far more likely than not fitting noise. Holdout collapses to Sharpe 0.514, just 12.1% of the walk-forward OOS Sharpe (ratio 0.121 << 0.70 hard fail). The headline avg OOS Sharpe of 4.23 is a best-of-N artifact — its three windows are -2.20 / +13.75 / +1.14, where a +13.75 annualized Sharpe on a spot dip-buyer is physically implausible and single-handedly inflates the mean while another window is negative. This is confirmed by deflated_sharpe 0.0, is_significant false, and a Sharpe CI [-0.29, 0.89] straddling zero against expected-max-Sharpe 3.69. Optimization made the strategy worse and edgeless: the selected config returns 25% (down from 85%) at Sharpe 0.276 with NEGATIVE alpha (-0.005) and information_ratio -0.72, i.e. it underperforms simply holding LINK on a risk-adjusted basis. The deliberately stop-less design leaves a fat left tail (avg_loss $4,427 vs avg_win $1,573, largest_loss -$10,993) that structurally caps the Sharpe and cannot be fixed by the only tunable levers (drawdown_threshold/lookback/position). No parameter change can create the robust OOS edge the walk-forward proved absent, so iterate cannot help; and revising the same buy-the-dip accumulation mechanism onto another alt would only overfit again (the near-identical LINK sibling reportedly promoted at Sharpe 9.84 on 47 trades is itself an implausible artifact of this mechanism fit to noisy alt bounces, which this thorough optimization exposed). Buy-the-dip on a single spot altcoin with no stop does not carry a robust, deployable edge.
Implementation
Long-only LINKUSDT.BINANCE_SPOT 4-HOUR drawdown-accumulation strategy. Enters long when the close is >= 18% below its rolling 90-bar (~15-day) high; exits when price recovers >= 7% above the entry price or after a hard 240-bar (~40-day) time exit. No stop-loss. Position sizing is 30% of account equity per trade (capital-relative via get_account_equity()). Exactly three tunable parameters — drawdown_threshold_pct (0.18, clamped in code to 0.12-0.20), lookback_bars (90, clamped to 70-120) and position_pct (0.30, capped at 0.35); the +7% recovery target and 240-bar time exit are locked class constants the optimizer cannot touch. These are the ACTUAL runtime parameters — no drift between this text and the config.
Verification Results
Verification failed (Layer 4 — QA review):
- NON-MEASURABLE ENTRY GATE (L16/L26, checklist #4). The optimized entry requires a 29.3% drawdown (drawdown_threshold_pct=0.2934) from a 70-bar (~11.7-day) rolling high — a rare, deep dislocation. The sandbox produced only 2 trades over 364 days with metrics_reliable=FALSE (PF 0.0, win_rate 1.0 at n=2, skew 6.76, kurtosis 116 — pure noise). The +7% recovery / 240-bar (~40-day) time exit caps entries at ~9/yr structurally and ~2/yr realized. Over LINK's full ~5-6yr spot history this implies only ~10-20 trades total, far below the ~100-trade floor and even the ~30-trade unmeasurable line. The flattering avg_trade_return_pct 7.93% and Sharpe 0.79 are meaningless at n=2 (Sharpe CI [-0.81, 1.95] straddles zero; the engine itself set metrics_reliable=false).
- Config text vs. actual parameters drift: description/rationale say '90-bar', '>=20%', '30% sizing' but the actual params are lookback_bars=70, drawdown_threshold_pct=0.2934 (29.3%), position_pct=0.2518. The code runs the parameters (the deeper 29.3% threshold), which is the direct cause of the 2-trade non-measurability. Structure still matches the hypothesis (drawdown entry, +7%/240-bar exits, no stop) so it is not a structural swap.
Verification Results
Analyst to verify at backtest_review that full-history win rate and avg_loss/avg_win keep avg_trade_return_pct above the 0.25% spot floor across regimes. If LINK lacks BTC's reliable mean-reversion, the uncapped-loser tail dominates and it should be abandoned.
Verification Results
STRUCTURAL INVERTED REWARD:RISK from no-stop + 7%-recovery cap. Winners are capped at +7% (~2.1% of equity on a 30% position) while losers are only time-bounded at 240 bars (~40 days) with NO stop-loss, so a dip that keeps falling realizes a large loss. Sandbox: avg_win $2308 vs avg_loss $6448 (~2.8x) and a catastrophic largest_loss -$11,823 (~-40% adverse move held to the time exit), giving total_return -5.5% and avg_trade_return_pct -1.40% (negative, below the 0.25% spot floor) DESPITE a 67% win rate. Break-even win rate ~74%; the sandbox's 67% loses, while the developer's full-history replay claims 81% (which would clear it). The edge is contingent on LINK's post-drawdown recoveries being as reliable as the paper-stage BTC sibling's — an empirical, regime-dependent question the full backtest must settle.
Verification Results
Judge the edge on the full multi-year backtest (~96 trades / ~12.7/yr), not the 9-trade sandbox; reconcile the offline +2.7% claim against the engine's realized per-trade return.
Verification Results
Sandbox is net-negative but NON-DECISIVE: 9 trades / 364 days, Sharpe -0.33 with CI [-1.95, 1.31] straddling zero, dominated by one tail loser (kurtosis 10.4). Cannot on its own establish no edge. Also a replay-vs-engine discrepancy: dev's offline dry-run claims 81% win / +2.7% net, engine shows 67% / -1.40% — trust the engine; likely the sandbox window caught a LINK downtrend, but reconcile on the full backtest.
Verification Results
Acceptable. Note the clamp tops out at 0.20, so the optimizer cannot reach the literal 20%+ region — intentional to keep every corner measurable.
Verification Results
Hypothesis text says '>= 20%'; shipped default is 18% (clamped 0.12-0.20), stated plainly in the rationale (at 20% only ~77 trades over 7.5yr, below the ~100 floor). Structure unchanged (drawdown entry, +7%/240-bar exits, no stop, long-only spot) — a documented magnitude change to restore measurability, not a swap. Config text and runtime parameters now agree (18%/90/30%), fixing the prior drift.
Backtest Review
avg_trade_return_pct 2.85% — ~11x the spot fee floor; genuine per-trade edge, not fee-fragile
Backtest Review
profit_factor 1.38, expectancy +$896/trade, total_return +85%, positive in 6 of 8 years
Backtest Review
95 trades (measurability fix worked) — adequate sample for meaningful optimization; trades match the hypothesis and the mechanism has a validated BTC sibling
Backtest Review
Sharpe 0.364 with CI [-0.20, 0.95] straddling zero — weak risk-adjusted quality, far from a promotable ~1.5
Backtest Review
Inverted reward:risk from no-stop design: avg_win $4,024 vs avg_loss $12,480 (~3x), largest_loss -$30.9K, kurtosis 38.7 — fat left tail caps achievable Sharpe and isn't tunable
Backtest Review
information_ratio -0.70 and alpha ~0 vs a meaningful buy-hold benchmark — adds little on a beta-adjusted basis
Backtest Review
Recent deterioration (2026 -7.6% YTD, rolling Sharpe fading) — OOS robustness in recent windows is the key risk
Analysis
avg_trade_return_pct 2.38% is well above the spot fee floor (not a fee-edge failure), and sensitivity showed no cliffs
Analysis
Mechanism is implemented cleanly and matches the hypothesis (77-95 long dip-buys, ~13-day holds)
Analysis
PBO 0.8942 (hard fail) — 89% probability the 225-trial selection is overfit
Analysis
Holdout failed: holdout_sharpe 0.514 is only 12.1% of the WF-OOS Sharpe (ratio 0.121 << 0.70)
Analysis
deflated_sharpe 0.0, is_significant false, sharpe_ci_low -0.29 straddling zero — selected Sharpe indistinguishable from best-of-N noise (expected-max 3.69 over 225 trials)
Analysis
WF OOS windows wildly unstable (-2.20 / +13.75 / +1.14) — the +13.75 is an implausible artifact inflating the 4.23 average
Analysis
Optimized config is worse: total_return 25% (from 85%), Sharpe 0.276, NEGATIVE alpha -0.005, information_ratio -0.72 (underperforms buy-hold risk-adjusted)
Analysis
No-stop design retains fat left tail (avg_loss $4,427 vs avg_win $1,573, largest_loss -$10,993) — caps achievable Sharpe, untunable with the 3 locked-band params
Outcome Summary
This strategy tried to extend the factory's strongest mechanism class — spot drawdown accumulation, validated on a BTC sibling at paper Sharpe 3.33 — to LINK, buying deep dips on 4H spot bars and exiting on a fixed recovery or time limit. The initial backtest looked promising on the surface (+85% return, 81% win rate, avg trade return 2.85%, profit factor 1.38), and the analyst approved it for optimization despite a weak Sharpe of 0.36. But the 225-trial optimization exposed the edge as noise: PBO 0.89, a holdout that collapsed to 12% of the walk-forward OOS Sharpe, a deflated Sharpe of 0.0, and OOS windows swinging from -2.20 to +13.75. With optimization actually degrading the strategy to negative alpha and no tunable lever able to fix the untunable stop-less left tail, it was abandoned as overfit after two iterations without ever reaching risk review or paper trading.
Outcome Summary
A high per-trade edge and strong headline return cannot rescue a strategy whose robustness metrics (PBO, holdout ratio, deflated Sharpe) expose the optimization as best-of-N noise fitting; a stop-less design with a fat left tail structurally caps achievable Sharpe and cannot be tuned away by the remaining parameters.
Outcome Summary
The analyst abandoned it after the post-optimization robustness gates failed decisively and unwaivably: PBO 0.8942 (>0.5 hard fail), holdout Sharpe 0.514 at just 12.1% of the walk-forward OOS Sharpe (ratio 0.121 << 0.70), deflated_sharpe 0.0, and wildly unstable OOS windows (-2.20 / +13.75 / +1.14) whose implausible +13.75 spike inflated the 4.23 average.
Outcome Summary
A long-only spot buy-the-dip strategy on LINKUSDT.BINANCE_SPOT (4H bars, OHLCV-only) that entered when LINK fell ≥18-20% from its rolling ~90-bar high and exited on a hard-coded +7% recovery or a 240-bar time exit, porting the paper-stage BTC drawdown-accumulation mechanism to a high-volatility, range-bound altcoin.
Outcome Summary
The initial backtest over 2019-2026 (16,499 bars, 95 trades, 81% win rate) returned +85% with profit factor 1.38 and avg_trade_return_pct 2.85%, but only a weak Sharpe of 0.36 with a CI [-0.20, 0.95] straddling zero. Optimization made it worse: the selected config returned 25% at Sharpe 0.28 with negative alpha (-0.005) and information ratio -0.72, underperforming buy-and-hold on a risk-adjusted basis.
Backtest and paper results are hypothetical. Trading involves risk of loss.