No-arbitrage bounds on option prices
Which option prices violate no-arbitrage bounds?
Without knowing anything about how the stock moves, a call price must stay between two simple bounds, fall as the strike rises but never faster than the discounted strike gap, and bend upward in the strike. A quote that breaks one of these rules can be exploited by a spread that brings in cash today and never pays less than 0 at expiration.
Before you start · 3 quick checks on option payoffs, put-call parity and convex functions, about 3 min
All options are on one stock that pays no dividends before the expiration date \(T \gt 0\), measured in years. The stock costs \(S_0 \gt 0\) today and is worth \(S_T \ge 0\) at \(T\). We write \(x^+ = \max(x, 0)\).
- European call with strike \(K \ge 0\): payoff \((S_T - K)^+\) at \(T\), price \(C(K)\) today. European put: payoff \((K - S_T)^+\), price \(P(K)\).
- American put: like the European put, but the holder may exercise it at any time \(t \le T\), selling one share for \(K\) then.
- Bond: a zero-coupon bond paying \(F\) at \(T\) costs \(Fe^{-rT}\) today, where \(r\) is the constant, continuously compounded risk-free rate. Cash deposited today at \(r\) grows by the factor \(e^{rt}\) over a time \(t\). Lending is buying the bond, borrowing is selling it.
Trading conditions, used on the whole page:
- Short sales are allowed, and each option can be bought or written (sold) at one price, its quote.
- Any quantity can be traded, including fractions, at the quoted price per unit.
- Unlimited borrowing and lending at \(r\); no transaction costs or taxes.
- European options and the bond have no cash flow before \(T\), and the stock pays no dividends before \(T\).
No arbitrage is a separate assumption about prices, used with the theorem in stage 3 and wherever a sentence says so. It has two parts: (a) no trade brings in cash today and has a payoff at \(T\) that is never negative; (b) no trade costs nothing today and has a payoff at \(T\) that is never negative and is positive with positive probability. Every bound on this page uses only part (a).
Dominance and no arbitrage. Each bound in the table has two steps. The first is a dominance fact: one payoff is at least another for every final price \(S_T \ge 0\). It compares payoffs only and uses no assumption about prices. The second step turns it into a price bound with part (a): if portfolio A never pays less than portfolio B, then A cannot cost less than B, or buying A and selling B would bring in cash today with a payoff that is never negative. So each dominance fact needs no assumption at all, and each price bound uses no arbitrage exactly once. Put-call parity, which the American inequality uses, applies part (a) in both directions.
Sign of \(r\). The European bounds hold for every constant \(r\), positive, zero or negative. The American inequality below assumes \(r \ge 0\). The examples use \(r = 5\%\).
| Bound | Dominance fact at \(T\) | Trade if the bound fails | Cash today |
|---|---|---|---|
| \(C(K) \le S_0\) | \((S_T - K)^+ \le S_T\) | Write the call, buy one share | \(C(K) - S_0\) |
| \(C(K) \ge S_0 - Ke^{-rT}\) | \((S_T - K)^+ + K \ge S_T\) | Buy the call, lend \(Ke^{-rT}\), short one share | \(S_0 - Ke^{-rT} - C(K)\) |
| \(C(K) \ge 0\) | \((S_T - K)^+ \ge 0\) | Buy the call | \(-C(K)\) |
| \(P(K) \le Ke^{-rT}\) | \((K - S_T)^+ \le K\) | Write the put, lend \(Ke^{-rT}\) | \(P(K) - Ke^{-rT}\) |
| \(P(K) \ge Ke^{-rT} - S_0\) | \((K - S_T)^+ + S_T \ge K\) | Buy the put and one share, borrow \(Ke^{-rT}\) | \(Ke^{-rT} - S_0 - P(K)\) |
| \(C(K_1) \ge C(K_2)\) | \((S_T - K_1)^+ \ge (S_T - K_2)^+\) | Buy the \(K_1\) call, write the \(K_2\) call (a bull spread) | \(C(K_2) - C(K_1)\) |
| \(C(K_1) - C(K_2) \le (K_2 - K_1)e^{-rT}\) | \((S_T - K_1)^+ - (S_T - K_2)^+ \le K_2 - K_1\) | Write the \(K_1\) call, buy the \(K_2\) call, lend \((K_2 - K_1)e^{-rT}\) | \(C(K_1) - C(K_2) - (K_2 - K_1)e^{-rT}\) |
| Convexity in \(K\), stage 3 | A butterfly spread pays at least 0 | Buy the butterfly | minus its cost |
Together the first three rows give \(\max(S_0 - Ke^{-rT}, 0) \le C(K) \le S_0\), and the put rows give \(\max(Ke^{-rT} - S_0, 0) \le P(K) \le Ke^{-rT}\), using \(P(K) \ge 0\) as for calls. When \(r \ge 0\), \(S_0 - Ke^{-rT} \ge S_0 - K\), so a European call is worth at least \(\max(S_0 - K, 0)\), what it would pay if it could be exercised now; for \(r \lt 0\) the bound \(C(K) \ge S_0 - K\) can fail.
Assumptions. The setup and trading conditions above, no arbitrage, and \(r \ge 0\). \(C\) is the price of the European call and \(P\) the price of the American put, with the same strike \(K\) and expiration \(T\).
\[ S_0 - K \le C - P \le S_0 - Ke^{-rT}. \]- Right side. The American put holder can wait until \(T\), so the American put gives every payoff the European put gives: by dominance and part (a), \(P \ge P(K)\). Put-call parity gives \(C - P(K) = S_0 - Ke^{-rT}\), so \(C - P \le S_0 - Ke^{-rT}\). This side does not use \(r \ge 0\). If it fails: write the call, buy the American put and one share, borrow \(Ke^{-rT}\), and hold the put to \(T\). The payoff at \(T\) is \(-(S_T - K)^+ + (K - S_T)^+ + S_T - K = 0\).
- Left side. Compare the call plus \(K\) in cash with the American put plus one share. If the put is exercised at a time \(t \le T\), the second portfolio is worth \(K\) and the first at least \(Ke^{rt} \ge K\), because \(r \ge 0\). If it is never exercised, at \(T\) the first is worth \((S_T - K)^+ + Ke^{rT} \ge S_T\). If it fails, \(P + S_0 - C - K \gt 0\): write the American put, short one share, buy the call, deposit \(K\). Whenever the put is exercised against you, at \(t\), you pay \(K\) from the deposit, now \(Ke^{rt} \ge K\), and the share you receive closes the short. You keep the rest of the deposit and the call. If it is never exercised, at \(T\) the call and the deposit pay for buying back the share: \((S_T - K)^+ + Ke^{rT} - S_T \ge (K - S_T)^+ \ge 0\).
- Exercise at once. An American put also satisfies \(P \ge K - S_0\): otherwise buy it and one share and exercise immediately, collecting \(K - S_0 - P \gt 0\).
Strict or weak, and why the call here is European
The bounds are weak inequalities because they use only part (a) of no arbitrage. At equality the trade in the table costs exactly 0 and never pays less than 0. If the stock has a positive chance of ending where that payoff is positive, part (b) rules out the equality too. This page does not assume anything about those chances, so it treats equality as allowed and says so where it happens.
For a stock with no dividends and \(r \ge 0\), early exercise of an American call is never strictly better than keeping or selling it, so its price equals the European price \(C\) (step 7 of the path). The inequality is often stated with the American call for that reason. Here \(C\) is the European call, so the trades never face an early exercise of a call.
Break the call price curve
What the tool checks, and what it does not
For every strike it checks \(\max(S_0 - Ke^{-rT}, 0) \le C(K) \le S_0\); the inputs do not accept prices below 0, so \(C(K) \ge 0\) always holds. For each pair of neighboring strikes it checks that the price falls, and by at most the strike gap times \(e^{-rT}\). For each three neighboring strikes, the share included as a call with strike 0, it checks convexity with the weights of stage 3. For the American put it checks the inequality above and \(P \ge K - S_0\).
Convexity on each three neighboring points is enough for the whole broken line through them to be convex. Every rule here is necessary: breaking it gives an arbitrage of type (a). The page does not claim that these rules catch every possible arbitrage among the quotes.
The starting prices are values from a standard pricing model with 25% volatility, rounded to 5 cents. You do not need that model here.
Find the edges
The questions below use the market of stage 1 and its rules. Some of them quote only three calls; the rules then apply to those three calls, the share and the bond.
Edge goals
Each goal starts from a new set of quotes with no rule broken. Change only the price the goal names, in steps of 5 cents, and find the last price before a rule breaks. A starting quote can sit off the 5-cent grid; only the price you move snaps to it.
Call prices are convex in the strike
Assumptions.
- Three European calls on the same stock have the same expiration \(T \gt 0\) and strikes \(0 \lt K_1 \lt K_2 \lt K_3\). Their prices today are \(C_1, C_2, C_3\). The stock's price at \(T\) is \(S_T \ge 0\).
- The trading conditions of the Setup hold: options are bought and written at one price, any quantity can be traded, there are no transaction costs, and the options have no cash flow before \(T\).
- No arbitrage, part (a): no trade brings in cash today and has a payoff at \(T\) that is never negative.
Conclusion. With \(\lambda = \dfrac{K_3 - K_2}{K_3 - K_1}\),
\[ C_2 \le \lambda C_1 + (1-\lambda)C_3, \quad\text{equivalently}\quad (K_3 - K_2)C_1 - (K_3 - K_1)C_2 + (K_2 - K_1)C_3 \ge 0. \]The proof uses no property of the stock beyond \(S_T \ge 0\), and it does not use the rate \(r\), so it holds for every constant \(r\). The same argument works with \(K_1 = 0\) if the share takes the place of the call with strike 0, since \((S_T - 0)^+ = S_T\); the tool in stage 1 uses that case.
Problems
All prices are hypothetical. The stocks pay no dividends before expiration, the trading conditions of the Setup hold, and each problem says which options are American. The quotes may break a bound on purpose, so do not assume they are free of arbitrage unless the problem says so.
More problems
Further reading
- R. C. Merton, "Theory of Rational Option Pricing," Bell Journal of Economics and Management Science 4(1) (1973), 141–183, doi:10.2307/3003143.
- J. C. Hull, Options, Futures, and Other Derivatives, 10th ed. (Pearson, 2018), ch. 11, "Properties of Stock Options."
- R. L. McDonald, Derivatives Markets, 3rd ed. (Pearson, 2013), ch. 9, "Parity and Other Option Relationships."