Filtered Historical Simulation VaR for swaps

I am trying to understand how to calculate FHS VaR for a portofolio of vanilla swaps. I think I understand the main ideas behind FHS VaR and how to implement it for other assets such as equities. I have the historical underlying yield curves for the look-back period and I was thinking to reprice the swaps for each historical scenario and calculate returns as the difference between the swaps PV from each scenario and the today's PV. Then filter returns using EWMA or GARCH. Is this the right approach ? Could you suggest some papers that describe the implementation of the FHS VaR for swaps?

Thanks!

Let us suppose for concreteness that the 10y swap rate is 0.5% today and was 7% a year and and 6.5% a "year minus a day" ago...

reprice the swaps for each historical scenario and calculate returns as the difference between the swaps PV from each scenario and the today's PV

This won't help you at all, really. Take a step back and consider your goal. You're looking at your book's market risk. Should you be concerned about the possibility that the market will jump from where is is today to exactly where it was a year ago? No, that's not a realistic concern and not one you should be worried about. Calculating mark to market using some historical market data will not tell you anything useful here.

Rather, you want to see how the markets moved (changed from one day to the next day) hisotically, and calculate the P&L as the change from the mtm today to mtm if the markets move the same way starting from where they are today.

But what does "the same way" mean exactly? Was see that historically, some interest rate moved from 7% to 6.5%; what would "the same" move mean today? I've seen a surprising number of people treating interest rates as equity prices - this is a (6.5-7)/7 = 7.41 decrease, so we likewise decrease today's .5% by 7.41 to get 0.464%. Others look in the change in rate - it decreased by 0.5%, so the same decrease today would be from .5% to 0. Still others mix in logs in various creative ways.

(You could be looking at the change in log(1+rate) and applying the same change to today's rate.)

Once you have the perturbation, you can fully reprice your swaps under the perturbed market data (this is the most accurate if you have enough computing power) to get the perturbed mtm, and subtract the current mtm to get the P&L; or you can escimate the P&L's faster, but less accurately, from the perturbations and the risk measures.

• All valid points. Just curious what are the best practices to overcome the level problem (e.g. 7% historical level may not be as relevant and the absolute changes may be (e.g. 7% - 6.5% = 0.5% may not be representative).
– AK88
Sep 27 '21 at 14:40
• @AK88 sadly, what we do often see out there goes along the lines of "66°F is twice as hot as 33°F" or "The stock used to cost 25, went down to 20, so the same move would take it down to 15". :) Denote 1+rate(date) by F(date). (ideally, zero rate as Kermittfrog wrote in his excellent answer, but observable swap rate may be "close enough") A better way to derive a rate perturbed under a scenario similar to a historical one might be F(perturbed) = F(today) / F(historical date) × F(historical date+1) = exp (log(F(today)) - log(F(historical date)) + log(F(historical date+1))), rather than rate. Sep 30 '21 at 12:22

Adding to Dimitris' answer (this is a too long for a comment)

Proceed as follows:

1. Identify risk factors $$r^{(i)}$$, $$i=1\ldots n$$. Say the absolute returns of the pillars 1Y,2Y,...30Y of the discounting and forwarding zero rate term structures. Make sure that you have no gaps in your observations.

2. Based on the time series of each risk factor, run a GARCH model $$y^{(i)}_{t}-y^{(i)}_{t-1}\equiv r^{(i)}_t=\sigma^{(i)}_t\epsilon^{(i)}_t$$ with $$(\sigma^{(i)}_t)^2=a^{(i)}_0+\sum\limits_{k=1}^n\alpha^{(i)}_k(r^{(i)}_{t-k})^2+\beta^{(i)}(\sigma_{t-1}^{(i)})^2$$, and store the time series of the pure innovation terms, $$\epsilon^{(i)}_t$$ as well as the $$\sigma^{(i)}_t$$-values.

3. Prepare today's $$\sigma_{t_0}^{(i)}$$ and randomly draw a historical time index $$\tau$$, and use historical risk factor returns $$\epsilon_{\tau}^{(i)}$$ in order to arrive at some simulated $$r^{(i)}_{t_0+1}$$ for each risk factor. You can repeat this step for some time (updating all $$\sigma_t^{(i)}$$ along the way according to you GARCH specifications) to arrive at a series of changes for all risk factors. Then, for some time horizon $$h$$, you can get your simulated zero rates as $$y_{t_0+h}^{(i)}=y_{t_0}^{(i)}+\sum_{k=1}^hr_{t_0+i}^{(i)}$$, thereby simulating new curves.

4. Price under the new curves.

5. Repeat 3. + 4. for some simulation number $$M$$ and infer risk.