Trading Dev AcademyFree quant education

Free lesson · Volatility

Strike convexity and a butterfly consistency check

Open interactive lessonPractice calculationsExplore labs

Start with the idea

A long butterfly has a nonnegative terminal payoff when strikes are equally spaced.

Symbols, units & horizon
  • C(k): same-expiry European call price per unit at strike k
  • K: middle strike
  • h>0: equal strike spacing in currency per unit
  • B: butterfly price per underlying unit
  • inequality assumes frictionless comparable contracts

When and why to use this

Validate option data and model interpolations before computing Greeks or implied densities.

A long butterfly has a nonnegative terminal payoff when strikes are equally spaced.

Buy one lower-strike call, sell two middle-strike calls and buy one upper-strike call, all European with identical underlying, expiry, settlement and multiplier. Its terminal payoff forms a tent around the middle strike and never becomes negative.

Therefore a negative frictionless price is inconsistent with that payoff. In real quotes, evaluate lower and upper calls at asks and the two sold middle calls at bids. A smooth-looking implied-volatility curve can still produce inconsistent option prices.

B=C(K−h)−2C(K)+C(K+h)≥0
Payoff algebra and a necessary local no-arbitrage condition

Strike convexity and a butterfly consistency check

  1. Below the lowest strike every payoff is zero.
  2. Between low and middle strikes the first call increases payoff; between middle and high strikes the two shorts reduce it back to zero.
  3. Above the high strike the linear terms cancel exactly, so nonnegative payoff requires nonnegative price under no-arbitrage assumptions.
Work it by hand

Call prices at strikes 90,100,110 are 13,8,4. Butterfly price=13−16+4=1. If middle price were 9, the price would be −1, requiring investigation of executable quotes.

Apply it in a strategy

  • Freeze inputs at the stated decision time and record their units.
  • Validate option data and model interpolations before computing Greeks or implied densities.
  • Recompute the example, then change the material assumption and explain the difference.

Research deliverable

Strike convexity and a butterfly consistency check: produce the worked calculation, a timestamped input record and a written decision addressing this limitation: A three-strike check is necessary only locally; passing it does not prove a whole surface is arbitrage-free.

These are synthetic mechanics examples, not historical performance or paper replications. Module evidence and research boundaries record the 12 September 2026 review.

Python implementation

Self-contained teaching example. Python 3.10+; dependencies and input conventions are shown in the code and notation. Run in your own Python environment.

# Python 3.10+; standard library and NumPy only.
# Synthetic teaching inputs; conventions and units are defined in the notation above.
def butterfly_price(low_call,middle_call,high_call):
    if min(low_call,middle_call,high_call)<0: raise ValueError('Nonnegative option prices required')
    return low_call-2*middle_call+high_call

assert butterfly_price(13,8,4)==1
assert butterfly_price(13,9,4)==-1
print(butterfly_price(13,8,4))

Continue learning

Volatility: Measurement, Surfaces & Variance Risk — all lessons
  1. Realized variance starts with squared returns
  2. EWMA as a causal variance baseline
  3. A multi-horizon realized-variance forecast
  4. Implied volatility is a model inversion
  5. Term structure through total and forward variance
  6. Strike convexity and a butterfly consistency check
  7. Vega requires a volatility-unit convention
  8. Variance exposure and the difference from arbitrage

Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations