PCA Hedge

Please follow the steps below and build everything in Python.

Curve Interpolation

  • First thing is to get the curve ready. Please get the Treasur yield curve data as of 10/27/2025 at the 14 points from the U.S. Department of the Treasury website

  • Interpolate the data to get a continuous curve function so that you can query the yield at any year fraction (10 pts)

Portfolio Delta Ladder

  • Download TLT holdings as of 10/27/2025 from here

    • I downloaded the data from TLT product page > Holdings > Detailed Holdings and Analytics

    • Please filter out cash and money market fund (MMF). There are 44 T-bonds left

  • Make a bond pricing function to compute the PV of a specific bond (20 pts)

    • First compute all coupon dates

      • For this exercise you may ignore the calendar noise from weekends and holidays and just assume, for example, 8/15/2051 minus 6M is 2/15/2051

    • Multiply the coupon rate by notional, both given in the holdings data, and divide by 2 (as the coupon rates are annual, while the bonds pay coupon semiannually)

    • Find PV (clean price) of the bond which is sum of all discounted cash flows, including all coupon payments and the notional payment in the end. You will have to compute the discount factors from the curve we prepared

    • Make a bond pricing function to do so for you

  • Compute the portfolio Delta ladder by first generating 14 scenario curves and run your bond pricing functions on them (10 pts)

Curve PCA and Hedge

  • Get curve data from 9/1/2025 - 10/27/2025, perform PCA and find PCs and scores

  • Hedge out PC1:

    • Compute the Delta ladder of a 10y ZCB as of 10/27/2025

      • Recall that the answer is known in closed form. Go with the closed form. Do not generate scenario curves for this specific question

    • If you want to hedge out PC1 risk, what’s the notional of 10y ZCB you should use? (20 pts)

    • Now add the 10y ZCB to your portfolio and write down the new Delta ladder. You will have Delta ladder before and after hedge

    • Get curve data from 10/28/2025 and compute the PnL with and without the Hedge (10 pts)

  • Hedge out both PC1 and PC2:

    • Now forget about the PC1 hedge. Let’s get back to the portfoilo Delta ladder you computed from the previous section

    • Compute the Delta ladder of a 2y ZCB as of 10/27/2025

      • Same as before, do not generate scenario curves for this

    • If you want to hedge out both PC1 and PC2 risk, what’s the notionals of 10y and 2y ZCB you should use? (20 pts, 10 each)

    • Now add the hedge (both 10y and 2y) to your portfolio and write down the new Delta ladder. You will have Delta ladder before and after hedge

    • Get curve data from 10/28/2025 and compute the PnL with and without the Hedge (10 pts)