Skip to content

View original

SolTradeIntensityImpulseContinuationLS

Hypotheses

SOL USD-M Trade-Intensity Impulse Continuation, Long-Short (Single-Instrument BINANCE Perp, 1m Trade Ticks Aggregated to a 5m Decision Clock + TRADE-ARRIVAL-RATE Burst Detector, Ride Order-Flow Bursts for a Short Continuation, 3-Parameter)

Hypotheses

A LONG-SHORT, single-instrument, short-horizon MICROSTRUCTURE MOMENTUM strategy on SOLUSDT.BINANCE (USD-M perp) that abandons the carry family entirely and instead trades order-flow IMPULSE CONTINUATION off the trade-tick feed. Core non-price dependency: the TRADE ARRIVAL RATE (trades/second and aggregate taker volume) from the multi-year aggTrades/trade-tick feed — NOT OHLCV bars and NOT funding/OI. Mechanism: crypto perps exhibit self-exciting order flow — when aggressive market-order arrivals spike far above their recent baseline (a liquidation cascade, a news-driven sweep, or a stop-run), the resulting price impulse tends to CONTINUE for a short window as the burst propagates and momentum traders pile in, before liquidity refills. The strategy detects a burst (trade-arrival-rate z-score over baseline) that is directionally one-sided (taker-buy-dominant or taker-sell-dominant) and enters IN THE DIRECTION of the burst, holding for a short, hard-time-boxed continuation window. This is deliberately the OPPOSITE sign of the three intraday-REVERSION ideas already queued this session (taker-flow exhaustion fade, perp-index basis fade, ETH/BTC ratio fade) — those fade extremes; this rides fresh impulses — so it diversifies the book's mechanism exposure. It is NOT a bar-breakout (the trigger is the flow-intensity burst, not a price level, so it sidesteps the OHLCV-breakout graveyard L30), NOT liquidation-feed-dependent (uses trade-intensity as the burst proxy, dodging the ~90-day liquidations-feed wall), and NOT a cross-sectional ranker (single instrument, no ranking key to mis-implement). Fills three under-represented buckets: short horizon (8.1% vs >=10% target), long-short direction (14.4%), and a genuine trade-tick microstructure mechanism the bar-heavy portfolio lacks. 3 parameters (burst z-threshold, directional-imbalance threshold, hold/time-stop length) to fight overfit. Fee viability: entries are gated to STRONG bursts (arrival-rate z >= 3) whose historical continuation over the hold window exceeds ~0.30% — clearing the ~0.10% USD-M round trip ~3x — and the burst gate throttles frequency to a handful of trades/day, not the hundreds that would bleed fees.

Hypotheses

The QA block is fixed: should_enter now enters WITH the dominant taker side, the class is renamed to ...ContinuationLS, and the docstring no longer describes a fade. The code once again tests the hypothesis as written. I then ran the check QA demanded before any resurrection ('must show net-of-fee per-trade edge above ~0.15% first') against 7,544,976 real SOLUSDT trade ticks over 30 contiguous days (8,640 five-minute windows), computing the average signed forward return in the burst direction across 12 gate/horizon combinations. Continuation's best gross cell is +0.028% (z>=2.5, H=12) and at the hypothesis's own z>=3 gate it is +0.003% at 10 minutes and NEGATIVE at 20/40/60 minutes (-0.011%, -0.052%, -0.060%). Net of the 0.10% USD-M round trip, all twelve cells are negative, best -0.072%. The hypothesis asserted continuation of '~0.30% ... clearing the round trip ~3x'; the measured value is about a tenth of that and the wrong sign at the stated threshold. I set the shipped parameters to the least-bad measured configuration (z>=3, H=2, cooldown widened 3->12 bars to attack the turnover-605 / commission-101.5%-of-gross finding) and added _param_bounds, but I want to be straight rather than dress this up: no parameter choice in the space I scanned makes it viable, and the fade sign QA banned is also net-negative everywhere except one break-even cell on 160 observations. That is why the recommendation below is abandon.

Hypotheses

