@@ -2153,6 +2153,8 @@ void YieldCurve::addFutures(const std::size_t index, const QuantLib::ext::shared
21532153 {helper, " Short OI Future" , marketQuote->name (), marketQuote->quote ()->value (),
21542154 std::function<std::vector<TradeCashflowReportData>()>{[helper, index,
21552155 r = marketQuote->quote ()->value (), this ]() {
2156+ // Add notional cashflows for benchmarking purposes. These are not actual paid flows
2157+ // in real trades, but help with reconciliation in calibration reports.
21562158 Leg l{QuantLib::ext::make_shared<FixedRateCoupon>(
21572159 helper->future ()->maturityDate (), 1.0 , 1.0 - helper->impliedQuote () / 100.0 ,
21582160 helper->future ()->overnightIndex ()->dayCounter (), helper->future ()->valueDate (),
@@ -2204,6 +2206,8 @@ void YieldCurve::addFutures(const std::size_t index, const QuantLib::ext::shared
22042206 {helper, " Short MM Future" , marketQuote->name (), marketQuote->quote ()->value (),
22052207 std::function<std::vector<TradeCashflowReportData>()>{[helper, index,
22062208 r = marketQuote->quote ()->value (), this ]() {
2209+ // Add notional cashflows for benchmarking purposes. These are not actual paid flows
2210+ // in real trades, but help with reconciliation in calibration reports.
22072211 Leg l{QuantLib::ext::make_shared<FixedRateCoupon>(
22082212 helper->maturityDate (), 1.0 , 1.0 - helper->impliedQuote () / 100.0 , helper->dayCounter (),
22092213 helper->earliestDate (), helper->maturityDate ()),
@@ -2277,14 +2281,20 @@ void YieldCurve::addFras(const std::size_t index, const QuantLib::ext::shared_pt
22772281 r = marketQuote->quote ()->value (), this ]() {
22782282 QL_REQUIRE (!helper->iborCoupon ()->iborIndex ()->forwardingTermStructure ().empty (),
22792283 " YieldCurve::addFras(): ibor index has empty forwarding term structure" );
2284+ // Add notional cashflows for benchmarking purposes. These are not actual paid flows
2285+ // in real trades, but help with reconciliation in calibration reports.
22802286 return getCashflowReportData (
2281- {QuantLib::Leg{helper->iborCoupon ()},
2287+ {QuantLib::Leg{helper->iborCoupon (),
2288+ QuantLib::ext::make_shared<SimpleCashFlow>(1.0 , helper->iborCoupon ()->date ()),
2289+ QuantLib::ext::make_shared<SimpleCashFlow>(-1.0 , helper->iborCoupon ()->accrualStartDate ())},
22822290 QuantLib::Leg{
22832291 QuantLib::ext::make_shared<FixedRateCoupon>(
22842292 helper->iborCoupon ()->date (), 1.0 , r, helper->iborCoupon ()->dayCounter (),
22852293 helper->iborCoupon ()->accrualStartDate (), helper->iborCoupon ()->accrualEndDate (),
22862294 helper->iborCoupon ()->referencePeriodStart (),
22872295 helper->iborCoupon ()->referencePeriodEnd ()),
2296+ QuantLib::ext::make_shared<SimpleCashFlow>(1.0 , helper->iborCoupon ()->date ()),
2297+ QuantLib::ext::make_shared<SimpleCashFlow>(-1.0 , helper->iborCoupon ()->accrualStartDate ())
22882298 }},
22892299 {false , true }, {1.0E6 , 1.0E6 }, currency_[index].code (),
22902300 {currency_[index].code (), currency_[index].code ()}, asofDate_,
0 commit comments