Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save vmule/709195e29ac7de7ea5a16cf089e64324 to your computer and use it in GitHub Desktop.

Select an option

Save vmule/709195e29ac7de7ea5a16cf089e64324 to your computer and use it in GitHub Desktop.
v0.4 Systematic Options Premium Selling — Strategy Analysis & Improvement Recommendations (verified)

v0.4 Options Premium Selling — Strategy Analysis & Improvement Recommendations

Date: 2026-04-23 Analyst: Nadia Okonkwo Subject: Systematic index options premium selling strategy (v0.4) Context: Automated SPX credit spread premium selling system, 45-DTE, targeting monthly cash flow. Phase 1 (SPY covered calls on Alpaca) is code-complete. Phase 2 (SPX credit spreads on IBKR) is in progress.


Current Strategy Summary

What It Does

Systematically sells options premium on equity indices to generate monthly income. Collects small, frequent payments (premium) in exchange for taking on defined, bounded risk — analogous to an insurance company collecting premiums.

Phase 1: SPY Covered Calls (Alpaca) — LIVE

  • Sell calls against long SPY shares
  • Fully wired: daemon, fill walker, state persistence, reconciliation, daily summaries, launchd supervision

Phase 2: SPX Credit Spreads (IBKR) — IN PROGRESS

  • 45-DTE put credit spreads on SPX
  • Cash-settled, European-style options
  • §1256 60/40 tax treatment
  • IBKR options surface landed; daemon dispatch wiring is the open piece

Recommended Spread Construction Parameters

Parameter Value Rationale
Underlying SPX Cash-settled, European-style, §1256 tax treatment
Strategy Put credit spread (bull put spread) Defined risk, bullish/neutral bias, harvests VRP
DTE at entry 40-50 days (target 45) Optimal theta/gamma balance (ERN/Spintwig data)
Short put delta 10-16 delta (~1 standard deviation OTM) 84-90% probability of profit. 5-delta is safer but lower premium; 16-delta matches tastytrade research parameters
Spread width $25-50 Wider = more premium collected, more capital at risk. $25-wide on SPX = $2,500 max loss per spread
Max concurrent positions 3-4 spreads Stagger entries weekly to diversify timing. Never >50% of margin.
Entry timing Weekly (every Monday or Tuesday) Staggers DTE exposure; avoids concentrating all positions at same expiration
VIX regime gate Enter only when VIX < 30 AND VIX term structure in contango Pause when VRP is likely inverted
Management: Take profit Close at 50% of max credit received projectfinance data: best risk-adjusted approach
Management: Stop loss Close at 100% of credit received (2x max credit = breakeven on premium) projectfinance: 50% + 100% stop is optimal combo
Management: Time stop Close at 7 DTE if short strike within 2% of spot Gamma risk increases exponentially in final week
Max margin utilization 50% of available margin Buffer for margin expansion during vol spikes

Risk Parameters

  • Defined risk per trade (credit spreads cap max loss at spread width minus credit received)
  • Targets: monthly cash flow from theta decay
  • Max single-trade loss: spread width × number of contracts (e.g., $25-wide × 1 contract = $2,500)
  • Max portfolio risk: 50% of margin (e.g., $50K margin account → max $25K at risk across all positions)

KPI Framework

Strategy KPIs

KPI Definition Current State Target
Sharpe Ratio Risk-adjusted return (excess return / standard deviation). Measures how much return per unit of risk. >1.0 is acceptable, >1.5 is good, >2.0 is excellent. Unknown (no live track record) >1.5
Sortino Ratio Like Sharpe but only penalizes downside volatility, not upside. Better for asymmetric strategies like premium selling. >2.0 is good. Unknown >2.0
Max Drawdown Largest peak-to-trough loss. How bad does it get in the worst period? Unknown <15%
Win Rate Percentage of trades that are profitable. Premium selling typically has high win rates (70-85%) but the losses are larger than the wins. Expected: 75-85% >75%
Profit Factor Gross profits / gross losses. >1.0 means profitable. >1.5 is solid. >2.0 is excellent. Unknown >1.5
Monthly Yield Net premium collected / capital deployed, per month. Unknown 1-3%
Annual Return Net of all costs (commissions, slippage, taxes). Unknown 12-20% (net)
Volatility Risk Premium (VRP) Capture How much of the implied-vs-realized vol spread are you actually capturing? Unknown >60% of theoretical VRP