Negative expectancy on a reliable 176-trade sample: avg_trade_return_pct -0.027% (below ZERO, well under the 0.15% USD-M fee floor), profit_factor 0.086, total_return -22.7%, Sharpe -1.26 (CI [-2.17,-1.10] fully negative). The trades correctly implement the hypothesis (enter WITH the burst on z>=3 one-sided taker flow), so this is a fair test of the self-exciting-continuation premise — and the premise is measurably absent: the developer's own direct measurement over 7.5M real SOL ticks shows the best continuation cell is +0.028% gross (~1/10 of the claimed 0.30%) and negative net of fees at every horizon, negative for all horizons beyond 10 min at the z>=3 gate. There is no positive gross edge for the low fee to rescue and no parameter region to tune toward (the 3 params cannot invert a gross-negative signal), so optimization is not worthwhile. abandon_class=premise_falsified.

Implementation

Long-short microstructure strategy on SOLUSDT.BINANCE USD-M perpetual, decision clock on 5-minute bars, signal from the trade-tick feed. Each window accumulates the trade arrival rate (trades/second) and the taker buy-vs-sell USD-volume imbalance. When the arrival rate spikes at least burst_z_threshold standard deviations above its own trailing 24-window baseline AND the flow is one-sided beyond imbalance_threshold, the strategy enters IN THE DIRECTION of the burst — long a taker-buy-dominant burst, short a taker-sell-dominant burst — riding the impulse for a hard time-boxed continuation window of hold_bars. Exits are a symmetric 0.6%/0.6% bracket enforced tick-by-tick (so intrabar moves cannot gap the stop), with a bar-close backstop and the time-box. A 12-bar re-entry cooldown throttles churn. Single position, 50% of equity, leverage 1.0.

Verification Results

Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]: - [edge_concern] Independent of the mismatch, the sandbox is a fee-bleed failure with a code-defect-grade signature: total_return -13.7%, Sharpe -6.90 (|Sharpe|>5), PF 0.285, avg_trade_return_pct ~0.005% (far below the 0.10% round trip), turnover 605.6, commission_pct_of_gross 101.5% (fees exceed gross profit). The iter-3 'symmetric bracket makes avg_win≈avg_loss' claim did NOT hold — avg_loss $305 vs avg_win $109 (~2.8x); intrabar bursts gap through the tick-enforced 0.6% stop. So even the fade sign has decisively negative post-fee expectancy on SOL 5m. Advisory; the block is the direction inversion. - Code implements the EXACT OPPOSITE sign of the hypothesis. Hypothesis is impulse CONTINUATION ('Ride Order-Flow Bursts', 'enters IN THE DIRECTION of the burst', explicitly 'the OPPOSITE sign of the ... intraday-REVERSION ideas ... this rides fresh impulses'). Code FADES (class SolTradeIntensityImpulseFade; should_enter SELLs a buy-dominant burst, BUYs a sell-dominant burst, 'Enter OPPOSITE the dominant taker side'). The developer inverted ride->fade to chase PnL, turning it into the reversion mechanism the hypothesis was created to be the opposite of — it no longer tests the hypothesis or provides the promised continuation diversification. - High-frequency fee non-viability: turnover 605, commission 101.5% of gross, avg_trade_return_pct ~0.005% (~20x below the fee floor); burst_z=3.0 + 3-bar cooldown didn't throttle enough (115 trades/68 days). Any resurrected version must show net-of-fee per-trade edge above ~0.15% first.

Verification Results

No code fix produces edge per the developer's 12-cell scan; route to analyst for abandon rather than optimizing.

Verification Results

Fee-viability/turnover concern (advisory, non-blocking): high churn (turnover 523, commission 493.95% of gross) against a measurably absent continuation edge.

Backtest Review

Trades faithfully implement the stated hypothesis: 176 entries WITH the dominant taker side (85 long / 91 short) on strong (z>=3) one-sided arrival-rate bursts, so this is a valid test of the continuation premise, not a mechanism-mismatch bug

Backtest Review

