Calendar Spreads on Futures Signals โ€” the BTC 28/14 Timing Edge

Question (Sven): instead of taking a futures trade on every algo signal, enter a calendar spread (buy long-tenor / sell short-tenor, ATM). Tested all directions and combinations on Nik's algos (MA_CND_CROSS_H4, EXPANSION_H4, STOCH_H4, RISE_FALL_H1, MA_CND_CROSS_H1), BTC+ETH, tenors 14/7, 28/7, 28/14, M2 model 2021โ€“2026 + real Deribit marks 2026. Six iterations, honest report โ€” most combinations are dead; one specific configuration carries a real, statistically significant timing edge.

TL;DR

Signal-timed BTC 28d/14d ATM double calendars earn ~2ร— per trade vs the same structure entered blind (every Friday), 2024โ€“2026. The channel is pure timing, not direction: SAME and OPP side are identical, both single sides beat blind. Mechanism (section 5c): NOT vol expansion โ€” DVOL is flat after signals โ€” but terminal pinning: 13.5 days after a signal, spot sits closer to entry (|move| 5.9% vs 7.3% blind), which is exactly what a calendar held to short expiry gets paid for. On real 2026 Deribit quotes the MA_CND_CROSS variant survives execution costs (+1.55%/trade after crossing 4 spreads, win 91%, n=12) while the blind calendar dies on friction ($422 round-trip โ‰ˆ its whole edge). Significance: month-cluster bootstrap p = 0.0002. Caveats below are real โ€” small live sample, parameter chosen after looking at data.

1. The road there: what is dead

TestResult
ETH 14/7 calendars on signals, signal-exit (~30h hold) โ‰ˆ0 to negative โ€” the calendar needs the full week of theta differential; coupling exit to the signal kills it
ETH 14/7 hold-to-short-expiry, all 5 algos positive totals BUT a 2021โ€“23 high-IV artifact: 2024/25/26 only +4/+7/+6%-pts; blind Friday entries beat every signal-timed combo (r/DD 21.8 vs best 13.6)
1-strike-OTM instead of ATMworse everywhere
ETH longer tenors (28/7, 28/14)same artifact pattern โ€” ETH verdict stands: signal timing adds nothing
BTC blind calendars (all tenors) positive every year in the model (14/7: +86/+17/+18/+4 by year, DD โˆ’1.7) โ€” but see section 4: real execution costs erase it

2. The find: per-trade fairness on BTC 28/14, 2024โ€“2026 only

Totals flatter the signals because they trade more often. Per-trade comparison, identical structure and evaluation (buy 28d / sell 14d ATM, hold 13.5d, M2 marks), entries 2024-01 onward:

Entry timing (BTC 28/14 ATM double calendar)navg/tradewin%
BLIND โ€” every Friday122+0.489%56
MA_CND_CROSS_H4 signals โ˜…181+0.984%67
EXPANSION_H4 signals220+0.777%60
STOCH_H4 signals192+0.724%62

By-year per trade (MA_CND_CROSS, signal-direction side): 2024 +0.63 ยท 2025 +0.42 ยท 2026 +0.37 โ€” the edge does not live in one regime. First options structure in this whole program where signal timing measurably adds value (credit spreads, naked options, long options on signals all failed this test).

3. Channel: direction or timing? โ€” pure timing

2ร—2 decomposition per signal direction ร— calendar side (MA_CND_CROSS, per trade, 24โ€“26):

Bucketncall calendarput calendar
LONG signals98+0.471%+0.514%
SHORT signals83+0.464%+0.520%
โ†’ SAME (signal direction) vs OPP181+0.493% vs +0.491% โ€” identical
BLIND reference122+0.252%+0.237%

Reading: which side you pick is irrelevant (SAME == OPP), and signal entries beat blind on BOTH sides by ~2ร—. The information in the signal is when, not where (mechanism in section 5c). Consequence: trade it as a double calendar (both sides, direction-neutral) โ€” that is also what survives execution best.

4. Real Deribit 2026 + execution costs (the decisive table)

Real Tardis quotes Jan 23 โ€“ May 22, 2026. Entry: buy ~28d / sell ~14d ATM at the nearest real expiries; exit 0.5d before short expiry, marked at real quotes. MID = everything at mark; EXEC = crossing the spread on all 4 legs (entry long@ask short@bid, exit long@bid short@ask):

Double calendar, per tradenMIDEXECEXEC win%4-leg round-trip cost
BLIND Fridays10+1.22%+0.01%50$422 (0.47% of spot)
MA_CND_CROSS_H4 โ˜…12+2.03%+1.55%91$183 (0.27%)
EXPANSION_H411+0.92%+0.48%72$207
STOCH_H49+0.87%+0.42%66$202

Three results in one table: (a) the blind calendar is NOT tradeable โ€” 4 legs of friction eat the entire carry (vs ~$10 for one future); (b) the MA_CND_CROSS-timed version keeps ~75% of its mid edge and stays clearly positive; (c) signal entries even pay tighter spreads โ€” they happen intraday when books are tight, Friday 08:00 entries sit on Deribit settlement when books are wide. Real marks also confirm the model ranking.

5. Significance: month-cluster bootstrap

13.5d holds overlap (avg ~4 open positions) โ†’ trades are serially correlated and a naive t-test lies. Bootstrap resamples calendar MONTHS (signal and blind paired on the same months, 10,000 resamples), statistic = per-trade mean difference signal โˆ’ blind, M2 2024โ€“26:

