Skip to content

Commit 8a3cfe4

Browse files
committed
Merge branch 'master' into 'master'
Update github See merge request qs/ore-github!3
2 parents d92f010 + 60e0536 commit 8a3cfe4

52 files changed

Lines changed: 1352 additions & 606 deletions

Some content is hidden

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

Docker/.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
TAG=latest
22
DEBIAN_TAG=11.7
3-
QL_TAG=1.30_9921a4d7
3+
QL_TAG=1.30_4274655e
44
BOOST_TAG=1.78.0
55
BOOST_DIR=1_78_0
66
NUM_CORES=16

Docs/UserGuide/tradecomponents/floatinglegdata.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ \subsubsection{Floating Leg Data, Spreads, Gearings, Caps and Floors}
250250
251251
\item Caps [Optional]: This node contains child elements of type \lstinline!Cap! indicating that the coupon rate is
252252
capped at the given rate (after applying gearing and spread, if any). The mode of specification is analogous to
253-
spreads, see above. Caps / Floors are supported for Ibor and compounded / averaged OIS coupons, but not for coupons
253+
spreads, see above. Caps / Floors are supported for Ibor, SIFMA, compounded / averaged OIS coupons, but not for coupons
254254
with subperiods.
255255
256256
For OIS coupons notice how the gearing $g$ and spread $s$ enter the calculation of the coupon amount $A$ dependent on

Docs/UserGuide/tradedata/capfloor.tex

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
\subsubsection{Cap/Floor}
22
\label{ss:capfloor}
33

4-
The \lstinline!CapFloorData! node is the trade data container for the \emph{CapFloor} trade type. It's a cap, floor or collar
5-
(i.e. a portfolio of a long cap and a short floor for a long position in the collar) on a series of Ibor or CMS rates.
4+
The \lstinline!CapFloorData! node is the trade data container for the \emph{CapFloor} trade type. It's a cap, floor or
5+
collar (i.e. a portfolio of a long cap and a short floor for a long position in the collar) on a series of Ibor, SIFMA,
6+
OIS, CMS, Duration-adjusted CMS, CMS Spread, CPI, YY coupons.
67

78
The \lstinline!CapFloorData! node contains a \lstinline!LongShort! sub-node which indicates whether the cap (floor, collar)
89
is long or short, and a \lstinline!LegData! sub-node where the

Docs/UserGuide/tradedata/crosscurrencyswap.tex

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ \subsubsection{Cross Currency Swap}
77
\item Optionally additional legs of type \emph{Cashflow}.
88
\end{itemize}
99

10-
10+
Rebalancing\\
1111
A Cross Currency Swap can be rebalancing, meaning the notional amount on one leg resets to the equivalent of a fixed amount in another currency (called ForeignCurrency, and is typically the currency of the other leg) at each period. This is represented using an \lstinline!FXReset! node on the resetting/rebalancing leg, within the \lstinline!Notionals! node.
1212

1313
Note that for rebalancing Cross Currency Swaps, the Notional in leg currency on the rebalancing leg is optional. If set, it is used as starting notional, and causes the first period (if forward starting) to be considered as "on-the-run" for purposes of SIMM exemptions as the fx rate for the notional is considered to have been fixed from the inception of the trade. If no notional on the rebalancing leg is set, the starting notional will be based on a projected fx rate (i.e. not "on-the-run") until the actual fixing date.
@@ -127,3 +127,56 @@ \subsubsection{Cross Currency Swap}
127127
\label{lst:crosscurrencyswapreset}
128128
\end{listing}
129129

130+
Non-Deliverable\\
131+
Note that Cross Currency Swaps having legs in non-deliverable currencies with payment in a deliverable currency are supported by using the Indexings node (\ref{ss:indexings}), setting Settlement to \emph{Cash} and setting the Currency to the deliverable currency, while keeping the Notional expressed in the non-deliverable currency amount.
132+
133+
The Indexings node includes a mandatory fx Index field defining the deliverable and non-deliverable currency pair, and an optional InitialNotionalFixing field for the contractual fx rate to be applied to the initial notional exchange. Notice that the InitialNotionalFixing rate has to be expressed as amount in deliverable or payment currency per unit of non-deliverable currency, and if omitted defaults to a projected (if in the future) or an fx fixing from market data (if in the past). The Indexing node can also include optional FixingCalendar, IsInArrears and FixingDays fields to determine the date(s) of the fx fixing(s).
134+
135+
Listing \ref{lst:ndir_xccy_swap} includes an example USD-CLP non-deliverable cross currency swap where one leg is in CLP which is a non-deliverable
136+
currency, and the other is in USD which is deliverable. Note that it is possible for both legs to be in different non-deliverable currencies.
137+
138+
\begin{listing}[H]
139+
%\hrule\medskip
140+
\begin{minted}[fontsize=\footnotesize]{xml}
141+
<SwapData>
142+
<Settlement>Cash</Settlement>
143+
<LegData>
144+
<LegType>Floating</LegType>
145+
<Payer>false</Payer>
146+
<Currency>USD</Currency>
147+
<Notionals>
148+
<Notional>1000000</Notional>
149+
<Exchanges>
150+
<NotionalInitialExchange>true</NotionalInitialExchange>
151+
<NotionalFinalExchange>true</NotionalFinalExchange>
152+
</Exchanges>
153+
</Notionals>
154+
...
155+
</LegData>
156+
<LegData>
157+
<LegType>Floating</LegType>
158+
<Payer>false</Payer>
159+
<Currency>USD</Currency><!-- Payment currency is USD rather than CLP -->
160+
<Notionals>
161+
<Notional>850000000</Notional><!-- in CLP -->
162+
<Exchanges>
163+
<NotionalInitialExchange>true</NotionalInitialExchange>
164+
<NotionalFinalExchange>true</NotionalFinalExchange>
165+
</Exchanges>
166+
</Notionals>
167+
<Indexings>
168+
<Indexing>
169+
<Index>FX-TR20H-CLP-USD</Index><!-- to convert CLP flows into USD -->
170+
<FixingCalendar>CLP,USD</FixingCalendar>
171+
<IsInArrears>true</IsInArrears>
172+
<FixingDays>2</FixingDays>
173+
<InitialNotionalFixing>0.15</InitialNotionalFixing><!-- applied to initial ntl exchange -->
174+
</Indexing>
175+
</Indexings>
176+
...
177+
</LegData>
178+
</SwapData>
179+
\end{minted}
180+
\caption{Non deliverable Cross Currency Swap}
181+
\label{lst:ndir_xccy_swap}
182+
\end{listing}

