Strategies
Cross-Venue Perp Funding-Differential Carry, Delta-Neutral (SHORT the venue paying the richer funding / LONG the cheaper venue across 5 HYPERLIQUID<->BINANCE USD-M alt-perp pairs: AVAX, SOL, DOGE, SUI, INJ; daily bars, 5-day minimum hold, basis-blowout stop, 3-parameter)
Outcome: Abandoned
CrossVenueFundingDifferentialCarryNeutralBasket
Backtest gate: - metrics unreliable: Incoherent: Sharpe 0.01 disagrees in sign with total_return -1.77% — the Sharpe is computed from the mtm_equity_curve series while the return comes from the equity curve. Judge on…
Hypothesis
coding_stuck_3_timeouts
Implementation
Verification Results
sandbox_timeout: Verification failed (Layer 3 — sandbox backtest): smoke test exceeded the 300s wall-clock limit on a ~20000-bar window (2400 days of AVAXUSDT.BINANCE-1-DAY-LAST-EXTERNAL). This almost always means per-bar work that scales with history — e.g. rescanning the full funding/supplementary series, or rebuilding a list and calling min()/sorted() inside calculate_signal()/on_bar() on every bar. Precompute sorted timestamp arrays ONCE in __init__ and use bisect, or cache lookups keyed by timestamp, so per-bar cost is O(log n) not O(n).
Restate the horizon in the hypothesis or expose min_hold_days in _param_bounds.
Hypothesis pre-registers a 5-day minimum hold; code uses a FROZEN min_hold_days = 14.0 (raised 10 -> 14 in iteration 3), outside the tunable surface.
Gate the fallback on a verification marker; otherwise leave the pair FLAT as the docstring promises.
Fallback to primary-scoped funding series when funding_rates_by_instrument is absent makes all five coins read the same two series, fabricating diff = 21x a single rate. Intended for Layer-2 only but not restricted to it.
Divide by capital_frac * leverage.
_max_pairs = max_gross_frac / capital_frac ignores leverage: actual gross per venue is 1.0x equity at defaults (1.5x at the 0.15 bound), not the claimed 0.85x. Delta-neutral, so accuracy not blow-up.
Track a per-pair closing_ts guard, mirroring _entry_order_inflight.
Exit orders re-issued each bar while a reduce-only close is still in flight (entry_ts cleared, then re-anchored from ts_opened).
Handle stops in on_extra_bar() or narrow the sync set.
All ten daily legs are in the sync barrier, so one missing bar skips _manage() for the WHOLE basket that day — including the 1.5% basis-blowout stop.
Analysis
Backtest gate: - metrics unreliable: Incoherent: Sharpe 0.01 disagrees in sign with total_return -1.77% — the Sharpe is computed from the mtm_equity_curve series while the return comes from the equity curve. Judge on the equity curve.
Backtest Review
- Sharpe
- 0.01
- Total return
- -1.77%
- Max drawdown
- 5.60%
- Trades
- 186
- Win rate
- 52.2%
- Profit factor
- 1.17
Backtest and paper results are hypothetical. Trading involves risk of loss.