Skip to content

Commit 106fa21

Browse files
committed
Merge branch 'feature/QPR-13478' into 'master'
QPR-13478 ExtendedAccumulator Fix Closes QPR-13478 See merge request qs/oreplus!3060
2 parents 8907cf4 + 0ef2954 commit 106fa21

5 files changed

Lines changed: 192 additions & 189 deletions

File tree

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
\subsubsection{Extended Accumulator}
2+
\label{pricing:extended_accumulator}
3+
4+
An ExtendedAccumulator requires the party that is long to periodically buy an underlying asset A (FX, Equity, or Commodity) at a pre-determined strike price K.
5+
A feature of the ExtendedAccumulator is knock-out, i.e. the contract terminates early if a Barrier observed on a single date (the Extension Decision Date) is hit.
6+
$$
7+
PayOff= \sum LongShort \cdot FixingAmount \cdot (K - X_A(T))
8+
$$
9+
Where:
10+
\begin{itemize}
11+
\item $FixingAmount$: the fixing amount in currency/unit of A
12+
\item $K$: the strike. For Fx, the Fx strike rate is defined as amount in domestic currency (CCY2) for one unit of foreign currency (CCY1). For Equity and Commodity: The strike value for one unit/share/contract of the underlying equity or commodity, expressed in the domestic currency (CCY2).
13+
\item $X_A(T)$: the fixing value of the asset A at each observation date T
14+
\end{itemize}

