Preliminary

Timed variance selling

Selling 30-day volatility only into the months the regime model calls calm — the one result that brings together the project's two best pieces.

The question: The volatility premium is real but carries a brutal tail. Can the tail be dodged without losing the premium?

What was found

Selling variance collects a known premium and loses badly when a storm arrives. The volatility-regime model — the project's only 13/13 result, which had failed both as a direction signal and as a portfolio allocator — predicts exactly that: when volatility rises. Putting them together is the first time two of the project's results fit rather than compete. In the holdout, the unfiltered book makes 2.39 points a month with a worst month of −55.14; filtering to P(more volatility) < 0.40 makes 8.94 with a worst month of −5.31. And in calendar time — the filter is only deployed 4.6 months a year — it still wins: +41.3 points annually against +28.5.

Volatility model 30d+8.94Funding in high percentile+6.89No drawdown (dd > −10%)+4.90DVOL in high percentile+4.45Volatility model 3d+3.62Price above the 200-day average+3.57Low RSI+2.67Volatility model 7d+1.83Volatility model 14d+1.25Low realized volatility-0.43DVOL in low percentile-2.58
Eleven filters, all calibrated to keep the SAME fraction of months — comparing filters that retain different fractions is exactly how a filter takes credit for nothing. Volatility points earned per month, in the holdout.analysis/scripts/phase19_filter_benchmark_2026-09-07.py
Volatility model 30d-5.3Funding in high percentile-19.6No drawdown (dd > −10%)-20.2DVOL in high percentile-42.0Volatility model 3d-40.2Price above the 200-day average-29.5Low RSI-49.9Volatility model 7d-60.0Volatility model 14d-49.9Low realized volatility-22.3DVOL in low percentile-30.4
The same eleven filters by their WORST month. The 30-day model's (in orange) protects the tail almost four times better than the next best: −5.3 points against −19.6. That, more than the mean, is where the value is.analysis/scripts/phase19_filter_benchmark_2026-09-07.py

Try it yourself

Here's the trade from the inside: you sell at implied minus the spread, and 30 days later you settle against the volatility that actually happened.

Result (points) = Implied − Spread − Realized
Trade result (volatility points)

In money, at $1,000 of vega per point:

Try setting realized to 100 with an implied of 45: that's the January 2026 month the filter avoided, −67 points in BTC. The tail isn't a hypothesis.

Illustrative example numbers for practice — not real data.

How it was tested, step by step

  1. Every 30 days a position is considered: sell variance at Deribit's implied volatility minus 2 points of spread, with no overlapping positions.
  2. Before opening it, the 30-day volatility-regime model is consulted. If the probability of more volatility is under 0.40, the position is opened; otherwise the month is skipped.
  3. The threshold wasn't picked by looking at results: every cut between 0.20 and 0.40 gives a holdout mean of +8.8 to +9.8 and a worst month between −2.9 and −7.9. From 0.45 it falls off a cliff. A plateau with a stable ledge on one side is what a real threshold looks like; an isolated peak is what overfitting looks like.
  4. Three controls, all three passed: a random filter keeping the same fraction of months gives +2.68 mean and −53.75 worst month (p=0.000 on both); the inverted filter is worse on both metrics, as it should be; and it isn't "sell when implied is already high" in disguise — rank correlation with the DVOL percentile is only −0.26.
  5. And the hardest test: applying BTC's model filter — which never saw a single ETH data point — to the same trade in ETH. Unfiltered, in ETH the trade LOSES money in the holdout (−1.43 mean); with BTC's filter it turns to +6.32.
BookTradesMean/monthWorst month% winning
BTC unfiltered44+2.39−55.1470%
BTC with P < 0.4017+8.94−5.3182%
ETH unfiltered44−1.43−62.0259%
ETH with BTC's filter17+6.32−21.6676%

2023+ holdout, in volatility points. The ETH replication is the strongest evidence the finding has: the model never saw a single ETH data point.

What this does NOT say. It rests on 17 filtered months in the holdout, and DVOL only begins in March 2021, so everything stands on 5.4 years. Seventeen months don't estimate a tail. Harvesting it also requires options execution on Deribit, which this project doesn't have, and the figures are in volatility points per unit of vega, not return on capital — selling variance requires margin, and how much margin decides the real return. And one thing explicitly NOT claimed: combining this filter with a high-DVOL one gives 10 months, mean +12.42 and a worst month of +4.12 (it never lost). That's spectacular and exactly the kind of combination chosen AFTER seeing results; it's noted as an observation, not a finding. Finally, timing the premium with a regime model only works in crypto: in the S&P 500, Nasdaq, gold and crude oil the same filter adds nothing.

Tracking

This finding has no live number: it was measured on archived data, and putting a chart here would imply continuous tracking that doesn't exist. The figures are above, with the script that produced them.

← All research