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.
| Test | Result |
|---|---|
| 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 ATM | worse 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 |
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) | n | avg/trade | win% |
|---|---|---|---|
| BLIND โ every Friday | 122 | +0.489% | 56 |
| MA_CND_CROSS_H4 signals โ | 181 | +0.984% | 67 |
| EXPANSION_H4 signals | 220 | +0.777% | 60 |
| STOCH_H4 signals | 192 | +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).
2ร2 decomposition per signal direction ร calendar side (MA_CND_CROSS, per trade, 24โ26):
| Bucket | n | call calendar | put calendar |
|---|---|---|---|
| LONG signals | 98 | +0.471% | +0.514% |
| SHORT signals | 83 | +0.464% | +0.520% |
| โ SAME (signal direction) vs OPP | 181 | +0.493% vs +0.491% โ identical | |
| BLIND reference | 122 | +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.
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 trade | n | MID | EXEC | EXEC win% | 4-leg round-trip cost |
|---|---|---|---|---|---|
| BLIND Fridays | 10 | +1.22% | +0.01% | 50 | $422 (0.47% of spot) |
| MA_CND_CROSS_H4 โ | 12 | +2.03% | +1.55% | 91 | $183 (0.27%) |
| EXPANSION_H4 | 11 | +0.92% | +0.48% | 72 | $207 |
| STOCH_H4 | 9 | +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.
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/trade | 95% CI | p(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).
Same per-trade test (28/14 double calendar vs blind Fridays, M2 2024โ26, month-cluster bootstrap):
| Algo | BTC (blind +0.489%/trade) | ETH (blind +0.361%/trade) | ||||
|---|---|---|---|---|---|---|
| n | diff/trade | boot-p | n | diff/trade | boot-p | |
| MA_CND_CROSS_H4 | 181 | +0.495 | 0.000 | 164 | +0.042 | 0.44 |
| MA_CND_CROSS_H1 | 259 | +0.336 | 0.019 | 227 | +0.144 | 0.25 |
| EXPANSION_H4 | 220 | +0.288 | 0.016 | 208 | โ0.097 | 0.74 |
| STOCH_H4 | 192 | +0.235 | 0.065 | 170 | โ0.065 | 0.61 |
| RISE_FALL_H1 | 156 | โ0.019 | 0.55 | 139 | +0.062 | 0.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.
Same per-trade test across tenors (BTC MA_CND_CROSS, hold to 0.5d before short expiry):
| Tenor (long/short) | hold | signal/trade | blind/trade | diff | boot-p |
|---|---|---|---|---|---|
| 14/7 | 6.5d | +0.499 | +0.537 | โ0.038 | 0.62 |
| 28/7 | 6.5d | +0.590 | +0.592 | โ0.002 | 0.51 |
| 28/14 | 13.5d | +0.984 | +0.489 | +0.495 | 0.000 |
| 42/14 | 13.5d | +1.185 | +0.649 | +0.536 | 0.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.)
| Parameter | Value |
|---|---|
| Trigger | every MA_CND_CROSS_H4 entry (long or short โ ignore direction) |
| Structure | BTC 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) |
| Execution | limit 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 size | paper-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).