@@ -5,6 +5,75 @@ \subsection{Pricing Engines: {\tt pricingengine.xml}}
55
66The pricing engine configuration file is provided to select pricing models and pricing engines by product type.
77
8+ %--------------------------------------------------------
9+ \subsubsection{Product Type: BondRepo}
10+ %--------------------------------------------------------
11+
12+ Used by trade type: BondRepo
13+
14+ Available Model/Engine pairs:
15+
16+ \begin{itemize}
17+ \item DiscountedCashflows/DiscountingRepoEngine
18+ \item Accrual/AccrualRepoEngine
19+ \end{itemize}
20+
21+ Engine description:
22+
23+ DiscountedCashflows/DiscountingRepoEngine builds a DiscountingBondRepoEngine. A sample configuration is shown in listing
24+ \ref{lst:peconfig_BondRepo_DiscountedCashflows_DiscountingRepoEngine}.
25+
26+ The parameters have the following meaning:
27+
28+ \begin{itemize}
29+ \item IncludeSecurityLeg: include the security leg in the valuation
30+ \item SensitivityTemplate [optional]: the sensitivity template to use
31+ \end{itemize}
32+
33+ \begin{longlisting}
34+ \begin{minted}[fontsize=\footnotesize]{xml}
35+ <Product type="BondRepo">
36+ <Model>DiscountedCashflows</Model>
37+ <ModelParameters>
38+ <Parameter name="IncludeSecurityLeg">true</Parameter>
39+ </ModelParameters>
40+ <Engine>DiscountingRepoEngine</Engine>
41+ <EngineParameters>
42+ <Parameter name="SensitivityTemplate">IR_Analytical</Parameter>
43+ </EngineParameters>
44+ </Product>
45+ \end{minted}
46+ \caption{Configuration for Product BondRepo, Model DiscountedCashflows, Engine DiscountingRepoEngine}
47+ \label{lst:peconfig_BondRepo_DiscountedCashflows_DiscountingRepoEngine}
48+ \end{longlisting}
49+
50+ Accrual/AccrualRepoEngine builds a AccrualBondRepoEngine. A sample configuration is shown in listing
51+ \ref{lst:peconfig_BondRepo_Accrual_AccrualBondRepoEngine}.
52+
53+ The parameters have the following meaning:
54+
55+ \begin{itemize}
56+ \item IncludeSecurityLeg: include the security leg in the valuation
57+ \item SensitivityTemplate [optional]: the sensitivity template to use
58+ \end{itemize}
59+
60+ \begin{longlisting}
61+ \begin{minted}[fontsize=\footnotesize]{xml}
62+ <Product type="BondRepo">
63+ <Model>Accrual</Model>
64+ <ModelParameters>
65+ <Parameter name="IncludeSecurityLeg">true</Parameter>
66+ </ModelParameters>
67+ <Engine>AccrualRepoEngine</Engine>
68+ <EngineParameters>
69+ <Parameter name="SensitivityTemplate">IR_Analytical</Parameter>
70+ </EngineParameters>
71+ </Product>
72+ \end{minted}
73+ \caption{Configuration for Product BondRepo, Model Accrual, Engine DiscountingBondRepoEngine}
74+ \label{lst:peconfig_BondRepo_Accrual_AccrualBondRepoEngine}
75+ \end{longlisting}
76+
877%--------------------------------------------------------
978\subsubsection{Product Type: BondTRS}
1079%--------------------------------------------------------
@@ -1104,6 +1173,41 @@ \subsubsection{Product Type: EquityAsianOptionGeometricStrike}
11041173\label{lst:peconfig_EquityAsianOptionGeometricStrike_ScriptedTrade_ScriptedTrade}
11051174\end{longlisting}
11061175
1176+ %--------------------------------------------------------
1177+ \subsubsection{Product Type: EquityEuropeanCompositeOption}
1178+ %--------------------------------------------------------
1179+
1180+ Used by trade type: EquityOption if a composite option is built
1181+
1182+ Available Model/Engine pairs: BlackScholes/AnalyticEuropeanEngine
1183+
1184+ Engine description:
1185+
1186+ BlackScholes/AnalyticEuropeanEngine builds a AnalyticEuropeanEngine (with a vol composed from the relevant equity and fx
1187+ vol surfaces). A sample configuration is shown in listing
1188+ \ref{lst:peconfig_EquityEuropeanCompositeOption_BlackScholes_AnalyticEuropeanEngine}
1189+
1190+ The parameters have the following meaning:
1191+
1192+ \begin{itemize}
1193+ \item SensitivityTemplate [optional]: the sensitivity template to use
1194+ \end{itemize}
1195+
1196+ \begin{longlisting}
1197+ \begin{minted}[fontsize=\footnotesize]{xml}
1198+ <Product type="EquityEuropeanCompositeOption">
1199+ <Model>BlackScholes</Model>
1200+ <ModelParameters/>
1201+ <Engine>AnalyticEuropeanEngine</Engine>
1202+ <EngineParameters>
1203+ <Parameter name="SensitivityTemplate">EQ_Analytical</Parameter>
1204+ </EngineParameters>
1205+ </Product>
1206+ \end{minted}
1207+ \caption{Configuration for Product EquityEuropeanCompositeOption, Model BlackScholes, Engine AnalyticEuropeanEngine}
1208+ \label{lst:peconfig_EquityEuropeanCompositeOption_BlackScholes_AnalyticEuropeanEngine}
1209+ \end{longlisting}
1210+
11071211%--------------------------------------------------------
11081212\subsubsection{Product Type: EquityFutureOption}
11091213%--------------------------------------------------------
@@ -1845,228 +1949,85 @@ \subsubsection{Product Type: FxDigitalBarrierOption}
18451949\label{lst:peconfig_FxDigitalBarrierOption_GarmanKohlhagen_FdBlackScholesBarrierEngine}
18461950\end{longlisting}
18471951
1848-
1849- % ===================== template ========================
1850-
18511952%--------------------------------------------------------
1852- \subsubsection{Product Type: }
1953+ \subsubsection{Product Type: FxForward }
18531954%--------------------------------------------------------
18541955
1855- Used by trade type:
1956+ Used by trade type: FxForward
18561957
18571958Available Model/Engine pairs:
18581959
1960+ \begin{itemize}
1961+ \item DiscountedCashflows/DiscountingFxForwardEngine
1962+ \item CrossAssetModel/AMC (for use in AMC simulations only)
1963+ \end{itemize}
1964+
18591965Engine description:
18601966
1861- builds a . A sample configuration is shown in listing \ref{lst:peconfig_}
1967+ DiscountedCashflows/DiscountingFxForwardEngine builds a DiscountingFxForwardEngine. A sample configuration is shown in
1968+ listing \ref{lst:peconfig_FxForward_DiscountedCashflows_DiscountingFxForwardEngine}.
18621969
18631970The parameters have the following meaning:
18641971
18651972\begin{itemize}
1866- \item
18671973\item SensitivityTemplate [optional]: the sensitivity template to use
18681974\end{itemize}
18691975
18701976\begin{longlisting}
18711977\begin{minted}[fontsize=\footnotesize]{xml}
1872-
1873- \end{minted}
1874- \caption{Configuration for Product , Model , Engine }
1875- \label{lst:peconfig_}
1876- \end{longlisting}
1877-
1878-
1879-
1880- The
1881- following is an overview over the Example section's {\tt pricingengine.xml}. Further below we discuss the Bermudan Swaption engine parametrisation in more detail.
1882-
1883- \begin{longlisting}
1884- %\hrule\medskip
1885- \begin{minted}[fontsize=\footnotesize]{xml}
1886- <PricingEngines>
1887- <Product type="Swap">
1888- <Model>DiscountedCashflows</Model>
1889- <ModelParameters/>
1890- <Engine>DiscountingSwapEngine</Engine>
1891- <EngineParameters/>
1892- </Product>
1893- <Product type="CrossCurrencySwap">
1894- <Model>DiscountedCashflows</Model>
1895- <ModelParameters/>
1896- <Engine>DiscountingCrossCurrencySwapEngine</Engine>
1897- <EngineParameters/>
1898- </Product>
1899- <Product type="FxForward">
1978+ <Product type="FxForward">
19001979 <Model>DiscountedCashflows</Model>
19011980 <ModelParameters/>
19021981 <Engine>DiscountingFxForwardEngine</Engine>
1903- <EngineParameters/>
1904- </Product>
1905- <Product type="FxOption">
1906- <Model>GarmanKohlhagen</Model>
1907- <ModelParameters/>
1908- <Engine>AnalyticEuropeanEngine</Engine>
1909- <EngineParameters/>
1910- </Product>
1911- <Product type="FxOptionAmerican">
1912- <Model>GarmanKohlhagen</Model>
1913- <ModelParameters/>
1914- <Engine>FdBlackScholesVanillaEngine</Engine>
1915- <EngineParameters>
1916- <Parameter name="Scheme">Douglas</Parameter>
1917- <Parameter name="TimeGridPerYear">100</Parameter>
1918- <Parameter name="XGrid">100</Parameter>
1919- <Parameter name="DampingSteps">0</Parameter>
1920- <!-- optional, prevents too small time grids for increased
1921- Greek precision when expiry is near, set to 1 if omitted -->
1922- <Parameter name="TimeGridMinimumSize">1</Parameter>
1923- </EngineParameters>
1924- </Product>
1925- <Product type="EuropeanSwaption">
1926- <Model>BlackBachelier</Model> <!-- depends on input vol -->
1927- <ModelParameters/>
1928- <Engine>BlackBachelierSwaptionEngine</Engine>
1929- <EngineParameters/>
1930- </Product>
1931- <Product type="Bond">
1932- <Model>DiscountedCashflows</Model>
1933- <ModelParameters/>
1934- <Engine>DiscountingRiskyBondEngine</Engine>
1935- <EngineParameters>
1936- <Parameter name="TimestepPeriod">6M</Parameter>
1937- </EngineParameters>
1938- </Product>
1939- <Product type="BermudanSwaption">
1940- <Model>LGM</Model>
1941- <ModelParameters>
1942- <Parameter name="Calibration">Bootstrap</Parameter>
1943- <Parameter name="BermudanStrategy">CoterminalATM</Parameter>
1944- <!-- ccy specific reversions -->
1945- <Parameter name="Reversion_EUR">0.03</Parameter>
1946- <Parameter name="Reversion_USD">0.04</Parameter>
1947- <!-- reversion to use if no ccy specific value is given -->
1948- <Parameter name="Reversion">0.02</Parameter>
1949- <Parameter name="ReversionType">HullWhite</Parameter>
1950- <Parameter name="Volatility">0.01</Parameter>
1951- <Parameter name="VolatilityType">Hagan</Parameter>
1952- <Parameter name="ShiftHorizon">0.5</Parameter>
1953- <Parameter name="Tolerance">0.0001</Parameter>
1954- </ModelParameters>
1955- <Engine>Grid</Engine>
1956- <EngineParameters>
1957- <Parameter name="sy">3.0</Parameter>
1958- <Parameter name="ny">10</Parameter>
1959- <Parameter name="sx">3.0</Parameter>
1960- <Parameter name="nx">10</Parameter>
1961- </EngineParameters>
1962- </Product>
1963- <Product type="CapFloor">
1964- <Model>IborCapModel</Model>
1965- <ModelParameters/>
1966- <Engine>IborCapEngine</Engine>
1967- <EngineParameters/>
1968- </Product>
1969- <Product type="CapFlooredIborLeg">
1970- <Model>BlackOrBachelier</Model>
1971- <ModelParameters/>
1972- <Engine>BlackIborCouponPricer</Engine>
1973- <EngineParameters>
1974- <!-- Black76 or BivariateLognormal -->
1975- <TimingAdjustment>Black76</TimingAdjustment>
1976- <!-- Correlation Parameter for BivariateLognormal -->
1977- <Correlation>1.0</Correlation>
1978- </EngineParameters>
1979- </Product>
1980- <Product type="EquityForward">
1981- <Model>DiscountedCashflows</Model>
1982- <ModelParameters/>
1983- <Engine>DiscountingEquityForwardEngine</Engine>
1984- <EngineParameters/>
1985- </Product>
1986- <Product type="EquityOption">
1987- <Model>BlackScholesMerton</Model>
1988- <ModelParameters/>
1989- <Engine>AnalyticEuropeanEngine</Engine>
1990- <EngineParameters/>
1991- </Product>
1992- <Product type="Bond">
1993- <Model>DiscountedCashflows</Model>
1994- <ModelParameters/>
1995- <Engine>DiscountingRiskyBondEngine</Engine>
19961982 <EngineParameters>
1997- <Parameter name="TimestepPeriod">6M</Parameter>
1998- </EngineParameters>
1999- </Product>
2000- <Product type="CreditDefaultSwap">
2001- <Model>DiscountedCashflows</Model>
2002- <ModelParameters/>
2003- <Engine>MidPointCdsEngine</Engine>
2004- <EngineParameters/>
2005- </Product>
2006- <Product type="CMS">
2007- <Model>Hagan</Model><!-- or LinearTSR -->
2008- <ModelParameters/>
2009- <Engine>Analytic</Engine> <!-- or Numerical -->
2010- <EngineParameters>
2011- <!-- Alternative Yield Curve Models: ExactYield, ParallelShifts, NonParallelShifts -->
2012- <Parameter name="YieldCurveModel">Standard</Parameter>
2013- <Parameter name="MeanReversion_EUR">0.01</Parameter>
2014- <Parameter name="MeanReversion_USD">0.02</Parameter>
2015- <Parameter name="MeanReversion">0.0</Parameter>
2016- </EngineParameters>
2017- </Product>
2018- <Product type="CMSSpread">
2019- <Model>BrigoMercurio</Model>
2020- <ModelParameters/>
2021- <Engine>Analytic</Engine>
2022- <EngineParameters>
2023- <Parameter name="IntegrationPoints">16</Parameter>
1983+ <Parameter name="SensitivityTemplate">FX_Analytical</Parameter>
20241984 </EngineParameters>
2025- </Product>
2026- <GlobalParameters>
2027- <Parameter name="ContinueOnCalibrationError">true</Parameter>
2028- <!-- typically not present in a user configuration, but used internally -->
2029- <Parameter name="Calibrate">true</Parameter>
2030- <Parameter name="GenerateAdditionalResults">true</Parameter>
2031- <Parameter name="RunType">NPV</Parameter>
2032- </GlobalParameters>
1985+ </Product>
20331986\end{minted}
2034- \caption{Pricing engine configuration }
2035- \label{lst:pricingengine_config }
1987+ \caption{Configuration for Product FxForward, Model DiscountedCashflows, Engine DiscountingFxForwardEngine }
1988+ \label{lst:peconfig_FxForward_DiscountedCashflows_DiscountingFxForwardEngine }
20361989\end{longlisting}
20371990
2038- These settings will be taken into account when the engine factory is asked to build the respective pricing engines and required models, and to calibrate the required model.
1991+ CrossAssetModel/AMC builds a McCamFxForwardEngine for use in AMC simulations. We refer to the AMC module documentation
1992+ for further details.
20391993
2040- \medskip
2041- For example, in case of the Bermudan Swaption, the parameters are interpreted as follows:
1994+ % ===================== template ========================
20421995
2043- \begin{itemize}
2044- \item The only model currently supported for Bermudan Swaption pricing is the LGM selected here.
1996+ %--------------------------------------------------------
1997+ \subsubsection{Product Type: }
1998+ %--------------------------------------------------------
20451999
2046- \item The first block of model parameters then provides initial values for the model (Reversion, Volatility) and chooses
2047- the parametrisation of the LGM model with ReversionType and VolatilityType choices {\em HullWhite} and {\em
2048- Hagan}. Notice the possibility to specify a currency-specific reversion. Calibration and BermudanStrategy can be set
2049- to {\em None} in order to skip model calibration. Alternatively, Calibration is set to {\em Bootstrap} and
2050- BermudanStrategy to {\em CoterminalATM} in order to calibrate to instrument-specific co-terminal ATM Swaptions,
2051- i.e. chosen to match the instruments first expiry and final maturity. If {\em CoterminalDealStrike} is chosen, the
2052- co-terminal swaptions will match the fixed rate of the deal (if the deal has changing fixed rates, the first rate is
2053- matched). Finally if the ShiftHorizon parameter is given, its value times the remaining maturity time of the deal is
2054- chosen as the horizon shift parameter for the LGM model. If not given, this parameter defaults to $0.5$.
2000+ Used by trade type:
2001+
2002+ Available Model/Engine pairs:
20552003
2056- \item The second block of engine parameters specifies the Numerical Swaption engine parameters which determine the
2057- number of standard deviations covered in the probability density integrals (sy and sx), and the number of grid points
2058- used per standard deviation (ny and nx).
2004+ Engine description:
2005+
2006+ builds a . A sample configuration is shown in listing \ref{lst:peconfig_}
2007+
2008+ The parameters have the following meaning:
2009+
2010+ \begin{itemize}
2011+ \item
2012+ \item SensitivityTemplate [optional]: the sensitivity template to use
20592013\end{itemize}
20602014
2061- To see the configuration options for the alternative CMS engines (Hagan Numerical, LinearTSR) or the Black Ibor coupon
2062- pricer (CapFlooredIborLeg), please refer to the commented parts in {\tt Examples/Input/pricingengine.xml}.
2015+ \begin{longlisting}
2016+ \begin{minted}[fontsize=\footnotesize]{xml}
2017+
2018+ \end{minted}
2019+ \caption{Configuration for Product , Model , Engine }
2020+ \label{lst:peconfig_}
2021+ \end{longlisting}
20632022
2064- \medskip
2065- This file is relevant in particular for structured products which are on the roadmap of future ORE releases. But it is also
2066- intended to allow the selection of optimised pricing engines for vanilla products such as Interest Rate Swaps.
20672023
2068- \medskip
2024+
2025+ %--------------------------------------------------------
2026+ \subsubsection{Global Parameters}
2027+ %--------------------------------------------------------
2028+
20692029In addition to product specific settings there is also a block with global parameters with the following meaning:
2030+
20702031\begin{itemize}
20712032\item ContinueOnCalibrationError: If set to true an exceedence of a prescribed model calibration tolerance (for e.g. the
20722033 LGM model) will not cause the trade building to fail, instead a warning is logged and the trade is processed
0 commit comments