Reliable sample (metrics_reliable=true, 176 trades over a multi-year window), burst gate + 1h cooldown kept turnover low (27.7) as intended

Backtest Review

Negative expectancy on a reliable sample: avg_trade_return_pct = -0.027% (below ZERO, not merely below the 0.15% USD-M fee floor), profit_factor 0.086, total_return -22.7%, Sharpe -1.26 with CI [-2.17, -1.10] entirely negative

Backtest Review

Adverse trade geometry despite a symmetric 0.6%/0.6% bracket: win_rate 0.26 and avg_loss ($191) ~4x avg_win ($47) — intrabar stops fill losers before the time-box; expectancy -$129/trade

Backtest Review

The premise is falsified on the exact feed: the developer measured signed forward continuation on 7.5M real SOL ticks and found the best cell is +0.028% gross (~1/10 of the claimed 0.30%) and negative net of fees at every horizon; at the hypothesis's own z>=3 gate continuation is negative beyond 10 min

Backtest Review

Commission is 386% of gross profit — no positive gross edge exists for the fee advantage to rescue

Iteration History

SolTradeIntensityImpulseContinuation

Iteration History

Verification failed (Layer 4 — QA review): - Catastrophic negative edge on a decisive 214-trade sample: total_return -54.9%, max_drawdown 54.9% (past the 50% hard-abandon line), Sharpe -2.00 (CI [-4.86,-1.67]), profit_factor 0.05, win_rate 0.24, avg_trade_return_pct -0.016%. Reward/risk deeply inverted: avg_win $56 vs avg_loss $357 (~6.4x), largest_loss -$2607 ≈ 10x largest_win $261 (skew -16.7, omega 0.0). The continuation premise is falsified — SOL 5m flow bursts revert, not continue, so riding the burst buys the local extreme. - Execution geometry cannot capture the intended edge: the burst is measured on the just-completed 5m window and the entry is submitted only after that bar closes, so the position opens a FULL 5m bar after the impulse has already ended and reversion has begun. The 15-min time-box then banks winners at a tiny gain (avg_win ~0.07% of notional, far below the 2.5% TP) while losers run to the stop. Late entry + short time-box = the observed inverted reward/risk; even a real continuation edge couldn't be monetized this way. - Leverage 3.0 with a soft 1.2% stop checked only at 5m bar close: SOL routinely moves >1.2% intrabar, so the stop is blown through (largest_loss ~3%+ move, amplified by 3x). avg_position_pct hit 116% vs intended ~90%, turning a losing edge into a 54.9% drawdown.

Iteration History

SolTradeIntensityImpulseFade

Iteration History

Verification failed (Layer 4 — QA review): - Direction-invariant failure. Iter-1 (ride the burst) gave profit_factor 0.05; iter-2 (fade the burst) gives profit_factor 0.05 AGAIN — total_return -28.96%, Sharpe -2.47, win_rate 0.31, avg_trade_return_pct -0.021%, DD 29%, 226 trades. Flipping the entry sign (the only change) left the loss structure essentially identical (avg_win $22.84 vs avg_loss $194.49, ~8.5x inverted). Losing ~equally badly both ways off the same signal proves the arrival-rate burst carries no exploitable directional info on SOL 5m; no further sign flip or re-parameterization can rescue it. - Exit geometry structurally guarantees inverted reward/risk: avg_win $22.84 (~0.05%) is far below the 1.0% TP because the 10-min time-box (hold_bars=2) closes winners before the TP is reached, while losers hit the 0.7% stop or gap past it (largest_loss ≈ 2.5% move). Winner capped at time-box scale, loser at stop scale → avg_loss 8.5x avg_win. Even a real edge nets negative under this structure; the binding exit is the time-box, not the TP, so the tick-stop/TP>SL change did not fix iter-1's inverted RR. - Dual exit control (tick-level self.close_position in on_trade_tick + bar-level should_exit/should_enter) with throttled 8-tick entry capture invites churn and re-entry — turnover 149, total_impact_usd $16,107. Compounds fee drag; not the primary failure.
Strategy report

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