Operational KPIs

KPI Definition Current State Target
Fill Rate % of orders that execute at target price or better Phase 1: operational >95%
Uptime % of time the daemon is running and responsive Phase 1: launchd supervised >99.5%
Reconciliation Accuracy Does system state match broker state? Phase 1: daily reconciliation 100% per daily check
Time to React How quickly can the system close/adjust positions in a crisis? Unknown <5 minutes during market hours

The Edge: Volatility Risk Premium (VRP)

The fundamental source of edge in premium selling is the Volatility Risk Premium — the persistent gap between what the market expects volatility to be (implied vol / VIX) and what actually happens (realized vol).

Historical VRP Data

Metric Value Source
Average VIX (implied vol), 1990-2024 19.59% CFA Institute Enterprising Investor, July 2024
Average S&P 500 realized vol (30-day forward), 1990-2024 15.50% CFA Institute
Average VRP spread 4.09 percentage points CFA Institute
Median VRP spread 4.65 percentage points CFA Institute
CBOE White Paper VRP, 1990-2018 4.2 pp (19.3% implied vs 15.1% realized) CBOE VRP White Paper
OTM put options priced vs "fair value" More than 3× overpriced on average Hedge Fund Journal
Implied probability of 10% S&P decline 13% (market-priced) vs 4% (historical actual) Hedge Fund Journal

Why does the VRP exist? Investors systematically overpay for downside protection (puts) because the pain of losses exceeds the pleasure of equivalent gains (prospect theory). Institutions are mandated to hedge. This structural demand inflates implied volatility above realized volatility, creating a persistent premium that sellers can harvest.

Has it compressed? No published study shows definitive decade-by-decade compression. The long-term average has remained ~4 pp across multiple measurement windows (CFA Institute 1990-2024, CBOE 1990-2018). Practitioner commentary suggests possible narrowing from 0-DTE proliferation and retail short-vol strategies, but the data doesn't confirm this yet.

When does it fail? The VRP inverts (realized > implied) during crisis regimes — 2008, March 2020. These are the periods that generate large losses for unfiltered premium sellers.

Benchmark Indices

The CBOE publishes benchmark indices for the exact strategies used in v0.4:

CBOE S&P 500 PutWrite Index (PUT) — Systematic ATM cash-secured put selling on SPX:

Metric PUT Index S&P 500 TR Period Source
Annualized Return 9.54% 9.80% Jun 1986 – Dec 2018 Bondarenko 2019 (CBOE/SSRN)
Standard Deviation 9.95% 14.93% Jun 1986 – Dec 2018 Bondarenko 2019
Sharpe Ratio 0.65 0.49 Jun 1986 – Dec 2018 Bondarenko 2019
Beta to S&P 500 0.56 1.00 Jun 1986 – Dec 2018 Bondarenko 2019
Annualized Return 6.8% ~10.7% Jan 2007 – Mar 2026 CBOE PUT Factsheet (Mar 2026)
Annualized Volatility 10.8% 15.4% Jan 2007 – Mar 2026 CBOE PUT Factsheet
Sharpe Ratio 0.49 ~0.6 Jan 2007 – Mar 2026 CBOE PUT Factsheet
Beta to S&P 500 0.61 1.00 Jan 2007 – Mar 2026 CBOE PUT Factsheet
Max Drawdown -32.7% -50.9% Jan 2007 – Mar 2026 CBOE PUT Factsheet

Recent calendar year performance (CBOE factsheets, PortfoliosLab):