Docs/UserGuide/tradedata/swap.tex

Lines changed: 2 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -32,65 +32,10 @@ \subsubsection{Swap}
3232
\end{listing}
3333

3434

35-
Note that Swaps for non-deliverable currencies with payment in a deliverable currency are supported using the Indexings node (\ref{ss:indexings}).
35+
Note that Swaps in non-deliverable currencies with payment in a deliverable currency are supported by setting Settlement to \emph{Cash} and - on both legs - using the Indexings node (\ref{ss:indexings}), as well as setting the Currency to the deliverable currency, while keeping the Notional expressed in the non-deliverable currency amount.
3636

37-
A non-deliverable cross currency Swap has Settlement set to \emph{Cash}, and one leg is a regular leg in the deliverable
38-
currency without Indexings. The other leg has Currency set to the deliverable currency, Notional in the non–deliverable
39-
currency and Indexings with an FX Index between the deliverable and non-deliverable currency. See Listing
40-
\ref{lst:ndir_xccy_swap} for an example USD-CLP non-deliverable cross currency swap where CLP is the non–deliverable
41-
currency. Notice that a contractual fx rate to be applied to the initial notional exchange is specified in the field
42-
\emph{InitialNotionalFixing}. Notice that this rate has to be expressed with target currency = payment currency.
37+
Within the Indexings node, an fx Index field is mandatory defining the deliverable and non-deliverable currencies and fixing source. The Indexing node can also include optional FixingCalendar, IsInArrears and FixingDays fields to determine the date(s) of the fx fixing(s). See Listing \ref{lst:ndir_swap} for an example non-deliverable IR swap where USD is the payment currency and CLP is the non-deliverable currency.
4338

44-
A non-deliverable IR Swap has Currency set to the deliverable currency on both legs, Notional in the non-deliverable
45-
currency on both legs, and Indexings with an FX Index between the deliverable and non-deliverable currency on both
46-
legs. See Listing \ref{lst:ndir_swap} for an example non-deliverable IR swap where USD is the payment currency and CLP
47-
is the non-deliverable currency.
48-
49-
\begin{listing}[H]
50-
%\hrule\medskip
51-
\begin{minted}[fontsize=\footnotesize]{xml}
52-
<SwapData>
53-
<Settlement>Cash</Settlement>
54-
<LegData>
55-
<LegType>Floating</LegType>
56-
<Payer>false</Payer>
57-
<Currency>USD</Currency>
58-
<Notionals>
59-
<Notional>1000000</Notional>
60-
<Exchanges>
61-
<NotionalInitialExchange>true</NotionalInitialExchange>
62-
<NotionalFinalExchange>true</NotionalFinalExchange>
63-
</Exchanges>
64-
</Notionals>
65-
...
66-
</LegData>
67-
<LegData>
68-
<LegType>Floating</LegType>
69-
<Payer>false</Payer>
70-
<Currency>USD</Currency><!-- Payment currency is USD rather than CLP -->
71-
<Notionals>
72-
<Notional>850000000</Notional><!-- in CLP -->
73-
<Exchanges>
74-
<NotionalInitialExchange>true</NotionalInitialExchange>
75-
<NotionalFinalExchange>true</NotionalFinalExchange>
76-
</Exchanges>
77-
</Notionals>
78-
<Indexings>
79-
<Indexing>
80-
<Index>FX-TR20H-CLP-USD</Index><!-- to convert CLP flows into USD -->
81-
<FixingCalendar>CLP,USD</FixingCalendar>
82-
<IsInArrears>true</IsInArrears>
83-
<FixingDays>2</FixingDays>
84-
<InitialNotionalFixing>0.15</InitialNotionalFixing> <!-- applied to initial notional exchange -->
85-
</Indexing>
86-
</Indexings>
87-
...
88-
</LegData>
89-
</SwapData>
90-
\end{minted}
91-
\caption{Non deliverable Cross Currency Swap}
92-
\label{lst:ndir_xccy_swap}
93-
\end{listing}
9439

9540
\begin{listing}[H]
9641
%\hrule\medskip

0 commit comments

Comments
 (0)