Skip to content

Commit 044ae6e

Browse files
damienbarkerjenkins
authored andcommitted
QPR-12242 merge with master
2 parents afab6eb + 3f82b0b commit 044ae6e

64 files changed

Lines changed: 9273 additions & 2351 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Docs/UserGuide/parameterisation/stressconfig.tex

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,31 @@ \subsection{Stress Scenario Analysis: {\tt stressconfig.xml}}\label{sec:stress}
88
This file {\tt stressconfig.xml} specifies how stress tests can be configured. The general structure is shown in listing
99
\ref{lst:stress_config}.
1010

11-
In this example, two stress scenarios ``parallel\_rates'' and ``twist'' are defined. Each scenario definition contains
11+
In this example, two zero stress scenarios ``parallel\_rates'' and ``twist'' and one par rate ``par_parallel'' are defined.
12+
Each scenario definition contains
1213
the market components to be shifted in this scenario in a similar syntax that is also used for the sensitivity
1314
configuration, see \ref{sec:sensitivity}. Components that should not be shifted, can just be omitted in the definition
14-
of the scenario.
15+
of the scenario. Shifts for rate curves, credit curves and interest rate cap/floors can be given as par or zero rate shifts.
16+
By default shifts are zero rate shifts. If shifts are marked as par rate shifts all components (rate/credit/caps) shifts are
17+
par shifts in that category, for example it is not possible to have par rate first for one yield curve and zero rate for
18+
another curve in the same scenario. In case of par stress scenario, the shifted par instruments and related conventions are defined
19+
in a sensitivity configuration. The number number stress shifts (tenors/expiries and strikes) need to be allign with
20+
the tenors/expiries and strikes of par instruments \ref{sec:sensitivity}.
1521

1622
However, instead of specifying one shift size per market component, here a whole vector of shifts can be given, with
1723
different shift sizes applied to each point of the curve (or surface / cube).
1824

1925
In case of the swaption volatility shifts, the single value given as {\tt Shift} (without the attributes {\tt expiry}
2026
and {\tt term}) represents a default value that is used whenever no explicit value is given for a expiry / term pair.
2127

28+
UseSpreadedTermStructures: If set to true, spreaded termstructures over t0 will be used for the scenario calculation, to
29+
improve the alignment of the scenario sim market and t0 curves.
30+
2231
\begin{longlisting}
2332
%\hrule\medskip
2433
\begin{minted}[fontsize=\scriptsize]{xml}
2534
<StressTesting>
35+
<UseSpreadedTermStructures>false</UseSpreadedTermStructures>
2636
<StressTest id="parallel_rates">
2737
<DiscountCurves>
2838
<DiscountCurve ccy="EUR">
@@ -74,8 +84,58 @@ \subsection{Stress Scenario Analysis: {\tt stressconfig.xml}}\label{sec:stress}
7484
<StressTest id="twist">
7585
...
7686
</StressTest>
87+
<StressTest id="par_parallel">
88+
<ParShifts>
89+
<IRCurves>true</IRCurves>
90+
<SurvivalProbability>true</SurvivalProbability>
91+
<CapFloorVolatilities>true</CapFloorVolatilities>
92+
</ParShifts>
93+
<DiscountCurves>
94+
<DiscountCurve ccy="EUR">
95+
<ShiftType>Absolute</ShiftType>
96+
<ShiftTenors>6M,1Y,2Y,3Y,5Y,7Y,10Y,15Y,20Y</ShiftTenors>
97+
<Shifts>0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01</Shifts>
98+
</DiscountCurve>
99+
...
100+
</DiscountCurves>
101+
<IndexCurves>
102+
...
103+
</IndexCurves>
104+
<YieldCurves />
105+
<FxSpots />
106+
<FxVolatilities />
107+
<SwaptionVolatilities />
108+
<CapFloorVolatilities>
109+
<CapFloorVolatility key="EUR-EURIBOR-6M">
110+
<ShiftType>Absolute</ShiftType>
111+
<ShiftExpiries>1Y, 2Y, 3Y, 4Y, 5Y, 6Y, 7Y, 8Y, 9Y</ShiftExpiries>
112+
<Shifts>
113+
<Shift tenor="1Y">0.01</Shift>
114+
<Shift tenor="2Y">0.01</Shift>
115+
<Shift tenor="3Y">0.01</Shift>
116+
<Shift tenor="4Y">0.01</Shift>
117+
<Shift tenor="5Y">0.01</Shift>
118+
<Shift tenor="6Y">0.01</Shift>
119+
<Shift tenor="7Y">0.01</Shift>
120+
<Shift tenor="8Y">0.01</Shift>
121+
<Shift tenor="9Y">0.01</Shift>
122+
</Shifts>
123+
</CapFloorVolatility>
124+
</CapFloorVolatilities>
125+
<EquitySpots />
126+
<EquityVolatilities />
127+
<SecuritySpreads />
128+
<RecoveryRates />
129+
<SurvivalProbabilities>
130+
<SurvivalProbability name="Underlying1">
131+
<ShiftType>Absolute</ShiftType>
132+
<Shifts>0.01, 0.01, 0.01, 0.01, 0.01</Shifts>
133+
<ShiftTenors>1Y, 2Y, 3Y, 5Y, 10Y</ShiftTenors>
134+
</SurvivalProbability>
135+
</SurvivalProbabilities>
136+
</StressTest>
77137
</StressTesting>
78138
\end{minted}
79139
\caption{Stress configuration}
80140
\label{lst:stress_config}
81-
\end{longlisting}
141+
\end{longlisting}

