Skip to content

View original

BnbSmartMoneyRetailPositioningDivergenceLS

Hypotheses

BNB Smart-Money vs Retail POSITIONING DIVERGENCE Swing — Long-Short, Single-Instrument: Trade WITH Top-Trader Positioning and AGAINST Crowded Retail Accounts When They Diverge, Price-Turn Confirmed, ATR-Trailed, Held ~1-2 Days (BINANCE BNBUSDT USD-M, 4H Bars, L/S-Ratio-Driven, 3-Parameter)

Hypotheses

A LONG-SHORT, SINGLE-INSTRUMENT swing on BNBUSDT.BINANCE USD-M perpetual whose signal is neither price momentum nor a naive price fade — it is a POSITIONING DIVERGENCE between two distinct order-positioning feeds that both live in the Binance futures metrics (injectable in the sandbox, ~2023-present history): the TOP-TRADER long/short account ratio ('smart money' — larger, better-capitalized accounts) and the GLOBAL long/short account ratio ('retail crowd'). The documented microstructure regularity is that the retail crowd is systematically WRONG at positioning extremes (they get max-short into bottoms and max-long into tops), while top-trader positioning is comparatively informed. The strategy computes a rolling z-score of each ratio and trades the DIVERGENCE: go LONG when top traders are getting longer (top-trader z rising) WHILE retail is getting shorter (global z falling) beyond a threshold; go SHORT on the mirror. It is deliberately single-instrument (so it actually runs end-to-end in the Layer-3 sandbox — unlike the two-leg cross-venue/carry class that dies in verification per L69), it is NOT a directional OHLCV trend clone (0/213 class) and NOT a single-feed crowd fade (the edge is the DISAGREEMENT of two positioning cohorts, with a price-turn confirmation to avoid knife-catching), and it is held ~1-2 days so per-trade capture dwarfs fees (sidesteps the fee graveyard). Only 3 free parameters (z-score lookback window, entry divergence threshold, ATR trailing-stop multiple) to resist overfitting, the #1 killer. It contributes to the under-represented long-short bucket (14.2%) and uses a positioning feed the portfolio has barely touched, on a liquid non-saturated symbol (BNB, distinct from the SOL/BTC/ETH failure cluster).

Hypotheses

Implements the hypothesis as specified — two positioning cohorts, rolling z-scores, divergence entry, price-turn confirmation, ATR trail, ~days hold, 3 free parameters (z_lookback, entry_divergence_z, atr_stop_mult) — with one substitution forced by the data: the top-trader ACCOUNT ratio exists in the metrics mirror for only 2,880 rows (60 usable 4H bars), whereas the top-trader POSITION ratio covers the full 2021-12 to 2026-08 span, so the smart-money cohort is measured position-weighted. That is the same cohort and arguably the better informed-money proxy; both feeds plus the retail global-account ratio come from the metrics mirror, with the short-history dedicated endpoints read as an overlay. Backtested over the full span where the feeds exist (9,033 4H bars): 96 trades (20/yr), mean +1.015% per trade net of the 0.10% round trip, profit factor 1.77, 51% win rate, 3-day median hold, 52 longs / 44 shorts, and every calendar year positive. Two things gave me confidence this is not the exit policy talking: an identical-exit random-entry control returns +0.017% +/- 0.254% over 15 seeds (the rule is ~3.5 sigma above it) and a price-turn-only control returns -0.121%, so neither the trail nor the confirmation is the source. The edge is also threshold-monotone rather than a tuning spike — below 2.6 sigma every combination of lookback and stop is NEGATIVE (thr 2.0: -0.11% to -0.22%), at 2.6-2.8 it turns positive, and at 3.0 it reaches +0.90% — consistent with the premise that only genuinely extreme cohort disagreement is informative. Two caveats the Analyst should weigh: (1) direct forward-return diagnostics on the divergence give rank ICs of only ~0.00-0.05, so the edge lives entirely in the extreme tail rather than across the distribution, and the 96-trade sample sits right at the ~100-trade measurability bar; (2) per-trade capture decays over time (2022 +5.67%, 2023 +0.60%, 2024 +0.32%, 2025 +0.49%, 2026 +0.16%) — still positive every year and above the 0.15% fee floor, but the recent regime is much thinner than the headline average, which walk-forward will expose.