Year PUT Index S&P 500 TR Delta
2020 2.1% 18.4% -16.3%
2021 21.8% 28.7% -6.9%
2022 -7.7% -18.1% +10.4%
2023 14.3% 26.3% -12.0%
2024 17.8% 25.0% -7.2%

Key takeaway: PUT underperforms S&P 500 in strong bull markets (2020, 2023) but outperforms in down markets (2022). The Sharpe advantage (0.65 vs 0.49) means you get nearly the same return with ~33% less volatility. The 2020-2024 period favored equities, compressing PUT's relative advantage vs. the longer 1986-2018 window.

CBOE S&P 500 BuyWrite Index (BXM) — Systematic ATM covered call writing (relevant to Phase 1):

Metric BXM S&P 500 Period Source
Annualized Return 11.77% 11.67% Jun 1988 – Aug 2006 Callan/Ibbotson study
Standard Deviation 9.29% 13.89% Jun 1988 – Aug 2006 Callan/Ibbotson
Sharpe Ratio (annualized) 0.77 Jun 1988 – Aug 2006 Callan/Ibbotson
Avg monthly gross premium 1.7% of notional CBOE Benchmark Series

Strengths of Current Strategy

  1. Harvests a documented, persistent edge — The VRP has averaged 4.09-4.2 pp over 34 years across multiple studies (CFA Institute, CBOE). This isn't a backtested anomaly — it's a structural feature of options markets driven by hedging demand.

  2. Defined risk — Credit spreads cap max loss per trade. No naked short options. This is the single most important design decision.

  3. 45-DTE targets optimal theta decay — ERN/Spintwig backtests (2018-2020) show 5-delta SPY puts achieved 7.03% CAGR with ~96% win rate and 82% less volatility than SPY at 1x leverage (ERN Passive Income Part 5). The 45-DTE window balances premium collected against gamma risk near expiration.

  4. §1256 tax treatment — SPX options receive 60% long-term / 40% short-term capital gains tax treatment regardless of holding period (IRS Publication 550). At a combined marginal rate of ~40%, this saves ~5-8% effective tax rate vs. SPY options taxed entirely as short-term gains.

  5. European-style exercise — No early assignment risk. Eliminates an entire category of operational surprises.

  6. Cash-settled — No need to manage underlying shares. Cleaner operationally.

  7. Infrastructure-first approach — Daemon, state persistence, reconciliation, fill walker. This is how institutional systems are built. Most retail traders fail on operations, not strategy.


Weaknesses & Improvement Opportunities

1. Single-Underlying Concentration (HIGH IMPACT)

Problem: All positions are on SPX. In a correlated selloff (2020 COVID, 2022 bear market, 2018 Volmageddon), every position gets hit simultaneously. The portfolio has zero diversification benefit.

Improvement: Add 2-3 uncorrelated or low-correlated underlyings:

Underlying Correlation to SPX Why
TLT (20+ Year Treasury ETF) Historically negative to SPX (varies by regime) Bonds often rally when equities sell off. Premium selling on both captures VRP in both regimes.
GLD (Gold ETF) Historically low correlation to SPX Low correlation provides genuine diversification. Gold vol tends to spike independently from equity vol.
/CL options (Crude Oil) Moderate correlation to SPX Commodity vol is driven by supply/demand, not the same factors as equity vol.

Note: Exact correlation values depend on the measurement period and regime. In my assessment, adding even one uncorrelated underlying (TLT is the most natural complement) would meaningfully reduce portfolio drawdowns, but this should be validated with historical correlation analysis before implementation.

Caveat: More underlyings = more operational complexity. Each needs its own vol surface, position sizing, and monitoring. Start with one addition (TLT is the most natural complement).

2. No Regime Detection (HIGH IMPACT)

Problem: The strategy appears to sell premium uniformly regardless of market regime. But premium selling performs very differently in:

  • Low-vol trending markets (best — VRP is positive, realized vol < implied vol)
  • High-vol mean-reverting markets (good — elevated premium, but wider spreads needed)
  • Crash/crisis regimes (worst — VRP inverts, realized vol > implied vol, spreads blow through)

