@@ -1252,6 +1252,22 @@ void addInflationCurveCalibrationInfo(ore::data::Report& report, const std::stri
12521252 }
12531253}
12541254
1255+ void addCommodityCurveCalibrationInfo (ore::data::Report& report, const std::string& id,
1256+ boost::shared_ptr<CommodityCurveCalibrationInfo> const & info) {
1257+ if (info == nullptr )
1258+ return ;
1259+ addRowMktCalReport (report, " commodityCurve" , id, " calendar" , " " , " " , " " , info->calendar );
1260+ addRowMktCalReport (report, " commodityCurve" , id, " dayCounter" , " " , " " , " " , info->dayCounter );
1261+ addRowMktCalReport (report, " commodityCurve" , id, " currenct" , " " , " " , " " , info->currency );
1262+ addRowMktCalReport (report, " commodityCurve" , id, " interpolationMethod" , " " , " " , " " , info->interpolationMethod );
1263+
1264+ for (Size i = 0 ; i < info->pillarDates .size (); ++i){
1265+ auto date = to_string (info->pillarDates .at (i));
1266+ addRowMktCalReport (report, " commodityCurve" , id, " time" , date, " " , " " , info->times .at (i));
1267+ addRowMktCalReport (report, " commodityCurve" , id, " price" , date, " " , " " , info->futurePrices .at (i));
1268+ }
1269+ }
1270+
12551271void addFxEqVolCalibrationInfo (ore::data::Report& report, const std::string& type, const std::string& id,
12561272 boost::shared_ptr<FxEqVolCalibrationInfo> info) {
12571273 if (info == nullptr )
@@ -1404,6 +1420,12 @@ void ReportWriter::writeTodaysMarketCalibrationReport(
14041420 addInflationCurveCalibrationInfo (report, r.first , r.second );
14051421 }
14061422
1423+ // commodity curve results
1424+
1425+ for (auto const & r :calibrationInfo->commodityCurveCalibrationInfo ) {
1426+ addCommodityCurveCalibrationInfo (report, r.first , r.second );
1427+ }
1428+
14071429 // fx vol results
14081430 for (auto const & r : calibrationInfo->fxVolCalibrationInfo ) {
14091431 addFxEqVolCalibrationInfo (report, " fxVol" , r.first , r.second );
0 commit comments