File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -7210,9 +7210,6 @@ \subsubsection*{Trade Features}
72107210Some trade features are not yet supported by the multileg option engine:
72117211
72127212\begin{enumerate}
7213- \item legs with fx resetting feature
7214- \item legs with naked option = true
7215- \item coupon types are restricted to Ibor and CMS
72167213\item exercise flows (like a notional exchange common to cross currency swaptions) are not supported
72177214\end{enumerate}
72187215
@@ -7228,12 +7225,6 @@ \subsubsection*{State interpolation for exercise decisions}
72287225simulated path. Currently this is done using a simple linear interpolation while from a pure methodology point of view a
72297226Brownian Bridge would be preferable. In our tests we do not see a big impact of this approximation though.
72307227
7231- \subsubsection*{Missing recalibration of the MCMultiLegOptionEngine}
7232-
7233- The MC Multi Leg Option Engine builder uses the \verb+CrossAssetModelBuilder+ to set up the pricing model. This class
7234- does not implement the \verb+ModelBuidler+ interface meaning that the model is not recalibrated in a sensitivity
7235- analysis run. Therefore the sensitivities calculated by this engine are not valid.
7236-
72377228\subsubsection*{Basis Function Selection}
72387229
72397230Currently the basis function system is generated by specifying the type of the functions and the order, see
Original file line number Diff line number Diff line change @@ -74,7 +74,11 @@ void BondPosition::build(const boost::shared_ptr<ore::data::EngineFactory>& engi
7474
7575 maturity_ = Date::minDate ();
7676 for (auto const & u : data_.underlyings ()) {
77- bonds_.push_back (BondFactory::instance ().build (engineFactory, engineFactory->referenceData (), u.name ()));
77+ try {
78+ bonds_.push_back (BondFactory::instance ().build (engineFactory, engineFactory->referenceData (), u.name ()));
79+ } catch (const std::exception& e) {
80+ QL_FAIL (" Build failed for underlying " << u.type () << " (" << u.name () << " ): " << e.what ());
81+ }
7882 weights_.push_back (u.weight ());
7983 bidAskAdjustments_.push_back (u.bidAskAdjustment ());
8084 maturity_ = std::max (bonds_.back ().bond ->maturityDate (), maturity_);
You can’t perform that action at this time.
0 commit comments