35 const ext::shared_ptr<OvernightIndex>& overnightIndex,
40 bool telescopicValueDates,
56 const std::vector<Real>& nominals,
60 const ext::shared_ptr<OvernightIndex>& overnightIndex,
65 bool telescopicValueDates,
88 const ext::shared_ptr<OvernightIndex>& overnightIndex,
93 bool telescopicValueDates,
97 std::move(fixedSchedule),
101 std::move(overnightSchedule),
107 telescopicValueDates,
111 std::vector<Real> fixedNominals,
115 const std::vector<Real>& overnightNominals,
117 const ext::shared_ptr<OvernightIndex>& overnightIndex,
122 bool telescopicValueDates,
125 overnightNominals,
std::move(overnightSchedule), overnightIndex,
126 spread,
DayCounter(), ext::nullopt, paymentLag, paymentCalendar),
127 overnightIndex_(overnightIndex), averagingMethod_(averagingMethod) {
139 for (
const auto& c :
legs_[1])
145 Size n = floatingCoupons.size();
152 for (
Size i=0; i<
n; ++i) {
153 auto coupon = ext::dynamic_pointer_cast<OvernightIndexedCoupon>(floatingCoupons[i]);
bool empty() const
Returns whether or not the calendar is initialized.
Arguments for simple swap calculation
std::vector< Date > floatingResetDates
std::vector< Real > floatingNominals
std::vector< Spread > floatingSpreads
std::vector< Date > floatingFixingDates
std::vector< Real > floatingCoupons
std::vector< Time > floatingAccrualTimes
std::vector< Date > floatingPayDates
const Leg & floatingLeg() const
const Schedule & floatingSchedule() const
template class providing a null value for a given type.
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
Overnight indexed swap: fix vs compounded overnight rate.
ext::shared_ptr< OvernightIndex > overnightIndex_
void setupFloatingArguments(arguments *args) const override
OvernightIndexedSwap(Type type, Real nominal, const Schedule &schedule, Rate fixedRate, DayCounter fixedDC, const ext::shared_ptr< OvernightIndex > &overnightIndex, Spread spread=0.0, Integer paymentLag=0, BusinessDayConvention paymentAdjustment=Following, const Calendar &paymentCalendar=Calendar(), bool telescopicValueDates=false, RateAveraging::Type averagingMethod=RateAveraging::Compound)
const std::vector< Real > & overnightNominals() const
RateAveraging::Type averagingMethod_
helper class building a sequence of overnight coupons
OvernightLeg & withPaymentCalendar(const Calendar &)
OvernightLeg & withTelescopicValueDates(bool telescopicValueDates)
OvernightLeg & withPaymentAdjustment(BusinessDayConvention)
OvernightLeg & withNotionals(Real notional)
OvernightLeg & withAveragingMethod(RateAveraging::Type averagingMethod)
OvernightLeg & withSpreads(Spread spread)
OvernightLeg & withPaymentLag(Integer lag)
Coupon paying a fixed annual rate.
BusinessDayConvention
Business Day conventions.
QL_INTEGER Integer
integer number
Real Spread
spreads on interest rates
std::size_t Size
size of a container
std::vector< ext::shared_ptr< CashFlow > > Leg
Sequence of cash-flows.
coupon paying the compounded daily overnight rate
Overnight index swap paying compounded overnight vs. fixed.