Pre-registered proposal: reports/research_proposal_carry_basis_overlay.md. Defaults: look=168h, carry|z|>=1.5, basis|z|>=2.0, multipliers {0.5, 1.0, 1.25}. Window: 2024-06-04 .. 2026-07-31 (788 days, 166 ETH-gate60 long days) | Hyperliquid ETH funding cache for CARRY+BASIS; ETH daily bars from validation.common; strategy.gate60.decide (frozen, dual-coin ETH/BTC) used to compute the ETH-gate60 target.
Diagnostics: corr(carry_z, basis_z) = +0.747 | fraction of long days with both signals stretched long (0.5x bucket): 0.4% | fraction with both signals stretched short (1.25x bucket): 0.9%.
| Variant | Days | LongDays | Ret | Sharpe | PF | MaxDD |
|---|
| baseline (gate60, no overlay) | 788 | 166 | +69.76% | 0.91 | 1.32 | -22.13% |
| primary overlay (0.5/1.0/1.25) | 788 | 166 | +100.58% | 1.14 | 1.43 | -20.71% |
| Bucket | Days | Share |
|---|
| 1.0x (no signal) | 136 | 81.9% |
| 1.0x (mixed) | 20 | 12.0% |
| 1.25x (both stretched short) | 7 | 4.2% |
| 0.5x (both stretched long) | 3 | 1.8% |
Bootstrap p(overlay beats baseline, full window): 0.005
Bootstrap p(IS < 2025-01-01): 0.363
Bootstrap p(OOS >= 2025-01-01): 0.008
| Segment | Variant | LongDays | Ret | Sharpe | PF |
|---|
| IS | baseline | 70 | +12.55% | 0.75 | 1.20 |
| IS | primary overlay | 70 | +13.19% | 0.77 | 1.21 |
| OOS | baseline | 96 | +50.83% | 0.99 | 1.40 |
| OOS | primary overlay | 96 | +77.21% | 1.30 | 1.58 |
| look (h) | carry z_enter | basis z_enter | LongDays | Ret | Sharpe | PF | MaxDD |
|---|
| 84 | 1.0 | 1.0 | 166 | +123.74% | 1.31 | 1.51 | -20.57% |
| 84 | 1.0 | 1.5 | 166 | +96.50% | 1.14 | 1.42 | -20.57% |
| 84 | 1.0 | 2.0 | 166 | +86.39% | 1.07 | 1.38 | -22.01% |
| 84 | 1.5 | 1.0 | 166 | +113.81% | 1.23 | 1.47 | -20.71% |
| 84 | 1.5 | 1.5 | 166 | +105.23% | 1.20 | 1.44 | -20.71% |
| 84 | 1.5 | 2.0 | 166 | +88.26% | 1.08 | 1.39 | -22.01% |
| 84 | 2.0 | 1.0 | 166 | +100.67% | 1.16 | 1.43 | -20.71% |
| 84 | 2.0 | 1.5 | 166 | +101.02% | 1.17 | 1.43 | -20.71% |
| 84 | 2.0 | 2.0 | 166 | +86.41% | 1.07 | 1.38 | -22.01% |
| 168 | 1.0 | 1.0 | 166 | +123.61% | 1.30 | 1.50 | -20.57% |
| 168 | 1.0 | 1.5 | 166 | +110.33% | 1.20 | 1.45 | -20.57% |
| 168 | 1.0 | 2.0 | 166 | +102.58% | 1.16 | 1.43 | -20.71% |
| 168 | 1.5 | 1.0 | 166 | +111.17% | 1.21 | 1.46 | -20.57% |
| 168 | 1.5 | 1.5 | 166 | +108.15% | 1.19 | 1.45 | -20.57% |
| 168 | 1.5 | 2.0 | 166 | +100.58% | 1.14 | 1.43 | -20.71% |
| 168 | 2.0 | 1.0 | 166 | +108.05% | 1.19 | 1.45 | -20.57% |
| 168 | 2.0 | 1.5 | 166 | +108.17% | 1.19 | 1.45 | -20.57% |
| 168 | 2.0 | 2.0 | 166 | +99.33% | 1.14 | 1.42 | -20.71% |
| 336 | 1.0 | 1.0 | 166 | +106.93% | 1.18 | 1.44 | -20.57% |
| 336 | 1.0 | 1.5 | 166 | +98.97% | 1.15 | 1.42 | -20.57% |
| 336 | 1.0 | 2.0 | 166 | +92.17% | 1.11 | 1.40 | -21.15% |
| 336 | 1.5 | 1.0 | 166 | +100.72% | 1.16 | 1.43 | -20.57% |
| 336 | 1.5 | 1.5 | 166 | +98.91% | 1.15 | 1.42 | -20.57% |
| 336 | 1.5 | 2.0 | 166 | +92.17% | 1.11 | 1.40 | -21.15% |
| 336 | 2.0 | 1.0 | 166 | +95.88% | 1.13 | 1.41 | -21.15% |
| 336 | 2.0 | 1.5 | 166 | +95.88% | 1.13 | 1.41 | -21.15% |
| 336 | 2.0 | 2.0 | 166 | +89.24% | 1.09 | 1.39 | -21.15% |
- IS baseline Sharpe: 0.75, ret +12.55%, maxDD -18.13%
- IS overlay Sharpe: 0.77, ret +13.19%, maxDD -17.67%
- OOS baseline Sharpe: 0.99, ret +50.83%, maxDD -18.42%
- OOS overlay Sharpe: 1.30, ret +77.21%, maxDD -14.27%
- Pre-registered pass: OOS Sharpe +>= 0.10 AND p < 0.05 AND maxDD not +> 5pp
- Result: PASS
- Robustness-grid universe: K=27 configs (3 looks x 3 carry_z x 3 basis_z; fewer if a funding frame was empty). Grid-Sharpe variance pins the expected-null hurdle.
- OOS primary overlay: SR 1.30 | PSR 0.67 | DSR(K=27) 0.67 | haircut 0.00 | sortino 1.02 calmar 3.06 omega 1.58
- Reading: DSR discounts the OOS Sharpe for having inspected K=27 grid cells; hurdle = max(expected-null Sharpe, OOS baseline 0.99). Haircut 0.00 is the Holm answer to the had-we-cherry-picked-the-grid-winner question (family-wise control over K cells kills the vs-zero edge); it does not apply to the pre-registered primary, which was fixed in advance. The pre-registered verdict above is unchanged.
- Inert signal risk: if <5% of long days trigger either 0.5x or 1.25x, the overlay is a no-op and the experiment is a wash. Reported as INERT in the verdict.
- Threshold tuning: the proposal pre-registers look=168h, carry_enter=1.5, basis_enter=2.0. The robustness grid is REPORTED, not selected. Picking the IS winner would be the look-ahead bug class that bit R10-13.
- Hyperliquid only: Binance/Bybit/OKX funding are geo-blocked from this IP (451/403). Hyperliquid started in 2023; the cache is the longest available free source. Binance USDT-M funding IS in the metrics cache but is perpetual-rate only, not the premium index; the BASIS leg specifically needs premium.
- Hyperliquid is one venue: cross-venue funding arbitrage (HL vs Binance) is not what this study tests; this study asks whether HL alone is informationally useful as a sizing overlay on a slow-trend signal.
- CARRY and BASIS are correlated: corr reported above. If corr > 0.7, the composite is one-dimensional and the two-signal framing is misleading; the overlay is then a single-signal gate with two thresholds.
- Multipliers are heuristic: 0.5x and 1.25x are the natural ±50% / ±25% asymmetry, not the result of an optimization. An optimization step would re-introduce the threshold-tuning look-ahead; the honest path is to report the asymmetry you chose and let the verdict be what it is.