Docs/UserGuide/pricing/extendedfxforwardswap.tex

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
\subsubsection{Extended Accumulator}
2+
3+
Extended Accumulator are represented as scripted trades, refer to appendix A for an introduction. Listing \ref{lst:extendedaccumulator} shows the structure of an example.
4+
5+
An Extended Accumulator is like an Accumulator with regular and conditional observation and settlement dates. After the regular observation dates a European barrier is applied on
6+
the Extension Decision Date. If the barrier is hit the trade terminates, otherwise the trade continues with cashflows generated on the conditional observation dates.
7+
8+
\begin{listing}[H]
9+
\begin{minted}[fontsize=\footnotesize]{xml}
10+
<Trade id="ExtendedAccumulator">
11+
<TradeType>ScriptedTrade</TradeType>
12+
<Envelope>
13+
<CounterParty>CPTY_A</CounterParty>
14+
<NettingSetId>CRIF_20191230</NettingSetId>
15+
<PortfolioIds/>
16+
<AdditionalFields/>
17+
</Envelope>
18+
<ScriptedTradeData>
19+
<ScriptName>ExtendedAccumulator</ScriptName>
20+
<Data>
21+
<Event>
22+
<Name>ObservationDates</Name>
23+
<ScheduleData>
24+
<Dates>
25+
<Calendar/>
26+
<Tenor/>
27+
<Dates>
28+
<Date>2019-09-30</Date>
29+
<Date>2019-10-31</Date>
30+
<Date>2019-11-28</Date>
31+
<Date>2019-12-31</Date>
32+
<Date>2020-01-30</Date>
33+
<Date>2020-02-27</Date>
34+
</Dates>
35+
</Dates>
36+
</ScheduleData>
37+
</Event>
38+
<Event>
39+
<Name>ObservationSettlementDates</Name>
40+
<ScheduleData>
41+
<Dates>
42+
<Calendar/>
43+
<Tenor/>
44+
<Dates>
45+
<Date>2019-10-02</Date>
46+
<Date>2019-11-02</Date>
47+
<Date>2019-12-30</Date>
48+
<Date>2020-01-02</Date>
49+
<Date>2020-02-03</Date>
50+
<Date>2020-03-30</Date>
51+
</Dates>
52+
</Dates>
53+
</ScheduleData>
54+
</Event>
55+
<Event>
56+
<Name>ExtensionDecisionDate</Name>
57+
<Value>2020-02-25</Value>
58+
</Event>
59+
<Event>
60+
<Name>ConditionalObservationDates</Name>
61+
<ScheduleData>
62+
<Dates>
63+
<Calendar/>
64+
<Tenor/>
65+
<Dates>
66+
<Date>2020-03-31</Date>
67+
<Date>2020-04-30</Date>
68+
<Date>2020-05-29</Date>
69+
<Date>2020-06-30</Date>
70+
<Date>2020-07-31</Date>
71+
<Date>2020-08-31</Date>
72+
</Dates>
73+
</Dates>
74+
</ScheduleData>
75+
</Event>
76+
<Event>
77+
<Name>ConditionalSettlementDates</Name>
78+
<ScheduleData>
79+
<Dates>
80+
<Calendar/>
81+
<Tenor/>
82+
<Dates>
83+
<Date>2020-03-31</Date>
84+
<Date>2020-04-30</Date>
85+
<Date>2020-05-29</Date>
86+
<Date>2020-06-30</Date>
87+
<Date>2020-07-31</Date>
88+
<Date>2020-08-31</Date>
89+
</Dates>
90+
</Dates>
91+
</ScheduleData>
92+
</Event>
93+
<Number>
94+
<Name>LongShort</Name>
95+
<Value>1</Value>
96+
</Number>
97+
<Number>
98+
<Name>FixingAmount</Name>
99+
<Value>840336</Value>
100+
</Number>
101+
<Number>
102+
<Name>Strike</Name>
103+
<Value>1.19</Value>
104+
</Number>
105+
<Number>
106+
<Name>ExtensionTrigger</Name>
107+
<Value>1.19</Value>
108+
</Number>
109+
<Index>
110+
<Name>Underlying</Name>
111+
<Value>FX-ECB-EUR-USD</Value>
112+
</Index>
113+
<Currency>
114+
<Name>PayCurrency</Name>
115+
<Value>USD</Value>
116+
</Currency>
117+
</Data>
118+
</ScriptedTradeData>
119+
</Trade>
120+
\end{minted}
121+
\caption{Extended Accumulator Representation}
122+
\label{lst:extendedaccumulator}
123+
\end{listing}
124+
125+
The meanings and allowable values of the elements in the \verb+Extended Accumulator+ representation follow below.
126+
127+
\begin{itemize}
128+
\item LongShort: Defines whether the trade is long or short, i.e long means one buys the underlying asset and short sells the underlying asset at each observation date. \\
129+
Allowable values: \emph{Long, Short}
130+
\item Strike: For Fx, the Fx strike rate is defined as amount in domestic currency (CCY2) for one unit of foreign currency (CCY1). For Equity and Commodity: The strike value for one unit/share/contract of the underlying equity or commodity, expressed in the domestic currency (CCY2).
131+
\item Underlying: Underlying index. For Fx: Value is a string of the form FX-SOURCE-CCY1-CCY2 where CCY1 is the foreign currency, CCY2 is the domestic currency, and SOURCE is the fixing source.\\
132+
Allowable values: See Section \ref{data_index} for allowable values.
133+
\item FixingAmount: The unleveraged notional amount accumulated at each fixing date. - For Fx: The FixingAmount is expressed in the foreign currency (CCY1). Note that the underlying is provided in the form \lstinline!FX-SOURCE-CCY1-CCY2! (see Table \ref{tab:fxindex_data}). For Equity: The FixingAmount is expressed as number of shares/units of the underlying equity or equity index. For Commodity: The FixingAmount is expressed as number of units of the underlying commodity. \\
134+
Allowable values: Any real number. Note that a negative amount causes a Long ExtendedAccumulator to be a Short, and vice-versa
135+
\item PayCurrency: The payout currency. The result of the payout formula is treated to be in this currency. Note that for (non-quanto) ExtendedAccumulators this should be the domestic (CCY2) currency.
136+
\item ExtensionDecisionDate: the date on which the Extension Condition is decided on
137+
\item ExtensionTrigger: the value of the index below which a Trigger Event occurs on Extension Decision Date. It is expressed in the same way as Strike outlined above. If the underlying on the extension decision date is above the barrier level, it triggers the extension on conditional observation dates. Else, the trade terminate at last observation date.
138+
\item SettlementDate: the settlement date of the option payoff
139+
\item ObservationDates: the dates on which the underlying index value is observed, define the exchange of notionals
140+
\item ObservationSettlementDates: observation settlement dates
141+
\item ConditionalObservationDates: the dates on which the underlying index value is observed, define the exchange of notionals
142+
\item ConditionalSettlementDates: conditional observation settlement dates
143+
\end{itemize}
144+
145+
The script `ExtendedAccumulator' referenced in the trade above is shown in Listing \ref{lst:extendedaccumulator_script}.\\
146+
PayOff Formula \ref{pricing:extended_accumulator}:
147+
148+
$$
149+
PayOff = \sum LongShort \cdot N \cdot (K - X_A(T))
150+
$$
151+
152+
\begin{listing}[H]
153+
\begin{minted}[fontsize=\footnotesize]{xml}
154+
155+
REQUIRE {FixingAmount >= 0} AND {Strike >= 0};
156+
REQUIRE {SIZE(ConditionalObservationDates) == SIZE(ConditionalSettlementDates)};
157+
NUMBER d, Fixing;
158+
159+
FOR d IN (1, SIZE(ObservationDates), 1) DO
160+
Fixing = Underlying(ObservationDates[d]);
161+
Value = Value + PAY(LongShort * FixingAmount * (Strike-Fixing), ObservationDates[d], ObservationSettlementDates[d], PayCurrency);
162+
END;
163+
164+
IF Underlying(ExtensionDecisionDate)>ExtensionTrigger THEN
165+
FOR d IN (1, SIZE(ConditionalObservationDates), 1) DO
166+
Fixing = Underlying(ConditionalObservationDates[d]);
167+
Value = Value + PAY(LongShort * FixingAmount * (Strike-Fixing), ConditionalObservationDates[d], ConditionalSettlementDates[d], PayCurrency);
168+
END;
169+
END;
170+
currentNotional = FixingAmount * Strike;
171+
\end{minted}
172+
\caption{ExtendedAccumulator Script}
173+
\label{lst:extendedaccumulator_script}
174+
\end{listing}
175+

Docs/UserGuide/tradedata/extendedfxforwardswap.tex

Lines changed: 0 additions & 173 deletions
This file was deleted.

0 commit comments

Comments
 (0)