Put-Call Parity
Table of Contents
1 Overview
Put-Call Parity will allow us to price a put (or call) option given a call (or put), a bond and the stock. Conceptually, what the parity relationship is saying is that:
a protective put spread is equal to a call option plus bond position.
2 No Dividend
For a non-dividend paying stock, Put-Call Parity is:
\[C_0 + \frac{X}{(1 + r_f)^T} = S_0 + P_0\]
where:
- both the call and put options have the same strike price and expiration.
- the bond has an $X par value, which is the same as the strike price of the options.
- you can interpret the 0 subscript as 'today'.
- \(r_f\) is risk-free rate for bonds maturing at the same time as the options expire.
There are a couple important features of Put-Call Parity:
- Applies to European options only.
- Model and assumption free.
2.1 Proof
2.1.1 Payoff on Protective Put At Expiration
ST > X | ST < X | |
---|---|---|
Stock | ST | ST |
Put | 0 | X - ST |
Total | ST | X |
2.1.2 Payoff on Call + Bond At Expiration
ST > X | ST < X | |
---|---|---|
Bond | X | X |
Call | ST - X | 0 |
Total | ST | X |
2.2 Arbitrage
If both portfolios pay the same amount at expiration, can they have different prices today?
What if:
\[C_0 + \frac{X}{(1 + r_f)^T} > S_0 + P_0\]
Then today we sell the call option and bond, and buy the put option and stock.
3 With Dividend
Let \(D\) be the expected dividend payment on the stock over the life of the option. Then the put-call parity relationship is:
\[C_0 + \frac{X}{(1 + r_f)^T} + \frac{D}{(1 + r_f)^T} = S_0 + P_0\]
3.1 Proof
4 Application
Say we have the following values. How much is the put option premium?
Stock Price | 100 |
Risk-free rate | 0.05 |
Call strike | 110 |
Call premium | 1.00 |
time | 1 |
stock = inputs[0][1] rate = inputs[1][1] strike = inputs[2][1] call_price = inputs[3][1] time = inputs[4][1] put_price = call_price + strike / (1 + rate)**time - stock print("Put price $", round(put_price, 1))
Put price $ 5.8