Summary¶
Computes the net expected value of a long calendar or diagonal (short front month, long back month) evaluated at the planned front-expiry exit, where the payoff is back-leg value minus front-leg settlement minus debit paid. Two separate IVs capture the term structure, which is the actual edge being traded.
Computation¶
EV = E[(back-leg value − front settlement − debit) at exit] − commissions − slippage.
Pseudo-formula:
debit = price(long_strike, dte_back, iv_back) − price(short_strike, dte_front, iv_front)
ev_gross = Σ_scenarios P(s) · [ back_value(S_T, dte_back−dte_front)
− settlement(short_strike, S_T) ] − debit
costs = 3·fee_per_contract·n + slippage_pct·debit·100·n # 2 entry fills + front-leg exit; back leg stays open (marked to model) — eventual back-leg closure cost is a documented assumption outside this receipt
ev_net = ev_gross − costs / (100·n)
baseline_vrp = iv_front − rv_window # variance risk premium, annualized vols
baseline_ev_rv = SAME structure's EV under the RV distribution (rv_window)
edge_vs_rv = ev_net − baseline_ev_rv
Parameters¶
| Name | Type | Req | Notes |
|---|---|---|---|
| spot | number | yes | underlying price at evaluation |
| iv_front / iv_back | number | yes | IVs of short and long strikes (term structure) |
| dte_front / dte_back | integer | yes | expirations of short and long legs |
| short_strike / long_strike | number | yes | equal for a pure calendar; different for a diagonal |
| option_type | string | no | call or put |
| contracts | integer | no | size, default 1 |
| fee_per_contract | number | no | per leg per contract |
| slippage_pct | number | no | fraction of debit |
| exit_dte_front | integer | no | planned exit point; default 0 (hold to front expiry); 0 ≤ exit ≤ dte_front |
| iv_front_hist_mean | number | no | historical term-structure context (informational) |
| rv_window | number | yes | annualized real-world realized vol estimate (fail-closed) |
| garch_forecast | number | yes | annualized GARCH-class real-world vol forecast (fail-closed) |
What It Reports¶
ev_net, ev_gross, debit, total_costs, baseline_vrp (front IV minus rv_window), baseline_ev_rv, edge_vs_rv, and a receipt for the run-ev skill.
Limitations¶
The exit distribution is lognormal under the GARCH forecast (garch_forecast) with equity-premium drift (r + 4% equity risk premium; dividends do not enter the index-price drift for total-return-ignored index options); front-leg settlement at expiry uses exact lognormal CDF closed forms and the marked back-leg value uses deterministic high-resolution quadrature in normal space. Front-month vol mean reversion and back-leg vega response to a changed vol surface are TODO(data-feed). Early assignment of short front options near the dividend/ex-date, pin risk at the short strike, and post-exit management of the naked back leg are not modeled. Context: calendar conditions and theta/vega mechanics.
References¶
- Natenberg, Option Volatility and Pricing (McGraw-Hill, 1994) — calendar pricing and term structure.
- Passarelli, Trading Option Greeks, 2e (Bloomberg Press, 2012) — calendar/diagonal mechanics.
- Hull, Options, Futures and Other Derivatives, 8e (Pearson) — multi-expiry valuation.
- py_vollib documentation — https://py_vollib.readthedocs.io/