File tree Expand file tree Collapse file tree
OREData/ored/scripting/engines Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -59,7 +59,8 @@ Real ScriptedInstrumentPricingEngine::addMcErrorEstimate(const std::string& labe
5959 return Null<Real>();
6060 Real var = variance (boost::get<RandomVariable>(v)).at (0 );
6161 Real errEst = std::sqrt (var / static_cast <double >(model_->size ()));
62- results_.additionalResults [label] = errEst;
62+ if (!label.empty ())
63+ results_.additionalResults [label] = errEst;
6364 return errEst;
6465}
6566
@@ -170,9 +171,12 @@ void ScriptedInstrumentPricingEngine::calculate() const {
170171 QL_FAIL (" got empty result vector for result variable '"
171172 << r.first << " ' referencing script variable '" << r.second << " ', this is unexpected" );
172173 }
174+ std::vector<double > errEst;
173175 for (auto const & d : v->second ) {
174- addMcErrorEstimate (r. first + " _MCErrEst " , d);
176+ errEst. push_back ( addMcErrorEstimate (std::string () , d) );
175177 }
178+ if (!errEst.empty () && errEst.front () != Null<Real>())
179+ results_.additionalResults [r.first + " _MCErrEst" ] = errEst;
176180 resultSet = true ;
177181 }
178182 QL_REQUIRE (resultSet, " could not set additional result '" << r.first << " ' referencing script variable '"
You can’t perform that action at this time.
0 commit comments