Skip to content

Summary

Computes the net expected value of a long butterfly (long wings, short 2x body) at expiration, with per-strike IVs so put-skew asymmetry is priced. Butterfly EV is a bet on the shape of the terminal real-world density versus the pricing density — the most sensitive of the four structures to the probability model.

Computation

EV = ∫ payoff(S_T) dP_realworld(S_T) − commissions − slippage, with the tent payoff.

Pseudo-formula:

debit      = price(lower) + price(upper) − 2·price(body)     # per-strike IVs allowed
max_profit = wing_width − debit   (S_T = body at expiry; symmetric fly)
max_loss   = debit
ev_gross   = ∫ tent(S_T) − debit  dP_realworld(S_T)   # exact lognormal CDF closed forms
tent(S)    = max(0, S−lower) − 2·max(0, S−body) + max(0, S−upper)
costs      = 4·fee_per_contract·n  +  slippage_pct·debit·100·n   # 4 contract fills
ev_net     = ev_gross − costs / (100·n)
baseline_vrp   = iv − 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 number yes ATM IV at evaluation
dte integer yes days to expiration
lower_strike / body_strike / upper_strike number yes wings and short body (2x)
option_type string no call or put (equivalent at expiry)
contracts integer no size, default 1
fee_per_contract number no per contract fill; four fills per fly (1 lower, 2 body, 1 upper)
slippage_pct number no fraction of debit; tight flies slip hardest
skew_put / skew_body / skew_call number no per-strike IVs
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, max profit (width − debit at the body), max loss, total_costs, baseline_vrp, baseline_ev_rv, edge_vs_rv, and a receipt for the run-ev skill. When per-strike IVs are absent, baseline_vrp plus the smiles evidence governs interpretation.

Limitations

The physical 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); the density-vs-density comparison uses exact lognormal CDF probabilities. Fat tails, skew of the physical density, and pin risk at the body are TODO(data-feed). Early exit and the short-wings ("broken wing") variant are not modeled. Context: butterfly setup and spread mechanics.

References

  • Hull, Options, Futures and Other Derivatives, 8e (Pearson) — volatility smiles and implied distributions.
  • Natenberg, Option Volatility and Pricing (McGraw-Hill, 1994) — skewed distributions and butterflies.
  • Breeden & Litzenberger, "Prices of State-Contingent Claims Implicit in Option Prices," Journal of Business 51(4), 1978 — density implied by butterfly spreads.
  • py_vollib documentation — https://py_vollib.readthedocs.io/

Links