Level 5 — MasteryEquity & Fixed Income

Equity & Fixed Income

90 minutes60 marksprintable — key stays hidden on paper

Chapter: 2.1 Equity & Fixed Income Difficulty: Level 5 — Mastery (cross-domain: finance math + numerical methods + proof + coding) Time limit: 90 minutes Total marks: 60

Instructions: Show all working. Where a derivation or proof is requested, state assumptions explicitly. Round monetary answers to 2 decimals and yields to 4 decimals (as fractions) unless told otherwise. Pseudocode or Python is acceptable where code is requested.


Question 1 — Bond Pricing, YTM, and the Inverse Price–Yield Relationship (24 marks)

A corporate bond has face value F=1000F = 1000, an annual coupon rate of 8%8\% paid annually (coupon C=80C = 80), and n=3n = 3 years to maturity. The current market price is P=950.25P = 950.25.

(a) Write the general price function P(y)P(y) of a coupon bond as a function of the annual yield-to-maturity yy, and state precisely what YTM means as a mathematical object (which root of which equation). (4)

(b) Prove analytically that P(y)P(y) is a strictly decreasing, convex function of yy for y>1y > -1 (i.e. show P(y)<0P'(y) < 0 and P(y)>0P''(y) > 0). This establishes the inverse price–yield relationship and the curvature that motivates convexity. (6)

(c) The bond above satisfies P(y)=950.25P(y) = 950.25. Set up the Newton–Raphson iteration to solve for yy, starting from y0=0.08y_0 = 0.08. Perform one full iteration by hand, showing P(y0)P(y_0), P(y0)P'(y_0), and y1y_1. (6)

(d) Write a short Python function ytm(price, face, coupon, n) using Newton–Raphson (or bisection) that returns the YTM. State a valid bracketing interval for bisection and justify why a root exists and is unique on it. (4)

(e) Using your method, the YTM is approximately y\*=0.1000y^\* = 0.1000 (10%). Compute the Macaulay duration DD and modified duration DmodD_{mod} at this yield, then estimate the price change for a +50+50 basis-point yield shock using the first-order (duration) approximation. (4)


Question 2 — Zero-Coupon Bonds, the Yield Curve, and Bootstrapping (20 marks)

You observe the following annually-compounded spot (zero-coupon) rates forming a yield curve:

Maturity tt (yrs) Spot rate ztz_t
1 5.00%
2 5.50%
3 6.00%

(a) Price a 3-year zero-coupon bond of face value 10001000 using z3z_3. State why a zero-coupon bond's Macaulay duration equals its maturity, and give a one-line proof. (5)

(b) Classify the shape of this yield curve and give the standard economic interpretation of this shape. Then compute the implied 1-year forward rate f2,3f_{2,3} (the rate for the period from year 2 to year 3). (5)

(c) A 3-year annual-coupon government bond with coupon rate 6%6\% (coupon 6060, face 10001000) trades in this market. Price it by discounting each cash flow at the appropriate spot rate (not a single YTM). (5)

(d) Explain, with reference to default risk and credit ratings, why an otherwise-identical corporate bond rated BBB would trade at a lower price / higher yield than this government bond. Define the term for that yield difference and write it as an equation. (5)


Question 3 — Convertible Bonds: Valuation Bound and Decision (16 marks)

A company issues a convertible bond: face 10001000, 3 years to maturity, coupon 5%5\% annual, convertible at any time into 2020 shares of the company's stock. The straight-bond (non-convertible) value given the firm's credit is 940940. The current share price is S0=46S_0 = 46.

(a) Define conversion ratio and conversion value. Compute the current conversion value. (4)

(b) Argue that the convertible bond's fair value must satisfy Vconvmax(straight value,conversion value)V_{conv} \ge \max(\text{straight value}, \text{conversion value}). Prove this lower bound by a no-arbitrage argument. (6)

(c) At what share price S\*S^\* does the conversion value equal the straight-bond value? Interpret S\*S^\* as a break-even conversion trigger. (3)

(d) Distinguish a debenture from a secured bond, and explain in one or two sentences why convertibles typically carry lower coupons than comparable straight debentures. (3)

Answer keyMark scheme & solutions

Question 1

(a) (4 marks) P(y)=t=1nC(1+y)t+F(1+y)nP(y) = \sum_{t=1}^{n} \frac{C}{(1+y)^t} + \frac{F}{(1+y)^n} For this bond: P(y)=801+y+80(1+y)2+1080(1+y)3P(y) = \dfrac{80}{1+y} + \dfrac{80}{(1+y)^2} + \dfrac{1080}{(1+y)^3}. (2 marks) YTM is the value y=y\*y=y^\* that solves P(y\*)=PmarketP(y^\*) = P_{market}; equivalently it is the root of g(y)=P(y)Pmarket=0g(y)=P(y)-P_{market}=0 — the single internal rate of return equating discounted cash flows to price. (2 marks)

(b) (6 marks) Let v=1+yv = 1+y. Each term is ctvtc_t v^{-t} with ct>0c_t>0.

  • P(y)=tct(t)vt1=ttctvt1P'(y) = \sum_t c_t \cdot (-t) v^{-t-1} = -\sum_t t\,c_t v^{-t-1}. Since ct>0c_t>0, t>0t>0, v>0v>0 (as y>1y>-1), every term is negative P(y)<0\Rightarrow P'(y)<0. Strictly decreasing. (3 marks)
  • P(y)=tctt(t+1)vt2>0P''(y) = \sum_t c_t \cdot t(t+1) v^{-t-2} > 0 (all factors positive) \Rightarrow strictly convex. (3 marks) This gives the inverse price–yield relation and positive convexity.

(c) (6 marks) Newton: y1=y0P(y0)950.25P(y0)y_1 = y_0 - \dfrac{P(y_0)-950.25}{P'(y_0)}. At y0=0.08y_0=0.08, v=1.08v=1.08: P(0.08)=80/1.08+80/1.082+1080/1.083=74.074+68.587+857.338=1000.00P(0.08)=80/1.08+80/1.08^2+1080/1.08^3 = 74.074+68.587+857.338=1000.00. (2 marks) P(0.08)=[801.082+2801.083+310801.084]=[68.587+126.943+2381.49]=2577.02P'(0.08) = -\left[\frac{80}{1.08^2}+\frac{2\cdot80}{1.08^3}+\frac{3\cdot1080}{1.08^4}\right] = -[68.587+126.943+2381.49] = -2577.02. (2 marks) y1=0.081000.00950.252577.02=0.0849.752577.02=0.08+0.01931=0.09931y_1 = 0.08 - \dfrac{1000.00-950.25}{-2577.02} = 0.08 - \dfrac{49.75}{-2577.02} = 0.08 + 0.01931 = 0.09931. (2 marks) (Converges toward y\*0.10y^\*\approx0.10.)

(d) (4 marks)

def ytm(price, face, coupon, n, tol=1e-8):
    def P(y):
        return sum(coupon/(1+y)**t for t in range(1, n+1)) + face/(1+y)**n
    lo, hi = -0.9, 1.0          # bracket
    for _ in range(200):
        mid = (lo+hi)/2
        if (P(mid)-price)*(P(lo)-price) <= 0:
            hi = mid
        else:
            lo = mid
    return (lo+hi)/2

Bracketing: PP is continuous and strictly decreasing (Q1b), PP\to\infty as y1+y\to-1^+ and P0P\to0 as yy\to\infty; so for any positive price there is exactly one root. [0.9,1.0][-0.9,1.0] brackets it since P(0.9)P(-0.9) is huge >950.25>950.25 and P(1.0)P(1.0) is small <950.25<950.25. (2 marks method + 2 marks uniqueness/existence)

(e) (4 marks) At y\*=0.10y^\*=0.10, v=1.1v=1.1: PVs =72.727,66.116,811.42= 72.727,\,66.116,\,811.42; sum =950.26=950.26 ✓. Macaulay D=ttPVtP=1(72.727)+2(66.116)+3(811.42)950.26=72.727+132.231+2434.26950.26=2639.22950.26=2.7774D = \dfrac{\sum_t t\,PV_t}{P} = \dfrac{1(72.727)+2(66.116)+3(811.42)}{950.26} = \dfrac{72.727+132.231+2434.26}{950.26}=\dfrac{2639.22}{950.26}=2.7774 yrs. (2) Dmod=D/(1+y)=2.7774/1.1=2.5249D_{mod} = D/(1+y) = 2.7774/1.1 = 2.5249. (1) ΔPDmodPΔy=2.5249×950.26×0.005=12.00\Delta P \approx -D_{mod}\cdot P \cdot \Delta y = -2.5249\times950.26\times0.005 = -12.00. Price falls ≈ $12.00. (1)


Question 2

(a) (5 marks) P=1000/(1.06)3=1000/1.191016=839.62P = 1000/(1.06)^3 = 1000/1.191016 = 839.62. (3) Proof duration = maturity: A zero has a single cash flow at t=nt=n, so D=nPVnPVn=nD=\frac{n\cdot PV_n}{PV_n}=n. (2)

(b) (5 marks) Spot rates rising with maturity ⇒ upward-sloping (normal) yield curve (2), interpreted as expectations of higher future short rates / positive term (liquidity) premium / economic expansion. (1) Forward rate: (1+z3)3=(1+z2)2(1+f2,3)(1+z_3)^3=(1+z_2)^2(1+f_{2,3}): f2,3=(1.06)3(1.055)21=1.1910161.1130251=1.0700711=0.0700717.01%f_{2,3}=\dfrac{(1.06)^3}{(1.055)^2}-1 = \dfrac{1.191016}{1.113025}-1 = 1.070071-1 = 0.070071 \approx 7.01\%. (2)

(c) (5 marks) P=601.05+601.0552+10601.063P = \dfrac{60}{1.05}+\dfrac{60}{1.055^2}+\dfrac{1060}{1.06^3} =57.143+53.909+889.99=1001.04=57.143+53.909+889.99 = 1001.04. (each term 1½ mk, total 5; accept 1000.99–1001.10)

(d) (5 marks) A BBB corporate carries default (credit) risk — positive probability of missed coupons/principal — whereas the government bond is (near) risk-free. Investors demand extra compensation, so they pay less (lower price) for the same promised cash flows, raising the yield. (3) The gap is the credit spread: spread=ycorpygovt\text{spread}=y_{corp}-y_{govt}; wider for lower ratings. (2)


Question 3

(a) (4 marks) Conversion ratio = number of shares received per bond = 20. (1) Conversion value = ratio × share price. (1) =20×46=920=20\times46=920. (2)

(b) (6 marks) No-arbitrage:

  • If Vconv<V_{conv} < straight value: hold-to-maturity cash flows dominate a cheaper investment ⇒ buy convertible, its debt cash flows alone exceed cost ⇒ arbitrage. So VconvV_{conv}\ge straight value. (3)
  • If Vconv<V_{conv} < conversion value: buy bond, immediately convert to 20 shares worth conversion value, sell shares for riskless profit == conversion value Vconv>0- V_{conv}>0. So VconvV_{conv}\ge conversion value. (2)
  • Hence Vconvmax(straight,conversion)V_{conv}\ge\max(\text{straight},\text{conversion}); the optionality adds value so typically strictly greater. (1)

(c) (3 marks) Set 20S\*=940S\*=47.0020 S^\* = 940 \Rightarrow S^\* = 47.00. (2) Above $47 conversion dominates the straight value (equity-like); below, the bond floor dominates (debt-like). (1)

(d) (3 marks) A debenture is an unsecured bond backed only by the issuer's creditworthiness/general assets, not by specific collateral; a secured bond is backed by pledged assets. (2) Convertibles pay lower coupons because the embedded conversion option has value to the holder, who accepts less current income in exchange for potential equity upside. (1)

[
  {"claim":"Q1 bond price at y=0.08 equals 1000", "code":"P=80/1.08+80/1.08**2+1080/1.08**3; result = abs(P-1000)<1e-2"},
  {"claim":"Q1 Newton one step gives y1 approx 0.09931", "code":"P0=1000; Pp=-(80/1.08**2+2*80/1.08**3+3*1080/1.08**4); y1=0.08-(P0-950.25)/Pp; result = abs(y1-0.09931)<1e-4"},
  {"claim":"Q1 Macaulay duration at y=0.10 approx 2.7774", "code":"y=0.10; pv=[80/(1+y),80/(1+y)**2,1080/(1+y)**3]; P=sum(pv); D=(1*pv[0]+2*pv[1]+3*pv[2])/P; result = abs(D-2.7774)<1e-3"},
  {"claim":"Q1 duration price change approx -12.00", "code":"y=0.10; pv=[80/(1+y),80/(1+y)**2,1080/(1+y)**3]; P=sum(pv); D=(1*pv[0]+2*pv[1]+3*pv[2])/P; Dmod=D/1.1; dP=-Dmod*P*0.005; result = abs(dP+12.0)<0.1"},
  {"claim":"Q2 forward rate f23 approx 0.070071", "code":"f=(1.06**3)/(1.055**2)-1; result = abs(f-0.070071)<1e-4"},
  {"claim":"Q2c coupon bond spot-priced approx 1001.04", "code":"P=60/1.05+60/1.055**2+1060/1.06**3; result = abs(P-1001.04)<0.2"},
  {"claim":"Q3 conversion value 920 and breakeven price 47", "code":"cv=20*46; Sstar=940/20; result = (cv==920) and (Sstar==47.0)"}
]