Skip to content

Commit 785877b

Browse files
author
jenkins
committed
git subrepo pull (merge) ore
subrepo: subdir: "ore" merged: "62793fa07e" upstream: origin: "git@gitlab.acadiasoft.net:qs/ore.git" branch: "master" commit: "fd87547331" git-subrepo: version: "0.4.6" origin: "https://github.com/ingydotnet/git-subrepo" commit: "73a0129"
2 parents 35692d5 + fd87547 commit 785877b

26 files changed

Lines changed: 860 additions & 204 deletions

Docker/.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ DEBIAN_TAG=11.7
33
# it's recommended to include CMAKE_BUILD_TYPE and BOOST_VARIANT in QL_TAG, ORE_TAG, BOOST_TAG
44
# to distinguish a release build from a debug build
55

6-
QL_TAG=1.31.1_ddda9430
6+
QL_TAG=1.31.1_f8955cf0
77
ORE_TAG=latest
88

99
# debug or release

Docs/UserGuide/tradedata/compositetrade.tex

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,19 @@ \subsubsection{Composite Trade}
2323
\label{lst:compositetrade_data}
2424
\end{listing}
2525
26+
\begin{listing}[H]
27+
%\hrule\medskip
28+
\begin{minted}[fontsize=\footnotesize]{xml}
29+
<CompositeTradeData>
30+
<Currency>USD</Currency>
31+
<NotionalCalculation>Sum</NotionalCalculation>
32+
<PortfolioBasket>true</PortfolioBasket>
33+
<BasketName>NAME</BasketName>
34+
</CompositeTradeData>
35+
\end{minted}
36+
\caption{Composite trade data with Reference Data}
37+
\end{listing}
38+
2639
The meanings and allowable values of the elements in the \lstinline!CompositeTradeData! node follow below.
2740
2841
\begin{itemize}
@@ -43,4 +56,8 @@ \subsubsection{Composite Trade}
4356
Allowable values: Any non-negative real number.
4457
\item Components: The portfolio of trades that make up the composite trade. \\
4558
Allowable values: These trades should be valid xmls that could otherwise be entered into the portfolio, with the exception that they can have empty ids.
59+
\item PortfolioBasket [Optional]: Indicate if the Component represent a portfolio basket. \\
60+
Allowable values: Boolean true or false.
61+
\item BasketName [Optional]: The portfolio Id. \\
62+
Allowable values: Any string. Note that if PortfolioBasket is True then there must be a BasketName. We look up the Basket within the reference data.
4663
\end{itemize}
Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
\subsubsection{CPI Swap}
22

3-
A CPI swap can be set up as a swap with trade type \emph{Swap}, with one leg of type {\tt CPI}. Listing \ref{lst:cpiswap}
4-
shows an example. The CPI leg contains an additional {\tt CPILegData} block. See \ref{ss:cpilegdata} for details on the
5-
CPI leg specification.
3+
A CPI inflation swap can be set up using the \emph{InflationSwap} trade type, with one leg of type {\tt CPI}. and the other leg(s) can be of any leg type. Listing \ref{lst:cpiinflationswap} shows an example. The CPI leg contains an additional {\tt CPILegData} block. See \ref{ss:cpilegdata} for details on the
4+
CPI leg specification.
5+
6+
Note that Cross Currency Inflation Swaps are supported, as the currencies on the legs of an \emph{InflationSwap} do not need to be the same.
7+
68

79
\begin{listing}[H]
810
%\hrule\medskip
911
\begin{minted}[fontsize=\footnotesize]{xml}
10-
<SwapData>
12+
<InflationSwapData>
1113
<LegData>
1214
<LegType>Floating</LegType>
1315
<Payer>true</Payer>
@@ -21,18 +23,19 @@ \subsubsection{CPI Swap}
2123
...
2224
</CPILegData>
2325
</LegData>
24-
</SwapData>
26+
</InflationSwapData>
2527
\end{minted}
26-
\caption{CPI Swap Data (using \emph{Swap} trade type)}
27-
\label{lst:cpiswap}
28+
\caption{CPI Swap Data (using \emph{InflationSwap} trade type)}
29+
\label{lst:cpiinflationswap}
2830
\end{listing}
2931