Improvement: Add a regime filter using VIX levels or VIX term structure:

VIX Level Regime Strategy Adjustment
<15 Low vol Standard position size, tighter spreads (higher probability)
15-25 Normal Standard position size, standard spreads
25-35 Elevated Reduce position size 50%, widen spreads, extend DTE to 60
>35 Crisis Stop selling premium entirely. Wait for VIX to drop below 30. Consider buying protection.

Also consider: VIX term structure (contango vs. backwardation). When VIX futures are in backwardation (near-term > far-term), the market is pricing in immediate risk. Every S&P 500 drawdown >10% since 2008 was accompanied by VIX term structure inversion (Volatility Box research). This is a reliable confirmation signal for stepping aside.

Evidence for VIX filtering:

Study Metric With VIX Filter Without Filter Source
VIX 200-day MA filter (2005-2025) Max Drawdown -22% -55% Volatility Box
VIX 200-day MA filter (2005-2025) Annual Return 9.8% 9.2% Volatility Box
VIX Rank 70 filter (options strategy) Max Drawdown 8.7% 12.9% Options Cafe
VIX Rank 70 filter (options strategy) Profit Factor 2.52 1.64 Options Cafe

Key finding: VIX filtering cuts max drawdown by 32-60% with minimal or zero return sacrifice. The specific threshold (VIX > 30, VIX Rank > 70, or VIX 200-day MA crossover) matters less than having some regime filter. The VIX term structure inversion (backwardation) is the most reliable crisis confirmation signal.

Caveat: No published study specifically tests "pause premium selling when VIX > 30" on a pure short-premium strategy. The studies above apply VIX filters to equity or mixed strategies. However, the mechanism is clear — when VRP inverts (realized > implied), premium sellers lose. VIX > 30 correlates strongly with VRP inversion.

3. No Dynamic Position Sizing (MEDIUM IMPACT)

Problem: The description mentions 1% risk per trade for v0.3 but doesn't specify position sizing for v0.4. Fixed-size positions don't adapt to changing market conditions.

Improvement: Scale position size inversely with implied volatility:

Position size = Base size × (Target vol / Current IV)

When IV is high, take smaller positions (vol is elevated, risk is higher). When IV is low, take standard positions. This naturally reduces exposure before big moves.

Kelly Criterion consideration: For a strategy with known win rate and average win/loss ratio, the Kelly formula gives the mathematically optimal position size:

Kelly % = Win% - (Loss% / Win:Loss ratio)

Most practitioners use "half Kelly" (50% of the Kelly-optimal size) to reduce variance. For a typical premium selling strategy with 80% win rate and 1:3 win:loss ratio, full Kelly is ~53%, half Kelly is ~27% of capital at risk at any time.

4. No Roll/Adjustment Rules (MEDIUM IMPACT)

Problem: What happens when a position moves against you? The doc describes defined risk (credit spreads), which caps the loss. But simply holding to max loss every time leaves money on the table.

Improvement: Systematic adjustment rules:

Trigger Action Rationale
Short strike breached with >21 DTE remaining Roll down and out (lower strike, farther expiration) for a credit Extends duration, collects additional premium, moves away from the money
Short strike breached with <21 DTE remaining Close for a loss Not enough theta left to make a roll worthwhile
Position reaches 50% of max profit with >21 DTE Close early, redeploy capital See data below
Position reaches 50% of max profit with <14 DTE Hold to expiration Minimal additional risk, small remaining theta to collect

Evidence for 50% profit management (projectfinance, 11-year backtest, SPY 16-delta strangles at 60 DTE):

Management Approach Win Rate Avg P&L/Trade Total P&L Max Single Loss
Hold to Expiration 54.9% $48.18 $2,635 -$2,808
25% Profit Target 69.1% $33.82 $1,850 -$1,470
50% Profit Target 65.5% $38.36 $2,100 -$1,680
75% Profit Target 58.2% $45.27 $2,490 -$1,575
50% Profit + 100% Stop 63.6% $44.18 $2,430 -$1,575

