Skip to content

View original

SolSpotBollingerAdaptiveGridMeanReversionLong

Hypotheses

SOL Binance Spot Long-Only Bollinger-Anchored Adaptive-Grid Mean Reversion (Trend-Off Activation Gate, Volatility-Adaptive Spacing)

Hypotheses

Grid trading mechanism on SOLUSDT.BINANCE_SPOT — a NEW mechanism class for the portfolio (zero grid strategies currently). Refines the user's submitted idea ('develop grid trading for spot and futures') into a viable hypothesis by addressing the three classical failure modes of naive retail grid bots: (1) Strong trends eat through all grid levels without recovery — solved by a TREND-OFF ACTIVATION GATE that disables the grid when |20-day SMA slope| > 0.5%/day, so the strategy only operates in genuinely ranging regimes; (2) Static price grids become irrelevant as long-term price drifts — solved by anchoring the grid to a ROLLING 20-day Bollinger Band (±2σ) that auto-adapts to the current price level; (3) Tiny grid spacing gets fee-dominated — solved by VOLATILITY-ADAPTIVE spacing (1.5 × 1-hour ATR per level) which guarantees each grid level captures movement well above the 0.30% RT spot fee floor. Spot venue chosen deliberately: spot grids accumulate the underlying (no liquidation risk if regime breaks), unlike futures grids which can blow up in trends. Long-only because Binance Spot CASH accounts cannot short. Targets the under-represented BINANCE_SPOT bucket (8.0% vs >=15% quota target). SOL chosen for its empirical range-bound behavior in 2025-2026 (~$100-200 oscillations) combined with deep spot liquidity. Avoids every documented session failure mode: not a classical chart pattern (it's market-making style), not supplementary-data dependent, not ratio mean-reversion, not breadth-gated, not vol-expansion late-entry (the WHOLE POINT is to operate in low-vol regimes — opposite philosophy). Fee-resilient by design: 1.5× ATR spacing on SOL ~$3 ≈ 2% per grid step, ~6-7x the round-trip spot fee. 4 core parameters keeps overfitting risk low.

Hypotheses

Iteration 2 addresses the analyst's pre-optimization backtest_review (commission was 9.81% of gross from grid churn) with the smallest set of targeted changes, all inside calculate_signal, leaving the inert-hook architecture, manual order management, and frozen-signal proxy intact. (1) REDUCE CHURN/FEES: trims now require close >= avg_entry_cost * (1 + min_profit_pct=0.6%), well above the ~0.20% spot round-trip fee, so no round-trip closes at a loss and boundary flip-flop is eliminated; grid spacing widened from 1.5x to 2.5x ATR so each step is larger relative to fees. (2) VERIFY THE TREND-OFF GATE: flatten now triggers only on a STRONG DOWNTREND (basis slope < -slope_threshold) to stop the bleed, while uptrends hold inventory and trim into strength instead of dumping at bad prices (the prior unconditional flatten was a source of the 'lost despite gate' trend losses). (3) NO FALLING KNIFE: buys now require both a ranging regime AND a bounce (close > prior close) above the lower band, so the grid accumulates on recoveries rather than into a continuing drop. Venue, timeframe, leverage (1.0, spot CASH), and the core 4-parameter design are unchanged; only churn/fee economics and entry timing were tightened. Layer-1/2 remain green (imports unchanged, signal still returns a continuous bar-varying proxy).

Hypotheses

Both near-inert as a grid AND money-losing when active, on iteration 2, with a structural conflict tuning can't resolve. (1) NEAR-INERT: only 25 trades over ~6 years (12,677 4H bars, exposure 7.4%) -- the stacked activation gates (|slope|<=0.5%/day ranging-only AND bounce AND below-basis AND above-lower-band AND spacing) almost never align, so the grid's high-churn spread-capture premise never gets to express; a grid producing 25 fills in 6 years is broken-by-overgating. (2) MONEY-LOSING WHEN IT FIRES: profit_factor 0.499 (loses ~2x what it makes), win_rate 0.40, avg_loss 1765 > avg_win 1322 -- the OPPOSITE of a working grid, which needs a high win-rate capturing small spreads. Sharpe -4.09, Sortino -6.32, expectancy -530, total_return -13.25%, negative in 5 of 7 years (2020-2024 all red). (3) STRUCTURAL TENSION (not parameter-fixable): the trend-off design sells all inventory at a LOSS on strong downtrends (crystallizing drawdowns -- a PF-killer), while removing that flatten would reintroduce the exact 'trend eats through all grid levels' failure the hypothesis claimed to solve; the trim-at-+0.6% vs flatten-at-loss asymmetry guarantees PF<1. On a trendy asset like SOL a long-only spot grid can only flatten-low or get trend-eaten, and the developer already spent iteration 2 on churn/fee control with the result still inert + losing. Not iterate (loosening gates just yields more of the trades that already lose money). The user's broad 'develop grid trading' directive is NOT killed by retiring this instance -- the Research Lead can reframe the grid family onto a genuinely range-bound instrument or a properly risk-managed futures grid. FAILURE PATTERN: long-only spot grid / market-making on a trendy major (SOL) is caught between selling inventory low on the trend-off flatten (PF 0.50) and being trend-eaten without it; over-gating to avoid trends makes it near-inert (25 trades/6yr), and the trades it does make lose -- the mean-reversion spread edge does not exist on a trending crypto major in long-only-spot form.

