Skip to content

Commit 9895452

Browse files
author
jenkins
committed
git subrepo pull (merge) ore
subrepo: subdir: "ore" merged: "cdcc4d4f4b" upstream: origin: "git@gitlab.acadiasoft.net:qs/ore.git" branch: "master" commit: "3f82b0b573" git-subrepo: version: "0.4.6" origin: "https://github.com/ingydotnet/git-subrepo" commit: "73a0129"
2 parents f19c8d4 + 3f82b0b commit 9895452

64 files changed

Lines changed: 9271 additions & 2354 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
@@ -6137,10 +6137,16 @@ \subsection{Stress Scenario Analysis: {\tt stressconfig.xml}}\label{sec:stress}
61376137
This file {\tt stressconfig.xml} specifies how stress tests can be configured. The general structure is shown in listing
61386138
\ref{lst:stress_config}.
61396139

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

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

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

0 commit comments

Comments
 (0)