Skip to content

View original

EthRangeRegimeMakerLiquidityProvisionLS15m

Hypotheses

ETH Perp Range-Regime Passive Liquidity Provision — Long-Short Limit-Order Mean-Reversion That Clears Fees With MAKER Fills, Not Taker (BINANCE ETHUSDT USD-M, 15M Bars, Volatility-Scaled Resting Bands, 3-Parameter)

Hypotheses

A LONG-SHORT, SINGLE-INSTRUMENT intraday liquidity-provision strategy on ETHUSDT.BINANCE USD-M perpetual that attacks the factory's #1 killer — the fee graveyard (261 fee_edge + many 'sub-fee mean-reversion on liquid majors' deaths) — at its root by changing the FEE SIDE of the trade, not the signal dressing. Every dead mean-reversion strategy in the book entered with MARKET orders and paid the 0.05% taker fee twice (~0.10% round trip), so a ~0.15% reversion edge net-lost. This strategy instead PROVIDES liquidity: it rests LIMIT orders that fill at the 0.02% MAKER fee (~0.04% maker round trip on ETHUSDT USD-M), so the same reversion capture is now comfortably fee-positive. It only engages in statistically RANGING regimes (where passive fills mean-revert instead of adversely selecting), stands completely flat in trends, and is symmetric long/short. It is deliberately NOT any flagged dead class: not a taker mean-reversion (the whole premise is maker fills), not OI-gated (L71), not funding-gated (L70), not a cross-venue two-leg (L69), not a rotation basket (L68), not a USEQ anomaly (L74), not an options structure (L64), and distinct from my SolTakerFlowMomentum hypothesis (that is TAKER continuation; this is MAKER reversion). Fills three under-represented buckets: long_short (14.3% vs ≤55%), short_1m_15m horizon (8.6% vs ≥10%), and a liquidity-provision mechanism entirely absent from the 0.7%-survival book. Only 3 fitted parameters to resist the 338x overfit graveyard.

Hypotheses

Iteration 3 addresses the two QA findings without touching anything that already passed Layers 1-3. (1) avg_holding_bars = 0.0 / intrabar round trip: the take-profit is no longer priced off the CURRENT bar (max(mid, price+buffer)) -- it is anchored to the ENTRY at entry +/- band_k*ATR and is not posted at all until min_hold_bars=2 complete bars have elapsed, so an entry and its maker take-profit can never fill in the same bar and every winner is a genuine multi-bar reversion. (2) avg_loss 1.85x avg_win / negative expectancy: the sliver take-profit is gone (a win is now the full band, matching the stop distance for a true ~1:1), and the stop is a resting reduce-only STOP_MARKET at the venue instead of a bar-close market exit, so a loss is capped intra-bar at the level rather than paying band + intrabar overshoot (which produced the -1309 vs +716 tail asymmetry). Both exit legs are reduce-only so the surviving sibling can never re-open exposure. To clear the 0.15% per-trade floor rather than the 0.04% maker round trip alone, the fee gate is raised from 0.25% to 0.50% of price and band_k's default/bounds move up (1.6, [1.0, 2.6]): with symmetric +/-0.5% legs the strategy only needs a ~65% ranging win rate to clear the floor, versus the 0.015% it realized before. Trade count falls sharply from 3034, which is intended -- the previous cadence was churning sub-fee noise. Caveat, stated once as required: if the maker fill-at-touch model still under-prices adverse selection, the honest read is that this fee-side thesis does not survive, and the next verdict should be abandon rather than another parameter pass.

Hypotheses

Catastrophic blow-up — not optimizable. The account LIQUIDATED on 2021-07-08, ~18 months into a 6-year backtest (total_return -100%, max_drawdown 100%, liquidated=true), and sat dead with 0.0 daily returns for the remaining ~5 years. The economics are negative long before the liquidation: profit_factor 0.80, avg_trade_return_pct -0.0095% (net negative), expectancy -$11.68/trade over 15,130 trades, with commission 10.76% of gross plus $86k impact — the 15m always-quoting churn re-creates the exact fee graveyard the maker-fill premise claimed to escape. Sharpe -1.12 with CI [-3.39, -0.96] entirely negative, PSR 0.0, IR -3.88, and every vol regime deeply negative (stressed -100%). The maker-liquidity-provision assumption also fills post-only limits without modeling queue position or adverse selection, so the backtest is optimistic on fills and still liquidated. No parameter change rescues an account that went to zero; this is a structural blow-up, not a tuning issue. Failure pattern: risk_reject/fee_edge liquidated high-frequency maker book, negative per-trade edge and fee-dominated churn.

