CFA Level I · CFA Level I Exam
Option Replication Using Put-Call Parity: formula sheet
Key formulas
- Put-call parity
- c + X/(1+r)^T = p + S0
- European options, same strike X and expiry T, underlying pays no income. r is the annual risk-free rate, T in years.
- Call price
- c = p + S0 − X/(1+r)^T
- Long call = long put + long underlying + borrowing the present value of X.
- Put price
- p = c − S0 + X/(1+r)^T
- Long put = long call + lend the present value of X + short underlying.
- Underlying price
- S0 = c − p + X/(1+r)^T
- Long underlying = long call + long bond + short put.
- Risk-free bond
- X/(1+r)^T = p + S0 − c
- Long bond = long put + long underlying + short call.
- Continuous compounding version
- c + X·e^(−rT) = p + S0
- Use only if the question gives a continuously compounded rate.
- Fiduciary call payoff at expiry
- max(S_T, X) = max(S_T − X, 0) + X
- Call payoff plus the bond's face value X.
- Protective put payoff at expiry
- max(S_T, X) = S_T + max(X − S_T, 0)
- Asset value plus put payoff. Floor is X.
- Put-call parity (European options, no income on asset)
- c + X ÷ (1 + r)^T = S₀ + p
- Fiduciary call cost on the left, protective put cost on the right. Same X and T for both options.
- Present value of the bond
- PV(X) = X ÷ (1 + r)^T
- Use the risk-free rate r with the same compounding as T. T is in years.
- Rearranged for call or put
- c = S₀ + p − X ÷ (1 + r)^T; p = c + X ÷ (1 + r)^T − S₀
- Use to find a missing option price.
- Put-call parity (European)
- c + X ÷ (1 + r)^T = S + p
- Same underlying, strike and expiry. With continuous compounding, PV(X) = X × e^(−rT). Assumes no dividends or carry on the underlying.
- Synthetic long call
- c = p + S − X ÷ (1 + r)^T
- Buy put, buy stock, borrow PV(X).
- Synthetic long put
- p = c − S + X ÷ (1 + r)^T
- Buy call, short stock, lend PV(X) by buying the bond.
- Synthetic long underlying
- S = c − p + X ÷ (1 + r)^T
- Buy call, sell put, buy the bond.
- Synthetic risk-free bond
- X ÷ (1 + r)^T = S + p − c
- Long stock, long put and short call at the same strike is a riskless (conversion-type) position that pays X at expiry.
- Short positions
- Reverse every sign of the long replication
- For example, short call = −p − S + PV(X).
- Put-call parity (no dividends)
- c + X ÷ (1 + r)^T = p + S0
- European options, same X and T, same underlying. Left side is the fiduciary call, right side is the protective put.
- Parity with discrete dividends
- c + X ÷ (1 + r)^T = p + S0 − PV(D)
- PV(D) is the present value of dividends paid before expiry. Dividends lower the stock leg.
- Forward-based parity
- c + X ÷ (1 + r)^T = p + F0(T) ÷ (1 + r)^T
- Equivalent to c − p = [F0(T) − X] ÷ (1 + r)^T. Use when a forward price is given.
- Continuous version
- c + X e^(−rT) = p + S0 e^(−qT)
- q is the continuous dividend yield. Use only if the question gives continuous rates.
- Arbitrage profit
- Profit today = |Fiduciary call value − Protective put value|
- Per unit of the position, received at time 0 and riskless.
Quick revision
- Put-call parity (European, no income): c + X/(1+r)^T = p + S0.
- Fiduciary call = long call + zero-coupon bond with face value X.
- Protective put = long put + long underlying.
- Both portfolios pay max(S_T, X) at expiry.
- Parity needs the same underlying, strike and expiry, and European exercise.
- Synthetic call = long put + long underlying + borrow PV of X (short the bond).
- Synthetic put = long call + short underlying + long bond with PV of X.
- Synthetic underlying = long call + short put + long bond.
- Synthetic bond = long put + long underlying + short call.
- Arbitrage: sell the more expensive portfolio, buy the cheaper, and keep the difference today.
- Discount X at the risk-free rate for the option's time to expiry in years.
- If the underlying pays income, the parity equation is adjusted, so follow the question's wording.
Common mistakes
- Using X instead of its present value Fix: Always compute X/(1+r)^T before touching the other terms.
- Using months as T Fix: Convert to years: 3 months is 0.25, 6 months is 0.5.
- Using X instead of its present value X ÷ (1 + r)^T in the parity equation. Fix: Payoffs use X at expiry. Costs today use PV(X). Always discount.
- Thinking the fiduciary call and protective put have different payoffs. Fix: Both equal max(S_T, X). Check both states, above and below X.
- Treating the bond term as the stock price instead of PV(X). Fix: Always write the bond as X ÷ (1 + r)^T, not as S.
- Getting the sign wrong on the bond when replicating a call. Fix: Isolate the call: c = p + S − PV(X). The minus means borrow, not lend.
- Using X instead of PV(X) in the comparison. Fix: Always write X ÷ (1 + r)^T as the bond leg. Without it the gap is wrong.
- Reversing the trade direction. Fix: Sell whichever side has the higher value and buy the lower side. Then check that time 0 cash is positive.
Exam tips
- Memorise the pairing: fiduciary call (call + bond) equals protective put (put + stock). Everything else follows from this.
- Replication questions use words like 'synthetic'. Rearrange the formula and read off the signs.
- Arbitrage items ask which side to buy. Buy the cheaper portfolio, sell the dearer one.
- Convert T to years and use the given rate form. Do not mix annual and continuous compounding.
- Use elimination: with three options, check signs and bounds first, then calculate only if needed.
- Know the payoff max(S_T, X) for both portfolios. Questions often ask which portfolio has a floor at X.
- Always discount X with the risk-free rate. Options that use X undiscounted are traps.
- Parity holds for European options with the same strike and expiry only. Watch for mismatches.