30-
Alternatively, a CPI swap can be set up using the \emph{InflationSwap} trade type, see Listing \ref{lst:cpiinflationswap}. The structure of the {\tt InflationSwapData} container is the same as for {\tt SwapData} above.
32+
33+
Alternatively, a CPI swap can be set up as a swap with trade type \emph{Swap}, with one leg of type {\tt CPI}, see listing \ref{lst:cpiswap}.
3134

3235
\begin{listing}[H]
3336
%\hrule\medskip
3437
\begin{minted}[fontsize=\footnotesize]{xml}
35-
<InflationSwapData>
38+
<SwapData>
3639
<LegData>
3740
<LegType>Floating</LegType>
3841
<Payer>true</Payer>
@@ -46,8 +49,9 @@ \subsubsection{CPI Swap}
4649
...
4750
</CPILegData>
4851
</LegData>
49-
</InflationSwapData>
52+
</SwapData>
5053
\end{minted}
51-
\caption{CPI Swap Data (using \emph{InflationSwap} trade type)}
52-
\label{lst:cpiinflationswap}
53-
\end{listing}
54+
\caption{CPI Swap Data (using \emph{Swap} trade type)}
55+
\label{lst:cpiswap}
56+
\end{listing}
57+
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#TradeId,TradeType,Maturity,MaturityTime,NPV,NpvCurrency,NPV(Base),BaseCurrency,Notional,NotionalCurrency,Notional(Base),NettingSet,CounterParty
2-
Cap_USD_SOFR,Swap,2025-03-21,1.003324,0.000931,USD,0.000931,USD,100000000.00,USD,100000000.00,DUMMY_NS,DUMMY_CP
3-
Swaption_USD_SOFR,Swaption,2046-01-12,21.817022,250911.447892,USD,250911.447892,USD,100000000.00,USD,100000000.00,DUMMY_NS,DUMMY_CP
2+
Cap_USD_SOFR,Swap,2025-03-21,1.003324,290.635657,USD,290.635657,USD,100000000.00,USD,100000000.00,DUMMY_NS,DUMMY_CP
3+
Swaption_USD_SOFR,Swaption,2046-01-12,21.817022,250911.447904,USD,250911.447904,USD,100000000.00,USD,100000000.00,DUMMY_NS,DUMMY_CP