Implementation

Long-short passive liquidity provision on ETHUSDT.BINANCE USD-M 15m bars. In statistically ranging regimes (Kaufman Efficiency Ratio <= er_max) it rests a single post-only maker limit at mid -/+ band_k*ATR on the side of the current excursion, and only when that capture is worth >= 0.50% of price (>10x the maker round trip and >3x the 0.15% futures per-trade floor). A filled position is bracketed by ENTRY-ANCHORED legs: a reduce-only post-only maker take-profit at entry +/- band_k*ATR (posted only after 2 complete bars, so the book cannot round-trip intrabar noise) and a resting reduce-only STOP_MARKET at entry -/+ stop_atr*ATR that triggers intra-bar at the level, plus an 8h time stop. stop_atr defaults to band_k, so realized risk and realized capture are the same distance. All rolling state (SMA, ATR, ER) is incremental O(1)/bar. 3 fitted parameters: band_k, er_max, mid_window.

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.

Verification Results

Analyst to weigh a maker (reduce-only limit) stop or asymmetric TP; more likely the maker-reversion edge on a liquid major is absent net of adverse selection.

Verification Results

Risk asymmetry inherent to the exit design: TP is a post-only maker LIMIT at entry+/-band (capped capture), stop is a STOP_MARKET filling at market beyond its trigger (taker + intrabar overshoot on 15m bars). Distances are ~1:1 but realized loss systematically exceeds realized win (avg_loss $215 vs avg_win $169), capping expectancy below the fee floor. Exits are correctly wired (both reduce-only, sibling auto-cancels on flat) — not a defect, but it undercuts the fee-side premise.

Verification Results

Treat backtest maker economics as an optimistic ceiling; the sandbox is already deeply negative under the favorable model, so abandonment is the likely honest call.

Verification Results

Maker-fill assumption is optimistic in a bar backtest: NT fills resting post-only limits at high/low touch with no queue/adverse-selection modeling, so backtest maker fills are best-case and live fills would be strictly worse. Realism caveat for any bar-backtested liquidity-provision strategy, not a bug.

Backtest Review

Genuinely novel maker/liquidity-provision angle and clean single-instrument construction that ran end-to-end in the sandbox

Backtest Review

Account LIQUIDATED 2021-07-08 (~18 months in): total_return -100%, max_drawdown 100%, liquidated=true, then flat/dead for the remaining ~5 years

Backtest Review

Negative per-trade edge: profit_factor 0.80, avg_trade_return_pct -0.0095%, expectancy -$11.68/trade over 15,130 trades

Backtest Review

Fee/impact catastrophe: commission 10.76% of gross, total impact $86k — the 15m churn re-creates the fee graveyard the maker premise claimed to escape

Backtest Review

Sharpe -1.12 (CI [-3.39, -0.96] fully negative), PSR 0.0, IR -3.88, return_kurtosis 2024, monthly returns spiral to -362% into liquidation

Backtest Review

Deeply negative in every vol regime (stressed -100%); the maker-fill assumption ignores queue position / adverse selection, making fills optimistic not conservative

Iteration History

Verification failed (Layer 4 — QA review): - Fee/edge non-viability confirmed empirically. Sandbox over 363 days / 2717 trades reports avg_trade_return_pct = 0.0196% of notional — ~1/8 of the 0.15% futures floor and below even the 0.04% maker round-trip the hypothesis claims to clear. total_return -97.4%, profit_factor 0.712, expectancy -$35.86/trade, Sharpe -0.56. Win rate 75% but avg_loss ($507) is 4.3x avg_win ($117): the 0.9-ATR reversion capture cannot pay for the 2-ATR stop plus fees. The maker-fee thesis — the entire stated edge — has negative net-of-cost expectancy here. - The 'maker-only' premise is only half-implemented. Exit limit at mid is posted post_only=False, so when price has crossed mid (the reversion case being targeted) the exit is marketable → 0.050% taker; risk/time-stop exits call close_position() = market/taker. avg_holding_bars = 0.0 confirms same-bar taker exits. A large fraction of round trips pay ~0.10% taker, not the ~0.04% maker the hypothesis is built on — the fee-side advantage is largely not realized. - Over-leveraged vs stated leverage 1.0: avg_position_pct 153.7% (position notional ~1.5x equity). Sizing uses fixed base_capital ($100k) except when equity < base, and two-sided quotes can both fill within a bar, stacking exposure and amplifying the 97.4% drawdown.