Implementation

Long-only Bollinger-anchored adaptive grid (market-making style) on SOLUSDT.BINANCE_SPOT 4H bars, OHLCV-only. The grid accumulates only in a ranging regime (|20-day SMA slope| <= 0.5%/day), is bounded by a rolling 120-bar Bollinger Band (+/-2sigma), and spaces levels at 2.5x ATR. It BUYS one unit on a bounce (close > prior close) each time price drops a spacing below the last fill while below the basis and above the lower band; it TRIMS one unit when price rises a spacing above the last fill AND clears the position's average cost by 0.6% (net-of-fee margin) so every completed round-trip is reliably profitable. On a strong downtrend (slope < -0.5%/day) it flattens all inventory; in an uptrend it holds and trims winners into strength. Spot CASH account: long-only, no liquidation risk, leverage 1.0.

Backtest Review

New mechanism class for the portfolio (first grid; addresses the user's 'develop grid trading' directive) with thoughtful anti-failure design intent (trend gate, Bollinger anchoring, ATR-adaptive spacing)

Backtest Review

Sizing/venue are clean: spot CASH long-only leverage 1.0, exposure_pct 7.4%, no over-exposure artifact; metrics_reliable=true

Backtest Review

Near-inert as a GRID: only 25 trades over ~6 years (12,677 4H bars) -- the stacked gates (ranging-only + bounce + below-basis + above-lower-band + spacing) almost never align, defeating the high-churn premise of grid trading

Backtest Review

Money-losing when active: profit_factor 0.499, win_rate 0.40, avg_loss 1765 > avg_win 1322, Sharpe -4.09 (CI -10.99 to 2.09), Sortino -6.32, expectancy -530, total_return -13.25%, negative in 5 of 7 years

Backtest Review

Structural conflict unfixable by tuning: downtrend-flatten sells inventory at a loss (PF-killer) while removing it reintroduces the 'trend eats the grid' failure; long-only spot grid on a trendy asset (SOL) is caught between these. Already on iteration 2.

Backtest Review

high (grid)

Backtest Review

hundreds+ (grid churn)

Analysis

Do NOT optimize yet — the backtest is net-losing primarily due to fee drag (commission 9.81% of gross), and the grid is churning more than its stated 1.5xATR design. Fixes before optimization: (1) REDUCE CHURN/FEES — widen effective spacing and add hysteresis so a BUY fill and its paired SELL are separated by enough that each completed round-trip clears the ~0.20% spot RT fee with margin (the design claims ~2%/step but the 9.81% fee share shows fills are far tighter or flip-flopping near the boundary). Track per-round-trip net-of-fee PnL and confirm it's reliably positive. (2) VERIFY THE TREND-OFF GATE — 2022-2024 lost despite the gate; check the slope_threshold/slope_lookback actually flatten inventory before SOL's big trends (the recent 2025-2026 ranging regime was positive, so the gate works there but not in trends). (3) Confirm the grid isn't buying into a falling knife within the band (down-trend that passes the daily-slope gate but keeps dropping). Re-run the initial backtest; if profit factor clears ~1.1 net of fees with the churn reduced, resubmit for optimization. If it still can't beat fees after widening spacing, abandon — grid MR on a high-beta trending alt may be structurally fee-dominated.

Outcome Summary

This strategy tried to introduce the portfolio's first grid mechanism: a long-only, Bollinger-anchored, ATR-spaced mean-reversion grid on SOL spot, gated to operate only in ranging regimes to dodge the textbook grid failure of trends consuming every level. In practice the stacked entry gates (ranging-only + bounce + below-basis + above-lower-band + spacing) almost never aligned, yielding just 25 trades over six years, and the trades it did make lost money — profit factor 0.499, Sharpe -4.09, total return -13.25%, negative in five of seven years. The analyst abandoned it at the backtest-review gate on its second iteration, identifying an unfixable structural tension: flattening on downtrends crystallizes losses while not flattening reintroduces trend risk. It was retired before optimization, analyst, or risk review, though the broader 'develop grid trading' directive remains open for a genuinely range-bound instrument or a risk-managed futures variant.

Outcome Summary

A long-only spot grid on a trendy major like SOL is structurally trapped — it either flattens inventory at a loss on the trend-off gate (PF<1) or gets trend-eaten without it, and over-gating to avoid trends makes it fire too rarely to express any edge.

Outcome Summary

The backtest-review analyst issued an 'abandon' verdict at the pre-optimization gate, finding it both near-inert as a grid (25 fills in 6 years from over-stacked activation gates) and money-losing when active, so it never reached optimization or risk review.

Outcome Summary

A long-only Bollinger-anchored, ATR-spaced adaptive grid on SOLUSDT Binance spot that aimed to capture mean-reversion spreads only in ranging regimes, using a 20-day SMA slope trend-off gate to avoid the classic grid failure of trends eating through all levels.

Outcome Summary

Over ~6 years (12,677 4H bars) it produced only 25 trades with a total return of -13.25%, Sharpe -4.09, Sortino -6.32, profit factor 0.499 and a 0.40 win rate (avg loss 1,765 > avg win 1,322), negative in 5 of 7 years.
Strategy report

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