Examples/Example_60/Input/curveconfig.xml

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,29 @@
5555
<IsFixed>false</IsFixed>
5656
</Parameter>
5757
</Parameters>
58+
<!-- alternatively, the parameters can be specified for each optionlet, e.g.: -->
59+
<!-- <Parameters> -->
60+
<!-- <Parameter> -->
61+
<!-- <Name>alpha</Name> -->
62+
<!-- <InitialValue>0.0050,0.0060,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050</InitialValue> -->
63+
<!-- <IsFixed>true</IsFixed> -->
64+
<!-- </Parameter> -->
65+
<!-- <Parameter> -->
66+
<!-- <Name>beta</Name> -->
67+
<!-- <InitialValue>0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1</InitialValue> -->
68+
<!-- <IsFixed>true</IsFixed> -->
69+
<!-- </Parameter> -->
70+
<!-- <Parameter> -->
71+
<!-- <Name>nu</Name> -->
72+
<!-- <InitialValue>0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.20,0.30</InitialValue> -->
73+
<!-- <IsFixed>true</IsFixed> -->
74+
<!-- </Parameter> -->
75+
<!-- <Parameter> -->
76+
<!-- <Name>rho</Name> -->
77+
<!-- <InitialValue>0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9,0.0,0.0</InitialValue> -->
78+
<!-- <IsFixed>true</IsFixed> -->
79+
<!-- </Parameter> -->
80+
<!-- </Parameters> -->
5881
<Calibration>
5982
<MaxCalibrationAttempts>10</MaxCalibrationAttempts>
6083
<ExitEarlyErrorThreshold>0.005</ExitEarlyErrorThreshold>
@@ -116,6 +139,109 @@
116139
<IsFixed>false</IsFixed>
117140
</Parameter>
118141
</Parameters>
142+
<!-- alternatively the parameters can be specified per option tenor (row) and swap tenor (col), e.g.: -->
143+
<!-- <Parameters> -->
144+
<!-- <Parameter> -->
145+
<!-- <Name>alpha</Name> -->
146+
<!-- <InitialValue> -->
147+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0070, -->
148+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
149+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
150+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
151+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
152+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
153+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
154+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
155+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
156+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
157+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
158+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
159+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
160+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
161+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
162+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
163+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
164+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050, -->
165+
<!-- 0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050,0.0050 -->
166+
<!-- </InitialValue> -->
167+
<!-- <IsFixed>true</IsFixed> -->
168+
<!-- </Parameter> -->
169+
<!-- <Parameter> -->
170+
<!-- <Name>beta</Name> -->
171+
<!-- <InitialValue> -->
172+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
173+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
174+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
175+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
176+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
177+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
178+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
179+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
180+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
181+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
182+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
183+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
184+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
185+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
186+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
187+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
188+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
189+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
190+
<!-- 0.8,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -->
191+
<!-- </InitialValue> -->
192+
<!-- <IsFixed>true</IsFixed> -->
193+
<!-- </Parameter> -->
194+
<!-- <Parameter> -->
195+
<!-- <Name>nu</Name> -->
196+
<!-- <InitialValue> -->
197+
<!-- 0.20,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
198+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
199+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
200+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
201+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
202+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
203+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
204+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
205+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
206+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
207+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
208+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
209+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
210+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
211+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
212+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
213+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
214+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30, -->
215+
<!-- 0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30 -->
216+
<!-- </InitialValue> -->
217+
<!-- <IsFixed>true</IsFixed> -->
218+
<!-- </Parameter> -->
219+
<!-- <Parameter> -->
220+
<!-- <Name>rho</Name> -->
221+
<!-- <InitialValue> -->
222+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
223+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
224+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
225+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
226+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
227+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
228+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
229+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
230+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
231+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
232+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
233+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
234+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
235+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
236+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
237+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
238+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
239+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, -->
240+
<!-- 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.99 -->
241+
<!-- </InitialValue> -->
242+
<!-- <IsFixed>true</IsFixed> -->
243+
<!-- </Parameter> -->
244+
<!-- </Parameters> -->
119245
<Calibration>
120246
<MaxCalibrationAttempts>10</MaxCalibrationAttempts>
121247
<ExitEarlyErrorThreshold>0.005</ExitEarlyErrorThreshold>

OREData/ored/configuration/parametricsmileconfiguration.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace data {
2727
void ParametricSmileConfiguration::Parameter::fromXML(XMLNode* node) {
2828
XMLUtils::checkNode(node, "Parameter");
2929
name = XMLUtils::getChildValue(node, "Name", true);
30-
initialValue = parseReal(XMLUtils::getChildValue(node, "InitialValue", true));
30+
initialValue = parseListOfValues<Real>(XMLUtils::getChildValue(node, "InitialValue", true), parseReal);
3131
isFixed = parseBool(XMLUtils::getChildValue(node, "IsFixed", true));
3232
}
3333

OREData/ored/configuration/parametricsmileconfiguration.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class ParametricSmileConfiguration : public XMLSerializable {
4040
ore::data::XMLNode* toXML(ore::data::XMLDocument& doc) const override;
4141

4242
std::string name;
43-
double initialValue = 0.0;
43+
std::vector<double> initialValue = {0.0};
4444
bool isFixed = false;
4545
};
4646

0 commit comments

Comments
 (0)