Iteration History

Verification failed (Layer 4 — QA review): - Fee/edge non-viability confirmed in sandbox. Over 3034 trades / 363 days: total_return -50.6%, profit_factor 0.80 (<1.0), avg_trade_return_pct 0.015% (~1/10 of the 0.15% futures floor, and below even the ~0.04% maker round trip it was designed to beat), Sharpe -2.28 (CI [-6.86, -1.93], entirely negative), expectancy -$16.70/trade, information_ratio -0.42. avg_loss (209) is ~1.85x avg_win (113) at a 0.597 win rate — the intended ~1:1 stop_atr=band_k risk/reward is NOT realized: the maker take-profit captures a sliver while the taker stop/time-stop legs pay the full band + taker fee + intrabar overshoot (skew -17, kurtosis 313, largest_loss -1309 vs largest_win 716). The maker-side thesis did not rescue the same fee_edge death class the hypothesis claimed to solve. - avg_holding_bars = 0.0 despite the iteration-2 'fix'. The premise is resting maker liquidity that reverts OVER TIME, yet entry and take-profit fill within the SAME bar (fill-at-touch). The core liquidity-provision mechanism is not being exercised — the book round-trips intrabar noise, not multi-bar reversion. The rationale claimed the price_buffer would eliminate the avg_holding_bars=0.0 symptom; it did not. Per the rationale's own caveat the fill-at-touch model understates adverse selection, so live results would be worse than this already-negative sandbox.

Iteration History

Verification failed (Layer 4 — QA review): - Fee non-viability demonstrated in the Layer-3 sandbox under a fill model that already FAVORS this strategy. Over a well-measured 1947-trade / 363-day sample the book is decisively negative: total_return -39.03%, profit_factor 0.809 (<1.0), avg_trade_return_pct -0.00017 (-0.017% of notional, NEGATIVE, far below the 0.15% futures floor), expectancy -$20.04/trade, Sharpe -1.06 (CI [-2.90, 0.41]), information_ratio -0.13. The entire thesis is that MAKER fills (0.02%) instead of taker (0.05%) turn reversion capture fee-positive, but the strategy loses money even though a bar backtest fills every resting post-only limit at-touch with the maker fee and does NOT model adverse selection — real maker fills would be strictly worse. The rationale itself concedes this. Iteration 3, same negative-expectancy core; entry-anchoring / 1:1 stop-TP / raised 0.50% fee gate did not fix it. - The '~1:1 realized risk = realized capture' claim is refuted. Despite stop_atr == band_k, realized avg_loss ($214.65) is 1.29x avg_win ($166.53), largest_loss (-$2595) dwarfs largest_win ($788), kurtosis 51.9. Cause: the take-profit is a resting reduce-only MAKER limit that only fills when price reverts to the band and a counterparty trades through it (winners capped and often unfilled, riding to stop/time-stop), while the loss is a taker STOP_MARKET that fills on any touch plus overshoot. The maker-TP / taker-stop exit-side mismatch makes the payoff structurally asymmetric — exactly the asymmetry iteration 3 claimed to fix. - Metrics inconsistency: avg_holding_bars=0.0 vs avg_holding_period '1h 56m' (~7.7 bars) over 1947 trades. The 0.0 is a reporting artifact — positions demonstrably hold multiple bars (min_hold_bars=2 gates the TP; stop/TP are posted only on the bar after the entry fills, so intrabar round-trips are structurally impossible). The iteration-3 goal of removing the avg_holding_bars=0 pathology is met in substance.
Strategy report

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