Strategies
RESEARCH DIRECTIVE — Design Space Empirically Exhausted; PAUSE New Single-Name/Order-Flow/Basket Generation and Redirect Engineering to Unlock New Data Feeds (No New Signal Is Fee-Viable on Current Data)
Outcome: Abandoned
MultiDaySwingOrderFlowLS
Implementation is now genuine taker-flow (metrics proxy) rather than the OHLCV mislabel; timeout-safe O(log n); direction-balanced (224 long / 227 short) so the result is a real no-edge read, not a skew artifact
Hypothesis
Implementation
Single-instrument long-short multi-day swing on REAL taker flow (ETHUSDT.BINANCE, 4-HOUR). Each bar's taker buy/sell imbalance is read from the wired Binance-futures `metrics` feed (aggTrades-derived taker ratio, reduced to (R-1)/(R+1)); it is accumulated over a multi-day lookback and z-scored against its own rolling history. Persistently above-baseline aggressive BUYING (z >= entry_z) flags demand-driven accumulation -> LONG; persistently below-baseline (net selling) flags distribution -> SHORT. Holds the swing for days; exits on flow reversal through the exit-z, a max-hold cap, take-profit, or stop-loss. No leverage.
Verification Results
CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.
Backtest Review
- Sharpe
- 0.38
- Total return
- 86.03%
- Max drawdown
- 26.61%
- Trades
- 451
- Win rate
- 46.8%
- Profit factor
- 1.14
Implementation is now genuine taker-flow (metrics proxy) rather than the OHLCV mislabel; timeout-safe O(log n); direction-balanced (224 long / 227 short) so the result is a real no-edge read, not a skew artifact
L37 no-op RESEARCH DIRECTIVE / abstention meta-title — not a tradeable hypothesis; abandon at first review, never iterate
No significant edge: Sharpe 0.38 (CI [-0.40, 1.19] straddling zero), profit_factor 1.14 (below the 1.2 meaningful-edge line), information_ratio -0.80 (underperforms buy-and-hold)
+86% headline carried by 2022 (+66.2%); 2024 -16.1%, rolling Sharpe swings +8→-9; max_drawdown 26.6% (CI to 61%)
L73 single-perp taker-metrics-proxy family, established edge-dead in both fade and continuation orientations; the deep aggTrades feed is un-wired
Both the Research Lead's directive and the developer's docstring explicitly recommend ABANDON
Iteration History
Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['exit_z', 'entry_z', 'z_window', 'stop_loss', 'take_profit', 'flow_lookback', 'max_hold_bars', 'position_frac'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: MultiDaySwingOrderFlowLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735694520000) - steady_downtrend: TypeError: MultiDaySwingOrderFlowLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735694520000) - flat_ranging: TypeError: MultiDaySwingOrderFlowLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735694520000) - volatility_spike: TypeError: MultiDaySwingOrderFlowLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735694520000) - zero_volume: TypeError: MultiDaySwingOrderFlowLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735694520000) - price_gap: TypeError: MultiDaySwingOrderFlowLS._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735694520000)
Backtest and paper results are hypothetical. Trading involves risk of loss.