Docs/UserGuide/userguide.tex

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6134,10 +6134,16 @@ \subsection{Stress Scenario Analysis: {\tt stressconfig.xml}}\label{sec:stress}
61346134
This file {\tt stressconfig.xml} specifies how stress tests can be configured. The general structure is shown in listing
61356135
\ref{lst:stress_config}.
61366136

6137-
In this example, two stress scenarios ``parallel\_rates'' and ``twist'' are defined. Each scenario definition contains
6137+
In this example, two zero stress scenarios ``parallel\_rates'' and ``twist'' and one par rate ``par\_parallel'' are defined.
6138+
Each scenario definition contains
61386139
the market components to be shifted in this scenario in a similar syntax that is also used for the sensitivity
61396140
configuration, see \ref{sec:sensitivity}. Components that should not be shifted, can just be omitted in the definition
6140-
of the scenario.
6141+
of the scenario. Shifts for rate curves, credit curves and interest rate cap/floors can be given as par or zero rate shifts.
6142+
By default shifts are zero rate shifts. If shifts are marked as par rate shifts all components (rate/credit/caps) shifts are
6143+
par shifts in that category, for example it is not possible to have par rate first for one yield curve and zero rate for
6144+
another curve in the same scenario. In case of par stress scenario, the shifted par instruments and related conventions are defined
6145+
in a sensitivity configuration. The number number stress shifts (tenors/expiries and strikes) need to be allign with
6146+
the tenors/expiries and strikes of par instruments \ref{sec:sensitivity}.
61416147

61426148
However, instead of specifying one shift size per market component, here a whole vector of shifts can be given, with
61436149
different shift sizes applied to each point of the curve (or surface / cube).
@@ -6148,7 +6154,6 @@ \subsection{Stress Scenario Analysis: {\tt stressconfig.xml}}\label{sec:stress}
61486154
UseSpreadedTermStructures: If set to true, spreaded termstructures over t0 will be used for the scenario calculation, to
61496155
improve the alignment of the scenario sim market and t0 curves.
61506156

6151-
61526157
\begin{longlisting}
61536158
%\hrule\medskip
61546159
\begin{minted}[fontsize=\scriptsize]{xml}
@@ -6205,6 +6210,56 @@ \subsection{Stress Scenario Analysis: {\tt stressconfig.xml}}\label{sec:stress}
62056210
<StressTest id="twist">
62066211
...
62076212
</StressTest>
6213+
<StressTest id="par_parallel">
6214+
<ParShifts>
6215+
<IRCurves>true</IRCurves>
6216+
<SurvivalProbability>true</SurvivalProbability>
6217+
<CapFloorVolatilities>true</CapFloorVolatilities>
6218+
</ParShifts>
6219+
<DiscountCurves>
6220+
<DiscountCurve ccy="EUR">
6221+
<ShiftType>Absolute</ShiftType>
6222+
<ShiftTenors>6M,1Y,2Y,3Y,5Y,7Y,10Y,15Y,20Y</ShiftTenors>
6223+
<Shifts>0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01</Shifts>
6224+
</DiscountCurve>
6225+
...
6226+
</DiscountCurves>
6227+
<IndexCurves>
6228+
...
6229+
</IndexCurves>
6230+
<YieldCurves />
6231+
<FxSpots />
6232+
<FxVolatilities />
6233+
<SwaptionVolatilities />
6234+
<CapFloorVolatilities>
6235+
<CapFloorVolatility key="EUR-EURIBOR-6M">
6236+
<ShiftType>Absolute</ShiftType>
6237+
<ShiftExpiries>1Y, 2Y, 3Y, 4Y, 5Y, 6Y, 7Y, 8Y, 9Y</ShiftExpiries>
6238+
<Shifts>
6239+
<Shift tenor="1Y">0.01</Shift>
6240+
<Shift tenor="2Y">0.01</Shift>
6241+
<Shift tenor="3Y">0.01</Shift>
6242+
<Shift tenor="4Y">0.01</Shift>
6243+
<Shift tenor="5Y">0.01</Shift>
6244+
<Shift tenor="6Y">0.01</Shift>
6245+
<Shift tenor="7Y">0.01</Shift>
6246+
<Shift tenor="8Y">0.01</Shift>
6247+
<Shift tenor="9Y">0.01</Shift>
6248+
</Shifts>
6249+
</CapFloorVolatility>
6250+
</CapFloorVolatilities>
6251+
<EquitySpots />
6252+
<EquityVolatilities />
6253+
<SecuritySpreads />
6254+
<RecoveryRates />
6255+
<SurvivalProbabilities>
6256+
<SurvivalProbability name="Underlying1">
6257+
<ShiftType>Absolute</ShiftType>
6258+
<Shifts>0.01, 0.01, 0.01, 0.01, 0.01</Shifts>
6259+
<ShiftTenors>1Y, 2Y, 3Y, 5Y, 10Y</ShiftTenors>
6260+
</SurvivalProbability>
6261+
</SurvivalProbabilities>
6262+
</StressTest>
62086263
</StressTesting>
62096264
\end{minted}
62106265
\caption{Stress configuration}

0 commit comments

Comments
 (0)