Hypotheses

No measurable edge. Sharpe 0.159 with sharpe_ci_low -0.50 (CI straddles zero), PSR 0.69, and total_return of only 7% over ~6 years — effectively flat. The result is statistically unmeasured: only 73 trades (the positioning feed is ~2023+, ~24 trades/yr, below the 100 tripwire, L10), and what little return exists is carried by 1-2 outlier days (return_kurtosis 90.5; strip 2023-06-08 +6.4% and 2024-07-05 +5.4% and it goes negative). 2025 was negative and rolling Sharpe is deeply negative through 2026; information_ratio -0.76. The code runs correctly, so this is not an iterate — it is a genuine no-edge result, and with base Sharpe ~0 on a 73-trade sample there is nothing to tune toward: optimization would curve-fit the two outlier days and die at holdout. Failure pattern: positioning_divergence_no_edge (Sharpe CI straddles zero, <100 trades, outlier-driven flat return, insufficient feed history).

Implementation

Single-instrument long-short swing on BNBUSDT.BINANCE USD-M 4H bars driven by the disagreement between two Binance futures positioning cohorts: the top-trader long/short ratio ('smart money') and the global account long/short ratio ('retail crowd'). Each ratio is z-scored over a 90-bar (15-day) window and the traded quantity is the 1-day CHANGE in the gap between them: divergence = (smart_z - smart_z[-6]) - (retail_z - retail_z[-6]). The strategy goes LONG when divergence >= 2.8 (top traders adding longs while retail is bailing) and SHORT on the mirror, in both cases only after a price-turn confirmation (the bar must close in the trade's direction) so it joins a turn rather than catching a knife. Exits are a 5x-ATR trailing stop measured from the best price since entry plus a 3-day time cap, giving a ~3-day median hold so the capture dwarfs the ~0.10% round trip. calculate_signal returns the continuous divergence every bar; should_enter thresholds it. Sizing is risk-based (1.5% of equity against the ATR stop distance) with an independent gross-notional cap. All per-bar work is O(1) accumulators over bounded deques and the positioning series is folded once into a bar-bucket dict.

Verification Results

Analyst/optimizer: treat the 2.8 threshold as a cliff, not a plateau. Confirm a stable positive region exists before/around the operating point rather than a single-point spike; if the positive band is only [2.6, 3.0], this is fragile.

Verification Results

The edge is razor-thin and tail-concentrated. Per the developer's own sweep, below 2.6 sigma EVERY lookback/stop combination is NEGATIVE (thr 2.0: -0.11% to -0.22%), it only turns positive at 2.6-2.8, and the default entry_divergence_z is 2.8 — just 0.2 above the sign-flip boundary. Phase-1 sensitivity analysis varies each param +/-20%, so 2.8 x 0.8 = 2.24 lands squarely in the negative region: the strategy sits on a cliff edge and will likely trip the sensitivity/overfitting checks. Rank ICs of the divergence are only ~0.00-0.05, confirming the signal has no cross-distribution content and lives entirely in the extreme tail.

Verification Results

Analyst: this is the decisive question at BACKTEST_REVIEW — decide optimize/abandon on the full multi-year record and walk-forward OOS, not the headline average. If 2025/2026 OOS windows are below the fee floor, abandon before spending the full optimization.

Verification Results

Hard temporal decay plus a borderline sample size. Full-history per-trade capture falls monotonically: 2022 +5.67%, 2023 +0.60%, 2024 +0.32%, 2025 +0.49%, 2026 +0.16% — the recent regime is ~35x thinner than the headline and approaches the 0.15% fee floor. The sandbox year is correspondingly weak: 14 trades, Sharpe 0.09, sharpe_ci_low -1.44 (CI straddles zero heavily), PF 1.156. Full history is ~96 trades (~20/yr), sitting right at the ~100-trade measurability bar (L16). Walk-forward OOS on recent windows will directly expose the decay and likely test the 0.5 OOS-Sharpe floor.

Backtest Review

Genuinely differentiated signal (top-trader vs retail positioning divergence) — not an OHLCV trend clone, not a single-feed price fade

Backtest Review

Runs end-to-end single-instrument with clean fills (0 dropped), low beta (-0.002) — a true diversifier in principle

Backtest Review

avg_trade_return_pct 0.44% clears the futures fee floor

Backtest Review

Sharpe 0.159 with sharpe_ci_low -0.50 — CI straddles zero, no measurable edge; PSR 0.69 far below significance

Backtest Review

Only 73 trades over the sample (positioning feed limited to ~2023+, ~24 trades/yr) — below the 100 tripwire, statistically unmeasured

Backtest Review

total_return 7% over ~6 years is effectively flat, and return_kurtosis 90.5 means it is carried by 1-2 outlier days — strip them and it is negative

Backtest Review

2025 negative, rolling Sharpe deeply negative through 2026; information_ratio -0.76

Backtest Review

No parameter/sizing change fixes a signal whose base Sharpe is ~0 on a 73-trade sample

Outcome Summary

BnbSmartMoneyRetailPositioningDivergenceLS traded the disagreement between Binance's top-trader and retail long/short account ratios — going with informed positioning and against the crowd when they diverged, price-turn confirmed and ATR-trailed — deliberately single-instrument to run end-to-end and on BNB to escape the SOL/BTC/ETH failure cluster. It ran cleanly and was truly market-neutral (beta -0.002), but had no edge: Sharpe 0.159 with a CI straddling zero, a flat 7% over six years carried by two outlier days, a negative information ratio, and only 73 trades because the positioning feed only starts around 2023. The analyst abandoned it on the first iteration at the backtest_review gate as the positioning_divergence_no_edge pattern — unmeasured, outlier-driven, and untunable. It never advanced to optimization, analysis, or risk review.

Outcome Summary

A genuinely differentiated positioning-divergence signal is still worthless if the supplementary feed's short history (~2023+) leaves only ~73 trades and the flat return depends on one or two outlier days — a Sharpe CI straddling zero on a sub-100-trade sample is unmeasured, not merely weak, and no parameter or sizing change can create an edge that the data cannot even establish.

Outcome Summary

It was abandoned at the pre-optimization backtest_review gate on iteration 1 as a no-edge result: the Sharpe CI straddles zero on a statistically unmeasured 73-trade sample (below the 100-trade tripwire due to the limited positioning-feed history), the flat return is carried by two outlier days, and with a base Sharpe near zero there is nothing to tune toward — optimization would curve-fit the outliers and die at holdout. The code ran correctly, so this was not an iterate.

Outcome Summary

A long-short, single-instrument swing on BNBUSDT.BINANCE USD-M (4H bars) that trades a positioning divergence between two Binance futures cohorts — the top-trader ('smart money') and global ('retail') long/short account ratios — z-scoring each and going long when top traders get longer while retail gets shorter (and short on the mirror), with a price-turn confirmation, ATR trailing stop, and ~1-2 day holds, using three parameters (z lookback, entry divergence threshold, ATR stop multiple).

Outcome Summary

The backtest showed no measurable edge: Sharpe 0.159 (CI low -0.50, straddling zero), total_return 7% over ~6 years (effectively flat), profit_factor 1.28, avg_trade_return_pct 0.44%, PSR 0.69, and information_ratio -0.76 over only 73 trades. The positioning feed's ~2023+ history capped it at ~24 trades/yr (below the 100-trade tripwire), the small return was carried by 1-2 outlier days (kurtosis 90.5 — stripping 2023-06-08 +6.4% and 2024-07-05 +5.4% turns it negative), 2025 was negative, and rolling Sharpe was deeply negative through 2026, though it was genuinely market-neutral (beta -0.002).
Strategy report

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