SpotAggressiveFlowAccumulationTrendBasketLong
Hypotheses
Aggressive-Flow Accumulation Trend Basket, Long-Only Spot Majors (5 BINANCE_SPOT Majors: BTC/ETH/SOL/BNB/AVAX, Daily Bars, Hold Each Name While Perp CUMULATIVE TAKER-BUY FLOW Is Net-Positive and Trend Confirms = Persistent Informed Accumulation, Rotate to Cash on Net Distribution, Low-Turnover, 3-Parameter)
Hypotheses
A LONG-ONLY, low-turnover SPOT basket over five liquid BINANCE_SPOT majors (BTC/ETH/SOL/BNB/AVAX) that holds each name while AGGRESSIVE ORDER FLOW is persistently accumulating and steps to cash when flow turns to distribution. The signal is a smoothed CUMULATIVE TAKER-BUY DELTA from the multi-year perp metrics feed (takerBuyVolume minus takerSellVolume, normalized) — an 'accumulation/distribution' line built from who is lifting offers vs hitting bids. This deliberately aligns WITH persistent flow (a trend/persistence framing), which is the opposite of the fade/reversal mechanisms that have died repeatedly this session (OI-surge fade, premium dislocation, trap/flush reversals all lost money or never fired). It is NOT any dead/in-pipeline family: NOT a single-bar flow FADE (the in-pipeline BNB taker-absorption trades reversals; this rides sustained accumulation over days), NOT funding-CARRY (L33 — no coupon), NOT cross-sectional momentum ROTATION (no return ranking and no top-K selection; every name with net-positive flow + healthy trend is held, weighted equally — L32's exhausted rank-and-rotate mechanism is absent), NOT a rare-event trigger (flow regime is a continuous state that keeps a measurable number of names invested, avoiding the no_trades death that just killed the premium-dislocation and washout ideas), NOT options (no trade-count wall), and NOT liquidation-feed dependent. Long-only spot (CASH account) is structurally immune to the account-blowup liquidations that killed the leveraged single-name fades. Fills the under-represented BINANCE_SPOT venue and near-empty macro/long-horizon buckets; low turnover + multi-week holds make the ~0.20% spot round-trip negligible.
Hypotheses
Implements the persistent-accumulation edge: a smoothed cumulative taker-buy delta is an accumulation/distribution line built from who is lifting offers vs hitting bids, and staying long while it is net-positive (with trend confirmation) rides sustained informed buying. This deliberately aligns WITH persistent flow, the opposite polarity of the single-bar flow FADES and reversals that repeatedly died this session (OI-surge fade, premium dislocation, trap/flush/absorption reversals). It is not any dead/in-pipeline family: not a flow fade (the in-pipeline BNB taker-absorption trades reversals; this rides multi-day accumulation), not funding carry (no coupon), not cross-sectional rotation (no return ranking and no top-K; every name with net-positive flow + healthy trend is held equally, so L32's rank-and-rotate is absent), not a rare-event trigger (flow regime is a continuous state that keeps a measurable number of names invested, avoiding the no_trades death that killed the premium-dislocation and washout ideas), not options, not liquidation-fed, and long-only spot (CASH, leverage 1.0) is structurally immune to the account-blowup liquidations that killed the leveraged single-name fades. Data engineering follows the lessons from the washout/leverage-cycle iterations: the flow signal is PER-NAME using the symbol-tagged metrics taker ratio (grouped into per-symbol series with a BTC-market fallback if a name's own rows aren't injected), so each name toggles independently and the strategy does not depend on any single sparse market-wide event; per lesson L5 the trigger is a smoothed delta compared to a small threshold rather than a raw absolute volume level, and the delta is bounded in (-1,1) so it is scale-invariant across names and regimes. The flow gate is mandatory (missing ratio -> no sample -> unconfirmed -> CASH) so the strategy tests the flow hypothesis rather than degrading to price-only trend following, and there is no look-ahead (ratio read at/before the daily close, nearest-preceding with a staleness guard). Execution reuses the deployed multi-instrument machinery (own daily buffers, on_bar override off the BTC clock, true-NAV _portfolio_value marking, exits-before-entries) so equal-weight sizing keeps gross <= 0.95x with no negative-cash path. Because the regime is continuous and smoothed, turnover is low and holds run multi-week, so the ~0.20% spot round-trip is negligible against the multi-ten-percent moves captured, and five names cycling through accumulation phases give a measurable trade count. Kept to exactly 3 tuned parameters (flow_smooth, flow_thresh, trend_len) to resist overfitting; gross, staleness, and the universe are fixed structural choices."
}
Hypotheses
Overfit — failed the robustness gates decisively and unwaivably. Walk-forward flags is_overfitted=TRUE with IS Sharpe 8.998 collapsing to OOS Sharpe -1.204 (windows 0.23, -3.84, 0.0), OOS <= 0, and PBO 0.6349 > 0.5. Deflated Sharpe is 0.0 with the Sharpe CI [-0.06, 0.97] straddling zero: over 225 trials (expected-max Sharpe 6.94, individual trial Sharpes up to 12.0 — implausible for a daily long-only spot basket) the selected config is indistinguishable from best-of-N noise. The full-sample 129% return is an artifact of ~4 concentration days (skew 1.8, kurtosis 28), not a persistent aggressive-flow edge — which is why the signal earns a negative Sharpe out-of-sample. The taker-flow accumulation-basket mechanism does not generalize (its near-siblings were all abandoned for overfit/no_trades/fee_edge), the sensitivity grid offers no stable parameter region to tune toward (gross_exposure is a cliff), and the developer can only change parameters — it cannot manufacture the OOS edge the walk-forward proved absent. No articulable improvement path, so abandon rather than spend the final iteration re-overfitting the same signal.
Implementation
Long-only, low-turnover spot basket over five liquid Binance SPOT majors (BTC/ETH/SOL/BNB/AVAX), daily bars, that holds each name while aggressive perp taker flow is persistently accumulating. For each name it derives a normalized taker delta = (buy-sell)/(buy+sell) from the symbol-tagged perp taker buy/sell ratio (Binance Vision metrics taker_long_short_vol_ratio, with a BTC-market fallback), smooths it over flow_smooth=10 days into an accumulation line, and OWNS the coin (equal-weight spot slice) when that smoothed flow is net-positive (>= flow_thresh=0.02) AND the trend is healthy (close > SMA(trend_len=50)). It rotates a name to CASH when flow turns to net distribution or the trend breaks. Continuous flow regime keeps a measurable set of names invested with multi-week holds; all qualifying names are held equally (absolute per-name test, no ranking/top-K). Equal-weight slices are sized off true CASH equity so gross <= 0.95x (no leverage). 3 tuned params (flow_smooth, flow_thresh, trend_len).
Verification Results
Analyst to decide iterate/abandon. The persistence framing (hold WITH positive flow + trend) is the intended opposite of the fade family, so a negative result is a real read of the edge, not a fixable code bug.
Verification Results
Sandbox is a net loser with a genuinely negative signal: total_return -10.16%, Sharpe -0.79 (CI [-2.30, 0.83]), profit_factor 0.51, win_rate 0.34, avg_trade_return_pct -0.78% over 47 all-long trades. avg_win ($601) ≈ avg_loss ($604) with a 34% hit rate → negative expectancy: the accumulation-line + trend gate did not predict forward returns for these five majors over this 362-day window. This is a PERFORMANCE/edge outcome, not a code defect — polarity is correct and none of the code-defect signatures (win_rate 0, |Sharpe|>5, PF 0) are present. It is the analyst's abandon/iterate decision at BACKTEST_REVIEW.
Verification Results
Analyst should confirm the full-window trade count before treating the negative edge as conclusive.
Verification Results
Total trades = 47 over 362 days is below the ~100-trade measurability floor, so the negative edge estimate carries wide error (Sharpe CI spans zero). This is inherent to the low-turnover design (5-name daily basket, multi-week holds, turnover 11.5) and should scale on a multi-year full-window backtest. metrics_reliable=true.
Backtest Review
avg_trade_return_pct 1.60% dwarfs the 0.25% spot fee floor across 304 well-sampled trades — broad-based per-trade edge.
Backtest Review
profit_factor 1.32, positive expectancy (+$260/trade), max_drawdown 38.1% under the 50% floor, calmar 2.08.
Backtest Review
Profitable in 4 of the last 5 years across bull/chop (2021 +18%, 2023 +27%, 2024 +31%, 2025 +26%) — not single-regime.
Backtest Review
Healthy trend-following asymmetry (win 38.5%, avg_win 2.1x avg_loss, right-skew +1.16) rather than an inverted-RR fade; differentiated WITH-trend flow mechanism, the family with the one live survivor.
Backtest Review
Realized headline, capacity $73M, low turnover, avg_position 19% leaves room to scale.
Backtest Review
Sharpe only 0.34 with CI [-0.20, 0.90] straddling zero — risk-adjusted edge not yet significant.
Backtest Review
information_ratio -0.73 — underperforms equal-weight buy-and-hold of the same basket.
Backtest Review
Right-tail dependence: outlier up-days (+46.9%, +36%, +20%) should be verified in walk-forward — if the edge concentrates in a few days it will fail OOS/holdout/DSR.
Backtest Review
2022 -21% and partial-2026 -10% show real drawdown exposure when flow/trend regime flips.
Analysis
Structurally sound execution: long-only spot (no liquidation risk), well-sampled (304→319 trades), realistic capacity ($73–159M), avg_trade_return_pct 1.6–2.0% clears the spot fee floor easily
Analysis
Full-sample optimized metrics look superficially fine (total_return 129%, PF 1.51, max_dd 30.6%)
Analysis
Walk-forward overfit: IS Sharpe 8.998 vs OOS Sharpe -1.204 (is_overfitted=TRUE) — a ~10pt collapse
Analysis
OOS Sharpe -1.204 <= 0: the selected config loses out-of-sample (windows 0.23, -3.84, 0.0)
Analysis
PBO 0.6349 > 0.5: parameter selection is more likely than not overfit
Analysis
Deflated Sharpe 0.0, is_significant=false, Sharpe CI [-0.06, 0.97] straddles zero — selected Sharpe indistinguishable from best-of-N noise across 225 trials (expected-max 6.94, trial Sharpes up to 12.0 — implausible for a daily spot basket)
Analysis
Headline return is carried by ~4 monster days (skew 1.8, kurtosis 28); no persistent flow edge remains once those are removed
Analysis
Holdout Sharpe 0.037 is effectively zero — 'passed' only because the WF OOS bar it is measured against is itself negative
Analysis
Sensitivity shows no stable region (Sharpe 0.58→2.47) with gross_exposure flagged a cliff
Analysis
Sibling accumulation/flow-basket hypotheses have all been abandoned (overfit/no_trades/fee_edge/verification_loop)
Outcome Summary
This strategy rode persistent aggressive taker-buy flow, holding trending spot majors while a smoothed accumulation line stayed net-positive and stepping to cash on distribution — a with-trend framing deliberately opposite to the fades that had died all session. It was the only strategy here to clear backtest review (avg_trade_return_pct 1.60%, PF 1.32, profitable in 4 of 5 recent years) and enter the full 3-phase optimization, though even then Sharpe was a marginal 0.34 with a CI straddling zero and a negative information ratio. Optimization then broke it decisively: in-sample Sharpe 8.998 collapsed to OOS -1.204, PBO hit 0.635, deflated Sharpe was 0.0, and the flattering 129% return was traced to roughly four outlier days rather than a durable edge. The analyst abandoned it at the analyzing stage as unwaivably overfit — with no stable parameter region (gross_exposure flagged as a cliff) and every sibling flow-basket already dead, there was no path to manufacture the missing out-of-sample edge.
Outcome Summary
A respectable full-sample backtest can still be best-of-N noise — when headline returns concentrate in a handful of outlier days, walk-forward OOS collapse, high PBO, and a zero deflated Sharpe expose that there is no generalizable edge, and no parameter change can manufacture the out-of-sample signal that the robustness gates proved absent.
Outcome Summary
Uniquely among these strategies it passed backtest review and ran the full optimization, but the analyst abandoned it at the post-optimization ANALYZING stage for overfitting: OOS Sharpe was negative (windows 0.23, -3.84, 0.0), PBO 0.635 exceeded 0.5, deflated Sharpe was 0.0 across 225 trials (with implausible trial Sharpes up to 12.0), and the 129% full-sample return proved to be an artifact of ~4 monster days (skew 1.8, kurtosis 28) rather than a persistent flow edge.
Outcome Summary
A long-only, low-turnover spot basket over five BINANCE_SPOT majors (BTC/ETH/SOL/BNB/AVAX) on daily bars that held each coin while a smoothed cumulative perp taker-buy delta (aggressive-flow accumulation line) stayed net-positive and the trend confirmed, rotating to cash on net distribution — riding persistent informed accumulation rather than fading it.
Outcome Summary
On the full-sample backtest it looked promising — 304 trades, avg_trade_return_pct 1.60% (well above the 0.25% spot fee floor), profit factor 1.32, total return 78.8%, max drawdown 38.1%, and profitability in 4 of the last 5 years — but Sharpe was only 0.34 with a CI [-0.20, 0.90] straddling zero and information ratio -0.73 (worse than buy-and-hold). This earned an 'optimize' verdict, but the 3-phase optimization then failed decisively: walk-forward flagged is_overfitted=TRUE with in-sample Sharpe 8.998 collapsing to OOS Sharpe -1.204, PBO 0.635, and deflated Sharpe 0.0.
Backtest and paper results are hypothetical. Trading involves risk of loss.