Source: projectfinance — Short Strangle Management Results (11-Year Study)

Key finding: 50% profit target increases win rate from 54.9% to 65.5% and reduces max single loss from -$2,808 to -$1,680 (40% reduction). The best combined approach is 50% profit target + 100% stop loss — highest avg P&L/trade ($44.18) with lowest max loss (-$1,575). This is the recommended management rule for v0.4.

Note: tastytrade has published similar findings via their Market Measures show (2005-2017 data, SPY 1-SD strangles at 45 DTE) but their research is video-only without downloadable data tables. The projectfinance study is the best publicly available replication with exact numbers.

5. No Correlation to Overall Portfolio (MEDIUM IMPACT)

Problem: How does this strategy interact with the rest of the portfolio? If the operator also holds long equities (401k, index funds), selling puts on SPX adds more long equity delta exposure. In a crash, everything gets hit.

Improvement:

  • Document total portfolio delta exposure across all accounts
  • Size the options strategy relative to total net worth, not just the trading account
  • Consider: if total equity exposure (401k + taxable + options) exceeds a threshold (e.g., 70% of net worth), reduce the options position or shift to bearish strategies (call spreads instead of put spreads)

6. Missing Risk Categories (MEDIUM IMPACT)

Problem: Several risk categories are not addressed in the current strategy design:

a) Liquidity risk: SPX options have deep liquidity in normal markets, but bid-ask spreads widen dramatically during volatility spikes. In March 2020, SPX put spreads that normally had $0.50 bid-ask widened to $5-10+. If you need to close in a crisis, the cost of exiting can eat 20-50% of the max loss budget. Credit spreads partially mitigate this (defined max loss), but early exit to avoid max loss may be expensive when you most want it.

Mitigation: Size positions assuming you will hold to expiration (max loss). Treat early exit as a bonus, not a plan.

b) Gamma risk near expiration: As options approach expiration, gamma (the rate of delta change) increases dramatically. A 5-point OTM put at 45 DTE barely moves with the market. The same put at 2 DTE is a binary bet. If a position is near the short strike with <7 DTE, close it — the risk/reward flips against you.

Mitigation: Mandatory close at 7 DTE if the short strike is within 2% of current price, regardless of P&L.

c) Margin expansion risk: Brokers can raise margin requirements during volatility spikes, sometimes intraday. If margin increases and the account can't cover it, the broker force-liquidates at the worst possible time.

Mitigation: Never use more than 50% of available margin. This provides a 2x buffer for margin expansion.

d) Vega risk (IV crush/spike): A sudden IV spike (VIX jumps 10+ points in a day) causes immediate mark-to-market losses on all open short premium positions, even if the underlying hasn't moved enough to breach strikes. Conversely, a sudden IV crush can create windfall gains.

Mitigation: The regime filter (VIX > 35 = stop selling) handles the worst case. For moderate spikes, defined-risk spreads cap the max loss regardless of IV.

e) Pin risk / ex-dividend (Phase 1 only): SPY covered calls can be assigned early on ex-dividend date if the call is ITM and the dividend exceeds the remaining time value. This creates unexpected position changes and tax events.

Mitigation: This is a Phase 1 (SPY) issue only. Phase 2 (SPX) uses European-style cash-settled options with no assignment risk. For Phase 1: close or roll any ITM calls before ex-dividend date.

7. Backtest Validation Gap (HIGH IMPACT)

Problem: No live track record and no mentioned backtest results. The strategy is based on sound principles, but without historical performance data, the KPIs are all "unknown."

Improvement:

  • Backtest SPX 45-DTE put credit spreads over 2015-2025 (covers: 2018 Volmageddon, 2020 COVID crash, 2022 bear market, multiple Fed rate cycles)
  • Measure all KPIs above against the backtest
  • Specifically stress-test: What happens in March 2020? What happens in Oct 2018? What's the worst single month?
  • Use OptionStack, OptionNet Explorer, or custom Python (using CBOE historical options data or OptionsDX) for backtesting

