I am trying to compute shocks on the forward swap rates based on shocks to the swap rate curve (aiming at repricing consistently a set of swaps and swaptions based on a shock to the swap curve):

  • It seems that I cannot deduce forward swap rates by treating the swap curve as any other discount curve and computing "forward rates". Is this true, or are there some instruments that can be used to replicate a forward swap rate based on the swap curve?
  • I assume that the proper way to compute the forward swap rates is to compute them based on the forward libor rates by equating present values of a fixed and floating leg on a forward start swap. However, aren't the longer term libor curves mainly bootstraped using swaps (so inderectly using the swap curve)? I feel like stuck in a circle.
  • How far am I from the true forward swap rate if I just compute forward rates based on the swap rates?
  • Is there a straightforward way to derive shocks on forward swap rates based on shocks of the swap rate curve?

To find a (forward starting) swap rate given discounting and projection curves, e.g. bootstrapped GBP SONIA discounting curve and GBP LIBOR-3M projection curve, you basically have to vary the coupon on a forward starting fixed leg so that it’s (future) present value equals the (future) present value of a corresponding float leg. Luckily, this is quite straightforward once you have bootstrapped both curves:

Let $D(t_0,T)$ denote the discount factor computed from our OIS discounting curve today, i.e. at $t_0$; and let $F(t_0,\tau,T)$ denote the forward projection function bootstrapped in a likewise manner from OIS and swaps, for a forward starting rate for the period from $\tau$ to $T$. Also, to simplify things, lets put aside day count convention and calendar adjustments etc, and say that we have quarterly payments, i.e. $\Delta=\frac{1}{4}$.

Then, for a forward starting swap starting at $T_F$ and with $N$ payments until maturity, it must hold for the forward starting swap rate $s\equiv s(t_0,T_F,T_F+N\Delta)$:

$$ \Delta\sum_{k=1}^{N}D(t_0,T_F+k\Delta)s=\Delta\sum_{k=1}^{N}D(t_0,T_F+k\Delta)F(t_0,T_{k-1},T_k) $$

and thus $$ s(t_0,T_F,T_F+N\Delta)=\frac{\Delta\sum_{k=1}^{N}D(t_0,T_F+k\Delta)F(t_0,T_{k-1},T_k)}{\sum_{k=1}^{N}D(t_0,T_F+k\Delta)} $$

In other words: The forward starting swap rates are computed in the same fashion as the rates for swaps starting today.

The resulting forward starting swap quote should be free of arbitrage - we could build a portfolio of swaps and zero coupon bonds whose PV is zero and that has the same cashflows as a forward starting swap (not considering counterparty default risk, though)

In order to calculate the effect of current quotes on your implied forward starting swap rate, you have to:

  1. Build your discounting and projection curves D, F
  2. Estimate the forward swap rate (see above)
  3. Shock your quotes and redo step 1+2.
| improve this answer | |
  • $\begingroup$ Happy to share more, let me know whether this suffices for your understanding . $\endgroup$ – Kermittfrog Apr 26 at 5:48
  • $\begingroup$ Thanks! By the forward projection $F$ you mean forward LIBOR curve based on OIS discounting? To get to $F$ you bootstrap a long term LIBOR curve based on the longer dated swaps and then compute the forward LIBOR rate $F$ based on this new curve and on the OIS discounting? If I understand correctly, I can then shock my swap curve, reprice long dated swaps, and redo 1+2? $\endgroup$ – raptor22 May 5 at 11:19
  • $\begingroup$ Yes. F is built using LIBOR quotes seen in the market, under the assumption that the discounting on both legs is CCP discounting (i.e. you use your pre-bootstrapped OIS curve for this). $\endgroup$ – Kermittfrog May 5 at 11:41
  • $\begingroup$ And yes, to your second sentence :) $\endgroup$ – Kermittfrog May 5 at 11:41
  • $\begingroup$ Great! By any chance, do you know if it is possible to directly get a relationship (function) from swap rates => Libor rates? Do I have any chance to work the algebra out? $\endgroup$ – raptor22 May 5 at 11:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.