مواد پر جائیں

ترجمہ دیکھیں

BtcTakerFlowExhaustionReversalLS1H

مفروضے

BTC Taker-Flow Exhaustion Reversal, Long-Short (Single-Instrument BINANCE USD-M Perp, 1h Bars, Fade Extreme Aggressor Imbalance — Short Late-Stage FOMO Buying / Buy Panic Selling — Range-Regime Gated, Novel Taker-Ratio Signal, 3-Parameter)

مفروضے

A LONG-SHORT, single-instrument mean-reversion on BTCUSDT.BINANCE (USD-M perp, 1h bars) driven by ORDER FLOW, not price — a signal input no deployed strategy uses. Per bar it computes the taker buy/sell aggressor imbalance (taker-buy volume fraction) from Binance futures taker-ratio supplementary data (fallback: aggressor-classified trade_ticks), smoothed over a short window. Thesis: when aggressor buying becomes extreme and sustained (e.g. taker-buy fraction ≥ 0.68 over the smoothing window), the marginal market-buyer is late-stage FOMO / forced covering with no fresh limit demand behind it — aggressor exhaustion that reliably precedes a short-term pullback, so FADE it SHORT. Symmetrically, extreme sustained taker-SELL aggression (fraction ≤ 0.32) is panic/capitulation market-selling into thinning offers — go LONG. This is deliberately a DIFFERENT family from everything dying in this factory: it is NOT trend-following (the 209-death single-regime graveyard — it is contrarian and regime-distributed, paying in every direction flow over-extends), NOT funding carry (the saturated fee-dying basket family — its edge is a 0.4–0.6% reversal move, not a sub-basis-point cash flow), NOT an N-leg basket (it is single-instrument, 2 fills per round-trip, so it sidesteps L12's 2N×10bps fee wall), and NOT options (no trade-count wall — extreme-flow events fire dozens of times per year, yielding hundreds of trades for reliable edge measurement). It is gated to NON-TRENDING regimes (fade only when a slow trend filter is flat/ranging) to avoid the one real failure mode — extreme flow that is INFORMED continuation rather than exhaustion. 3 low parameters (flow smoothing window, imbalance threshold, exit) keep it overfit-resistant.

مفروضے

Iteration 3 addresses the sole Layer-4 QA failure: trade starvation (6 trades/363d) from an over-tight compound gate. No mechanism, import, or signal-logic change (those passed Layers 1-3); only the three entry/exit throttles are loosened so the strategy clears the ~100-trade measurability floor. entry_z 1.2->0.8 fires on more flow extremes while staying beyond noise and above the 0.10% round-trip taker cost (the thesis reversal is 0.4-0.6%). regime_threshold 0.55->0.65 admits more ranging bars so the ranging-AND-extreme-z conjunction stops compounding rarity, while still excluding strong trends (the informed-continuation failure mode). exit_z 0.3->0.25 and max_hold_bars 24->10 speed turnover, returning the strategy to flat sooner and multiplying the number of entry windows per year. The rolling-z scale-invariant signal (L5) and the contrarian, regime-distributed, single-instrument design that differentiate this from the trend/carry/basket/options graveyard are unchanged.

مفروضے

Negative-expectancy single-perp taker-flow exhaustion fade with no edge and a supplementary data wall (L73/L55). profit_factor 0.62, total_return -5.29%, Sharpe -0.71 (CI [-1.35, 0.02]), expectancy -$62.6/trade, avg_trade_return_pct 0.0146% (~zero, net loser); avg_loss > avg_win with win_rate 0.447, so the fade is on the wrong side of the flow. Critically, despite 58,512 bars over 2019-2026, ALL 85 trades and 100% of returns fall in a single ~6-month 2026 window because the taker_ratio supplementary feed only covers a recent slice — annual_returns={2026:-5.32}, monthly 2026-03..08 — so a 3-window walk-forward plus 20% holdout cannot be built. This is the same order-flow-gated single-perp signature already abandoned three times this batch (BtcTakerAggressionPersistence, AvaxTakerAggressorDominance, EthTakerFlowBreakout). No parameter tuning flips a negative per-trade edge positive, and the optimizer cannot buy calendar coverage the feed lacks. Not worth 2 hours of optimization. Failure pattern: fee_edge/no_edge single-perp order-flow-gated fade with recent-only supplementary window.

نفاذ

Long-short order-flow mean-reversion on BTCUSDT.BINANCE USD-M perp (1h bars). Computes a rolling z-score of the smoothed taker-buy aggressor fraction from Binance taker_ratio supplementary data; fades extreme sustained aggressor buying SHORT (late-stage FOMO exhaustion) and extreme aggressor selling LONG (panic capitulation), only in a ranging (low Kaufman efficiency ratio) regime. Exits on flow normalization, a 1% hard stop, or a time cap. Single-instrument, leverage 1.0, 3 core tunables.

تصدیق کے نتائج

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.

تصدیق کے نتائج

Reduce taker_lag_seconds default to ~7200-14400s so stale feeds suppress entries.

تصدیق کے نتائج

taker_lag_seconds defaults to 90000 (25 hours), so _current_fraction accepts a taker_ratio observation up to ~25h stale before returning None. Not a look-ahead (bisect bound is one-sided at bar ts_event <= ts_init), but on feed gaps the strategy trades on a day-old flow reading.

تصدیق کے نتائج

Append to _frac_buf only when self._tk_ts[idx] advances.

تصدیق کے نتائج

_current_fraction returns the latest observation regardless of novelty, so the same fraction is re-appended to _frac_buf each bar until the feed advances, mildly compressing the rolling-z baseline std. Not a correctness break at 1h cadence.

بیک ٹیسٹ جائزہ

Clean single-instrument implementation (2 fills/round-trip, no basket fee wall), regime-gated, only 3 core tunables — overfit-resistant by construction

بیک ٹیسٹ جائزہ

Order-flow signal input is genuinely differentiated from the trend/carry/basket graveyards

بیک ٹیسٹ جائزہ

Net loser with no edge: profit_factor 0.62, total_return -5.29%, Sharpe -0.71 (CI [-1.35, 0.02]), expectancy -$62.6/trade, avg_trade_return_pct 0.0146% (~zero and negative sign)

بیک ٹیسٹ جائزہ

avg_loss ($301) exceeds avg_win ($232) with win_rate 0.447 — the exhaustion-fade is systematically on the wrong side of the flow move

بیک ٹیسٹ جائزہ

Supplementary data wall (L73): all 85 trades and 100% of returns fall in a single ~6-month 2026 window (annual_returns={2026:-5.32}, monthly 2026-03..08) because the taker_ratio feed only covers a recent slice of the 2019-2026 OHLCV history — the effective sample cannot support a 3-window walk-forward + 20% holdout

بیک ٹیسٹ جائزہ

commission_pct_of_gross 47% — fees plus impact already consume half of gross even before the negative-sign edge

بیک ٹیسٹ جائزہ

Matches the zero-survivor single-perp order-flow-gated class (BtcTakerAggressionPersistence, AvaxTakerAggressorDominance, EthTakerFlowBreakout all abandoned) and the L55 sub-1.15-PF single-name fade class

بیک ٹیسٹ جائزہ

6mo (2026 only)

بیک ٹیسٹ جائزہ

multi-year

Iteration History

Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: BTCUSDT.BINANCE-1-HOUR-LAST-EXTERNAL, Bars processed: 8729 Diagnostics: should_enter() returned a side 0 times over 8679 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.

Iteration History

Verification failed (Layer 4 — QA review): - The entry gate fires far too rarely to produce a measurable result. The sandbox generated only 6 trades over 363 days (~6 trades/year). The compound gate requires, simultaneously, (a) a RANGING regime (Kaufman efficiency ratio < regime_threshold), (b) an extreme rolling z of the taker-buy fraction (|z| >= entry_z=1.2), and (c) the strategy to be FLAT, then holds up to 24 bars -- so genuine entries are rare even though z crosses the band often. This is the exact L16 failure mode ('BTC 4H aggressor imbalance 16 trades', 'BTC taker-ratio 16 trades'), and it is WORSE here (6 trades). Even a multi-year backtest at this rate stays far below the ~100-trade measurability floor. The hypothesis's own justification ('dozens of times per year, hundreds of trades for reliable edge measurement') is directly contradicted by the 6-trade result. - Because the result rests on 6 trades, every headline metric is non-diagnostic: Sharpe 0.84 but sharpe_ci_low -1.08 (CI straddles zero), profit_factor 10.26 and win_rate 0.667 on 6 samples, return_skew 7.23 / kurtosis 94.8, and avg_win $300 vs avg_loss $58 -- a single largest_win $662 carries the entire positive return (+1.08%). None of these can be trusted as evidence of edge. This is a direct consequence of the trade-count issue above, not an independent defect.

Iteration History

Verification failed (Layer 4 — QA review): - The core edge is negative and below fees, falsifying the hypothesis's central claim. The hypothesis states the fade captures a '0.4-0.6% reversal move'; the sandbox measures avg_trade_return_pct -0.025% -- negative, and an order of magnitude below both the claim and the 0.15% futures fee floor. Corroborating a genuine no-edge (not just noise): profit_factor 0.518, Sharpe -1.53 (CI [-2.73, +0.07]), win_rate 0.50 with an INVERTED reward/risk (avg_loss $338 ~= 2x avg_win $175), omega_ratio 0.35. Critically, this emerged BECAUSE the iter-3 loosening (entry_z 1.2->0.8, regime_threshold 0.55->0.65) added trades: the extra entries fired on weaker flow extremes that did NOT revert, dragging the average edge negative. That is direct evidence the taker-flow-exhaustion signal has no reversal alpha that clears costs -- extreme aggressor-imbalance bars do not systematically mean-revert at these thresholds. - Trade count is still below the measurability floor. iter-3 raised trades from 6 to 26 over 363 days (~26/yr), but that remains well under the ~100-trade floor needed to distinguish edge from noise (L16; the sibling BTC aggressor-imbalance/taker-ratio attempts died at 16 trades). With 26 trades and skew -4.83 / kurtosis 43 (a single -$945 loss dominates), the metrics are still noise-dominated -- the Sharpe CI spans -2.73 to +0.07. The developer is stuck between two failing regimes: tighter gate -> unmeasurable (6 trades), looser gate -> measurable-ish but negative edge (26 trades, -0.025%/trade). Both fail.
حکمت عملی کی رپورٹ

Stratmill ایک تحقیقی اور پیپر ٹریڈنگ ٹول ہے، مالیاتی مشورہ یا بروکر نہیں۔ بیک ٹیسٹ اور پیپر نتائج فرضی ہیں۔ ٹریڈنگ میں نقصان کا خطرہ شامل ہے۔