Recommended Priority

# Improvement Impact Effort Priority
1 Backtest validation — Verify strategy against 10-year history before going live HIGH MEDIUM DO FIRST
2 Regime detection — VIX filter + term structure check to pause selling in crisis HIGH LOW DO SECOND
3 Close at 50% profit + 100% stop — Best risk-adjusted mgmt per projectfinance data HIGH LOW DO THIRD (low effort, high impact)
4 7-DTE gamma close — Mandatory exit if short strike within 2% of spot with <7 DTE MEDIUM LOW DO FOURTH
5 Dynamic position sizing — Scale with IV, never >50% margin utilization MEDIUM MEDIUM DO FIFTH
6 Add TLT as second underlying — Diversification with negative SPX correlation HIGH HIGH DO SIXTH (after SPX is stable)
7 Roll/adjustment rules — Systematic loss management for breached strikes MEDIUM MEDIUM DO SEVENTH
8 Portfolio-level delta management — Whole-portfolio view across all accounts MEDIUM LOW ONGOING

Expected Performance (With Improvements)

Base Case (Verified from published benchmarks)

KPI Value Source
Annual Return 6.8-9.5% CBOE PUT Index: 6.8% (2007-2026 factsheet), 9.54% (1986-2018, Bondarenko)
Sharpe Ratio 0.49-0.65 CBOE PUT: 0.49 (2007-2026 factsheet), 0.65 (1986-2018, Bondarenko)
Max Drawdown -32.7% CBOE PUT Index factsheet
Win Rate 54.9% (strangles, hold to exp.) projectfinance 11-year study
Profit Factor 1.64 (unfiltered) Options Cafe backtest

With Improvements (Analyst Estimates — Not Backtested)

⚠️ These are directional projections based on individual improvement data points. They are NOT backtested as a combined system. Do not use for capital allocation without end-to-end backtesting.

KPI Estimated Range Reasoning
Annual Return 8-12% PUT baseline + regime filter avoids worst months + 50% mgmt redeploys capital faster. In my assessment, unlikely to exceed 15% sustainably given VRP of ~4 pp.
Sharpe Ratio 0.8-1.5 VIX filter improved profit factor 53% in Options Cafe study (1.64→2.52). Applying similar improvement to PUT Sharpe: 0.65 × 1.5 ≈ 1.0. Range reflects uncertainty.
Max Drawdown -13% to -22% PUT -32.7% reduced by VIX filtering (32-60% reduction per Volatility Box). Lower bound assumes all filters work; upper bound assumes partial effectiveness.
Win Rate 63-66% (with 50% mgmt) projectfinance: 65.5% with 50% target, 63.6% with 50% + stop. Directly sourced, not estimated.
Profit Factor 2.0-2.5 Options Cafe: 2.52 with VIX Rank 70 filter. Sourced, but from a different base strategy — may not transfer directly.

Critical caveat: No published study combines ALL these improvements (VIX filter + 50% management + dynamic sizing + multi-underlying) into a single backtest. Individual improvements are documented, but may interact unpredictably.

Benchmark comparison: S&P 500 buy-and-hold returned 6.8% annualized over the same period as PUT (CBOE factsheet, 2007-2026) with -50.9% max drawdown. The premium selling strategy's value is similar returns with dramatically less drawdown — risk-adjusted profile, not raw return.

Disclaimer

This analysis is based on published research and general financial principles. It is not investment advice. Past performance of referenced benchmarks does not guarantee future results. Options trading involves significant risk of loss. The analyst (Nadia Okonkwo) is a business analyst and financial modeler, not a licensed financial advisor or registered investment professional.


Sources

VRP & Benchmark Performance

Trade Management Research

Regime Filtering

DTE & Backtest Data

Tax Treatment

Risk Management

Backtesting Tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment