SolCrossVenueFundingSpreadNeutral4H
Hipotēzes
Cross-Venue Inter-Exchange Funding-Differential Harvest — Delta-Neutral SOL: Short the Higher-Funding Perp / Long the Lower-Funding Perp Across BINANCE vs HYPERLIQUID, Collect the Funding SPREAD (Not Directional Carry), Basis-Stopped, Held Days (2-Leg, Market-Neutral, 3-Parameter)
Hipotēzes
A CROSS-VENUE, MARKET-NEUTRAL relative-value strategy that harvests the FUNDING-RATE SPREAD between the SAME asset's perpetual on two different exchanges — BINANCE USD-M SOLUSDT vs HYPERLIQUID SOLUSD. Both legs are perpetuals on the identical underlying, so the position is delta-neutral by construction: you are NOT taking a price direction and you are NOT doing single-leg funding carry (the mechanism that lost money in the abandoned 'SOL Persistent-Funding Contrarian Swing'). The ONLY PnL source is the funding differential — you SHORT whichever venue is paying the more-positive funding (shorts receive funding there) and simultaneously go LONG-equal-notional on the venue with the lower/negative funding (longs receive, or pay less). Because the two legs track one underlying, directional price PnL nets to ~0; the residual variance is only the small, mean-reverting BASIS (price gap between the two venues), which a hard basis-stop caps. This is inter-exchange funding arbitrage (Cross-Venue Pattern #3 hybrid with #2), a structurally under-explored, fee-forgiving edge — it captures a mechanically-paid cash flow rather than fighting friction. Chosen because the portfolio is starved of cross-venue (7.4% vs 15% target) and long-short/market-neutral (14.2%) exposure, and because funding data for BOTH Binance and Hyperliquid SOL exists in the catalog with multi-year history at daily/4h resolution (HL daily/4h is not history-limited). SOL is chosen for meaningful cross-venue funding dispersion (higher-beta alt) while remaining top-tier liquid on both venues. Only 3 free parameters (entry spread threshold, exit spread threshold, basis-stop) to resist the overfitting that is the #1 killer here.
Hipotēzes
Iteration 2 fixes the QA hypothesis_mismatch (timeframe): the sampling clock is now pinned to 4-HOUR bars on BOTH legs, matching the hypothesis's stated 'daily/4h resolution' and days-long holds, this class's own name, and the interval every bar-denominated parameter is calibrated in (spread_smooth_bars 24 x 4H = 4 days); 4H is also an exact divisor of the Binance 8h funding settlement so no settlement is straddled. No unilateral re-sampling to another clock. Verified both legs exist in the catalog at 4H (SOLUSDT.BINANCE-4-HOUR and SOLUSD.HYPERLIQUID-4-HOUR, HL history from 2024-01) so the multi-leg data gate cannot abandon the run. Signal/entry/exit logic, imports and structure are unchanged from previous_code (earlier layers stayed green); the only other edit declares the spread_smooth_bars clamp [6, 48] in _param_bounds so the optimizer never searches values the code silently rewrites. Note for the record: the QA feedback text quoted an ETHUSDT weekly-vs-daily case that does not correspond to this SOL cross-venue pair, so I applied the general timeframe-alignment ruling rather than the literal ETH details. Equal USD notional on both legs keeps net delta ~0 per lesson L59; leverage stays 1.0 and is not referenced in sizing.
Hipotēzes
Negative-expectancy funding-differential harvest on a reliable 20-trade sample. Funding cash flows ARE credited by the current engine (per the 2026-06-10 change), so this is a fair test of the mechanism — and with funding included the Binance-vs-Hyperliquid SOL differential still does not clear the ~0.19% two-leg round trip: avg_trade_return_pct -0.03955% (negative, below the 0.15% floor), profit_factor 0.989, total_return -0.33%, Sharpe -0.035. The differential (~8.6% APR = 0.024%/day) is too thin to out-earn costs on the observed hold durations, and impact_cost_pct 259.9% / capacity_usd ~$14.8K make the edge toy-scale only. Optimization cannot lift a per-trade edge that sits below trading costs; this is the classic fee_edge / negative-expectancy signature and iterating thresholds has never rescued it.
Implementācija
Delta-neutral cross-venue SOL perp pair on 4-HOUR bars: converts Binance USD-M (per-8h) and Hyperliquid (per-1h) funding to annualized percent, differences them, EMA-smooths over 24 bars (4 days), and when |spread| >= 8% APR shorts the richer-funding venue while going long equal USD notional on the cheaper one. The only PnL source is the funding differential; directional price PnL nets out. The book is held through spread decay (unwinding costs a full 0.19% round trip and earns nothing flat) and turned over only when the smoothed spread inverts past the 5% APR flip band, or on a 2.5% basis stop / 45-day calendar hold cap. Goes flat if either venue's funding series is missing -- no price-only fallback.
Verifikācijas rezultāti
[archived 2026-09-05] The Layer-4 feedback previously stored here was a QA review of a DIFFERENT strategy (ETHUSDT.BINANCE weekly-vs-daily trend review (run is SOL cross-venue funding harvest)), delivered to this run by the shared-session/shared-outbox bug fixed in fbae0041 (per-call isolation + call_id binding). It was moved to metadata.foreign_feedback_archive and must be disregarded; the next QA review of this run is authoritative.
Verifikācijas rezultāti
Analyst: confirm funding cash flows are applied to both legs in the backtest engine, then re-check net-of-fee per-trade carry at the optimized enter/exit thresholds.
Verifikācijas rezultāti
avg_trade_return_pct in the sandbox (0.1135%) sits just below the 0.15% futures fee floor and PF is 1.01 — the funding differential is a thin, slow cash flow and viability depends entirely on funding being credited in PnL and on multi-day holds accruing enough carry to beat the 0.19% round trip. Informational; the full backtest and optimizer decide viability.
Verifikācijas rezultāti
Sandbox is essentially break-even: total_return +0.167% over 2181 days, avg_trade_return_pct 0.1135% (below the 0.15% futures floor), profit_factor 1.013, win_rate 0.50 across only 22 trades. This is an unoptimized smoke test so it does not block, but two things the analyst should verify with full-history numbers: (1) that the NautilusTrader backtest actually credits perp FUNDING cash flows on both legs — funding is this strategy's ENTIRE PnL source, and if funding is not applied the measured return is only basis noise minus fees; (2) fee/carry viability at the real thresholds — the differential (~8.6% APR ≈ 0.024%/day) needs ~8 correctly-positioned days to clear the 0.19% two-leg round trip, so per-trade edge is thin and hold-duration dependent (observed avg hold ~29d). Also note impact_cost_pct 44.9% / capacity ~$495K at per_leg_pct 0.50 (150% gross exposure) — a real capacity ceiling, though one-time on the low-turnover entry/exit of a ~22-trade book.
Backtesta izvērtēšana
Mechanism is faithfully implemented and market-neutral by construction (equal-notional two-leg SOL perp pair, funding-spread signal, naked-leg guard, basis stop).
Backtesta izvērtēšana
Funding cash flows ARE credited by the current engine, so this is a fair test of the funding-differential edge — not a structural un-backtestability block.
Backtesta izvērtēšana
Only 3 core parameters; low researcher degrees of freedom.
Backtesta izvērtēšana
Negative expectancy on a reliable sample: total_return -0.33%, avg_trade_return_pct -0.03955% (negative, below the 0.15% futures floor), profit_factor 0.989, Sharpe -0.035 over 20 trades. Funding is credited, so the differential simply does not clear the ~0.19% two-leg round trip.
Backtesta izvērtēšana
Edge is structurally thin and hold-dependent: ~8.6% APR differential (0.024%/day) needs ~8 correctly-positioned days just to break even; the realized result confirms it does not.
Backtesta izvērtēšana
Capacity ceiling is toy-scale: impact_cost_pct 259.9% and capacity_usd ~$14.8K mean the phantom edge exists only at trivial size.
Backtesta izvērtēšana
Hyperliquid leg only exists from 2024-01-25, so the effective test window is ~1.6 years / 20 trades regardless of the 6-year primary span.
Iteration History
Verification failed (Layer 2 — synthetic scenarios):
Parameters used: ['per_leg_pct', 'min_notional', '_param_bounds', 'max_hold_days', 'min_hold_hours', 'exit_spread_apr', 'enter_spread_apr', 'max_basis_stop_pct', 'spread_smooth_bars']
Check that __init__ sets all attributes from self.parameters.get().
- steady_uptrend: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (bar timestamp: 1735690740000)
- steady_downtrend: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (bar timestamp: 1735690740000)
- flat_ranging: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (bar timestamp: 1735690740000)
- volatility_spike: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (bar timestamp: 1735690740000)
- zero_volume: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (bar timestamp: 1735690740000)
- price_gap: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (bar timestamp: 1735690740000)
Iteration History
Verification failed (Layer 4 — QA review):
- Fee/edge viability fails decisively on the ACTUAL engine result (checklist #7, L6/L26). The sandbox is a losing book: total_return -2.17%, profit_factor 0.957 (<1.0), Sharpe -0.35, expectancy -$45/trade, and avg_trade_return_pct -0.0033% — NEGATIVE and ~45x below the 0.15% futures floor. Over a measurable sample (82 trades, metrics_reliable: true), so a genuine no-edge result. Funding WAS credited (2580 events), so even with the differential paid in full the strategy does not clear the ~0.19% round-trip cost.
- The core hypothesis — 'directional price PnL nets to ~0; residual variance is only the small, mean-reverting basis' — is NOT what the engine produced. Per-trade PnL is dominated by huge symmetric swings: avg_win $2,009 ~= avg_loss $2,099, largest ±$9,600-9,959, win_rate 0.50. A genuinely delta-neutral funding-spread harvest should show PnL an order of magnitude smaller and skewed positive by carry; instead the differential (net -$45/trade) is dwarfed ~45:1 by basis/price noise. Identical signature to abandoned EthCrossVenueCashAndCarry and prior cross-venue funding-capture variants.
Iteration History
Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]:
- [edge_concern] Not the reason for the verdict, recorded for the analyst if the hypothesis is re-registered: on the daily clock the sandbox is honest and healthy (metrics_reliable=TRUE, 92 trades, Sharpe 0.79 CI [0.10,1.51], avg_trade_return_pct 3.61%, PF 1.48), but regime_performance shows ALL of the positive return concentrated in the 'normal' vol tercile (+489%, Sharpe 2.64) with the 'calm' (-18.8%) and 'stressed' (-21.8%, 56.7% DD) terciles both negative, and only_one_regime=true. Max drawdown 36% with a 1038-day underwater duration. The edge is real but regime-concentrated and drawdown-heavy; size/robustness deserve scrutiny at full backtest.
- TIMEFRAME MISMATCH vs the pre-registered hypothesis. The hypothesis of record (title and description in this brief) unambiguously and repeatedly specifies WEEKLY bars ('on WEEKLY bars, holding positions for weeks-to-months'), but config.bar_type is ETHUSDT.BINANCE-1-DAY-LAST-EXTERNAL. This is not a cosmetic re-sampling: it changes the trade count (28 weekly -> 92 daily), the average hold (10.4 weeks -> 3 weeks) and the entire statistical test. The developer's own module docstring concedes that iteration 3 made this identical daily switch and QA 'was right to reject that: it was a hypothesis reformulation made unilaterally in code.' The situation is materially unchanged: the hypothesis on record still says weekly, so this is again a unilateral in-code timeframe reformulation. Layer 1.5 only validates instrument/venue, not timeframe, so this check falls to QA, and a hypothesis-stated timeframe that differs from config.bar_type is a critical mismatch. This is exactly the researcher-degree-of-freedom the factory's pre-registration system exists to prevent: the weekly form was found unmeasurable, and the sampling clock was then changed to manufacture measurability.
Stratmill ir izpētes un papīra tirdzniecības rīks, nevis finanšu konsultācija vai brokeris. Atpakaļejošās testēšanas un papīra tirdzniecības rezultāti ir hipotētiski. Tirdzniecība ir saistīta ar zaudējumu risku.