Static Arbitrage in Call Prices

Options Pricing · Hard · Free problem

For a single maturity $T$, you observe European call prices $C(K)$ at five equally-spaced strikes:

| Strike $K$ | 80 | 90 | 100 | 110 | 120 | |---|---|---|---|---|---| | Call price $C(K)$ | 24.5 | 17.8 | 13.2 | 8.1 | 5.3 |

  1. State the necessary and sufficient no-arbitrage conditions that any set of call prices $C(K)$ must satisfy as a function of strike. Express them as constraints on the first and second finite differences of $C$ with respect to $K$.
  1. Check each condition against the data above. Identify any violation.
  1. For any violation you find, construct an explicit static-arbitrage portfolio -- a linear combination of calls and cash -- that yields a non-negative payoff in every state with a strictly positive initial cash inflow.

Hints

  1. No-arbitrage for calls as a function of strike boils down to monotonicity and convexity. What financial instruments correspond to testing each condition?
  2. A butterfly spread $C(K-h) - 2C(K) + C(K+h)$ tests convexity at strike $K$. Compute this for each interior strike and check the sign.
  3. If any butterfly cost is negative, you receive cash upfront for a position with a non-negative payoff everywhere -- that is your arbitrage portfolio.

Worked Solution

How to Think About It: Call prices as a function of strike encode the market's risk-neutral distribution. If you plot $C(K)$ against $K$, basic economic reasoning forces three things: the curve must be decreasing (higher strike means less valuable option), the slope must stay between $-1$ and $0$ (a call spread pays at most the strike width), and the curve must be convex (the risk-neutral density is non-negative). Any violation of these conditions means you can construct a portfolio of calls that costs you nothing (or pays you upfront) and never loses money -- a pure static arbitrage. In an interview, the fastest way to check is to compute all the finite-difference slopes and the butterfly costs.

Quick Sanity Checks: - $C(K)$ decreasing in $K$: each call should be cheaper than the one with a lower strike. - Slopes $\Delta C / \Delta K$ between $-1$ and $0$: a call spread with width $\Delta K$ pays at most $\Delta K$, so its price change can't exceed $\Delta K$ in magnitude. - Convexity: every butterfly spread must have non-negative cost. In discrete terms, $C(K - h) - 2C(K) + C(K + h) \geq 0$ for all interior strikes with spacing $h$.

Derivation:

*Part 1 -- No-arbitrage conditions:*

For call prices $C(K)$ on a single maturity, the necessary and sufficient conditions are:

  1. Non-negativity: $C(K) \geq 0$ for all $K$.

2. Monotonicity: $C(K)$ is non-increasing in $K$. For discrete strikes with spacing $h$: $\frac{C(K + h) - C(K)}{h} \leq 0$

3. Slope bound: The slope is bounded below by $-1$ (using the present value of the strike difference, but for simplicity assuming unit discount factor): $-1 \leq \frac{C(K + h) - C(K)}{h} \leq 0$

4. Convexity: $C(K)$ is convex in $K$. For three equally-spaced strikes: $C(K - h) - 2C(K) + C(K + h) \geq 0$

This is equivalent to saying the butterfly spread at every interior strike has non-negative cost.

*Part 2 -- Checking the data:*

Compute the finite-difference slopes (per unit strike, with $h = 10$):

| Interval | $\Delta C$ | Slope $\Delta C / h$ | |---|---|---| | 80 to 90 | $-6.7$ | $-0.67$ | | 90 to 100 | $-4.6$ | $-0.46$ | | 100 to 110 | $-5.1$ | $-0.51$ | | 110 to 120 | $-2.8$ | $-0.28$ |

Monotonicity: all slopes are negative. Slope bound: all lie between $-1$ and $0$. Both conditions pass.

Now check convexity via butterfly costs:

| Center strike | $C(K-10) - 2C(K) + C(K+10)$ | Status | |---|---|---| | $K = 90$ |

4.5 - 2(17.8) + 13.2 = 2.1$ | OK | | $K = 100$ |
7.8 - 2(13.2) + 8.1 = -0.5$ | Violation | | $K = 110$ |
3.2 - 2(8.1) + 5.3 = 2.3$ | OK |

The butterfly centered at $K = 100$ has a negative cost of $-0.5$. This means the 100-strike call is overpriced relative to its neighbors -- the slope from 90 to 100 ($-0.46$) is less steep than the slope from 100 to 110 ($-0.51$), violating the requirement that slopes become less negative as $K$ increases.

*Part 3 -- Constructing the arbitrage:*

Buy the butterfly spread centered at $K = 100$:

\times \
3.2 = \
6.4$
  • Buy 1 call at $K = 110$ for $\$8.1$
  • Net cash flow at inception: $17.8 - 26.4 + 8.1 = -0.5$

    You receive $\$0.50$ upfront.

    The payoff at expiry $S_T$ is: $\pi(S_T) = \max(S_T - 90, 0) - 2\max(S_T - 100, 0) + \max(S_T - 110, 0)$

    Evaluating by region:

    | $S_T$ range | Payoff $\pi(S_T)$ | |---|---| | $S_T \leq 90$ | $0$ | | $90 < S_T \leq 100$ | $S_T - 90 \geq 0$ | |

    00 < S_T \leq 110$ |
    10 - S_T \geq 0$ | | $S_T > 110$ | $0$ |

    The butterfly payoff is non-negative everywhere, with a maximum of $\

    0$ at $S_T = 100$. Since you also collected $\$0.50$ upfront, the total P&L is $\pi(S_T) + 0.50 \geq 0.50 > 0$ in every state. This is a pure static arbitrage.

    Practical Interpretation: On a real desk, you'd never see a $\$0.50$ butterfly mispricing sit in the market. But smaller convexity violations do appear briefly, especially in illiquid option chains or during fast-moving markets. The butterfly spread is the canonical tool for exploiting them -- it's model-free (no Black-Scholes needed), static (no rebalancing), and the profit is locked in at inception.

    Answer: The no-arbitrage conditions are: $C(K)$ non-negative, non-increasing in $K$ with slope bounded by $[-1, 0]$, and convex in $K$. The data violates convexity at $K = 100$: the butterfly cost $C(90) - 2C(100) + C(110) = -0.5 < 0$. The arbitrage is to buy the 90/100/110 butterfly for a net receipt of $\$0.50$, locking in a non-negative payoff in every state.

    Intuition

    Call prices as a function of strike are essentially encoding the cumulative risk-neutral distribution. The slope of $C(K)$ is (minus) the tail probability, and convexity reflects the fact that the probability density is non-negative. When convexity fails at some strike, it means the market is implicitly assigning negative probability to some range of outcomes -- which is economically impossible. The butterfly spread at that strike harvests this impossibility: you get paid upfront to hold a position that can never lose money.

    This is one of the cleanest examples of model-free arbitrage in finance. You don't need Black-Scholes, you don't need to estimate volatility, and you don't need to delta-hedge. The mispricing is purely in the relative pricing of options at different strikes, and the fix is a static portfolio you put on and forget. In practice, market makers monitor butterfly spreads (and more general convexity checks using the full strike grid) as part of their real-time arbitrage detection. The same logic extends to calendar spreads across maturities and to put-call parity across option types.

    Open the full interactive solver →