Algo (double calendar)diff/trade95% CIp(diff โ‰ค 0)
MA_CND_CROSS_H4+0.495%-pts[+0.24, +0.73]0.0002
EXPANSION_H4+0.288[+0.02, +0.56]0.019
STOCH_H4+0.235[โˆ’0.08, +0.53]0.069 (borderline)

MA_CND_CROSS survives even a Bonferroni correction over the full tenorร—asset grid it was selected from (~18 cells: 0.0002 ร— 18 = 0.004).

5b. Robustness sweep: all 5 algos ร— both assets (the full answer)

Same per-trade test (28/14 double calendar vs blind Fridays, M2 2024โ€“26, month-cluster bootstrap):

AlgoBTC (blind +0.489%/trade)ETH (blind +0.361%/trade)
ndiff/tradeboot-pndiff/tradeboot-p
MA_CND_CROSS_H4181+0.4950.000164+0.0420.44
MA_CND_CROSS_H1259+0.3360.019227+0.1440.25
EXPANSION_H4220+0.2880.016208โˆ’0.0970.74
STOCH_H4192+0.2350.065170โˆ’0.0650.61
RISE_FALL_H1156โˆ’0.0190.55139+0.0620.40

Reading: on BTC the edge is broad โ€” 4 of 5 algos positive, the MA family + EXPANSION significant โ€” so it is not a one-cell fluke. On ETH there is no timing edge at all (all p โ‰ฅ 0.25): the finding is BTC-specific, consistent with everything else in this program (ETH calendar carry itself was a 2021โ€“23 artifact). RISE_FALL_H1 (the fastest algo) carries no calendar-relevant information on either asset.

5c. Tenor anatomy + mechanism: it's terminal pinning, not vega

Same per-trade test across tenors (BTC MA_CND_CROSS, hold to 0.5d before short expiry):

Tenor (long/short)holdsignal/tradeblind/tradediffboot-p
14/76.5d+0.499+0.537โˆ’0.0380.62
28/76.5d+0.590+0.592โˆ’0.0020.51
28/1413.5d+0.984+0.489+0.4950.000
42/1413.5d+1.185+0.649+0.5360.002

The edge lives entirely in the 14d short leg / 13.5d hold โ€” 6.5d holds carry zero signal value. And the mechanism is NOT volatility: DVOL paths after signal entries are flat and identical to blind (ฮ” DVOL +1d/+3d/+7d/+13.5d all โ‰ˆ 0.00 vs blind, entry DVOL level identical). What differs is the terminal distribution: |spot move| over 13.5d is SMALLER after signals (5.90% vs 7.29% blind), while the 7d move is the same (5.1 vs 4.9). Two weeks after an MA_CND_CROSS entry, price tends to sit back near the entry level โ€” and a calendar held to short expiry is exactly a bet on spot finishing near the strike. So the honest mechanism: 2-week mean reversion to signal-entry levels, harvested via theta differential, not vega. (42/14 tested even better, but that is one more cell picked after looking โ€” treat as data, not as the trade.)

Cross-check that nails it: a naked SHORT 14d ATM straddle (same terminal bet, no 28d protection leg) shows the same edge even bigger โ€” signal-timed +1.79%/trade vs blind +0.22% (diff +1.57, bootstrap p = 0.0002). But its risk profile shows why the calendar is the vehicle: straddle worst trade โˆ’27%, MaxDD โˆ’64% of notional, vs the calendar's defined risk (max loss = net debit, ~1โ€“1.5%). The calendar keeps ~โ…“ of the pinning harvest for ~2% of the tail risk. (Straddle numbers are mechanism confirmation, NOT a trade proposal.)

6. Honest caveats

(1) Selection: BTC + 28/14 was chosen after looking at the grid โ€” the bootstrap cannot see that; treat the p-value as strong-but-not-pristine. (2) Real sample is tiny: n=12 double calendars in 3.5 months of 2026. The model cross-check (181 trades, 2.4 years, every year positive) is what carries the claim. (3) Overlap: ~4 positions open at once โ€” totals stack notional; per-trade numbers are the honest metric, and live sizing must cap concurrent calendars. (4) Quote availability selected which 2026 trades could be marked (n < n_signals). (5) This does NOT say calendars beat the futures trade on the same signal โ€” it is a different, market-neutral PnL channel (vega/theta instead of delta) with structurally small per-trade risk.

7. If traded (sketch, not a go-live)

ParameterValue
Triggerevery MA_CND_CROSS_H4 entry (long or short โ€” ignore direction)
StructureBTC double calendar: buy ~28d ATM call + put, sell ~14d ATM call + put (nearest listed expiries, same strikes)
Exit~0.5d before short expiry, close all 4 legs (no signal-exit coupling โ€” it kills the structure)
Executionlimit at mid where possible; the whole edge fits inside 1โ€“2 crossed spreads
Expectation~+0.7โ€“1.0%/trade of 1-BTC notional (model), real 2026 ran higher; max ~4โ€“5 overlapping positions
Next step before any sizepaper-trade it next to the live book; re-check after 20โ€“30 real trades

Sources: run_nik_calendar_signals.py, run_nik_cal_channel.py, run_nik_cal_real26.py, run_nik_cal_boot.py; full iteration log in NIK_ALGOS_LOG.md (iterations 1โ€“6, June 2026 night program).