25#ifndef quantext_average_ois_hpp
26#define quantext_average_ois_hpp
28#include <boost/make_shared.hpp>
30#include <ql/indexes/iborindex.hpp>
31#include <ql/instruments/swap.hpp>
32#include <ql/time/daycounter.hpp>
33#include <ql/time/schedule.hpp>
53 const DayCounter&
fixedDayCounter, BusinessDayConvention fixedPaymentAdjustment,
54 const Calendar& fixedPaymentCalendar,
const Schedule& onSchedule,
55 const QuantLib::ext::shared_ptr<OvernightIndex>&
overnightIndex, BusinessDayConvention onPaymentAdjustment,
58 const QuantLib::ext::shared_ptr<AverageONIndexedCouponPricer>& onCouponPricer =
59 QuantLib::ext::shared_ptr<AverageONIndexedCouponPricer>(),
60 const bool telescopicValueDates =
false);
66 const DayCounter&
fixedDayCounter, BusinessDayConvention fixedPaymentAdjustment,
67 const Calendar& fixedPaymentCalendar,
const Schedule& onSchedule,
68 const QuantLib::ext::shared_ptr<OvernightIndex>&
overnightIndex, BusinessDayConvention onPaymentAdjustment,
69 const Calendar& onPaymentCalendar, Natural
rateCutoff = 0,
70 std::vector<Spread>
onSpreads = std::vector<Spread>(1, 0.0),
72 const QuantLib::ext::shared_ptr<AverageONIndexedCouponPricer>& onCouponPricer =
73 QuantLib::ext::shared_ptr<AverageONIndexedCouponPricer>(),
74 const bool telescopicValueDates =
false);
95 const Leg&
fixedLeg()
const {
return legs_[0]; }
113 void initialize(
const Schedule& fixedLegSchedule,
const Schedule& onLegSchedule);
Pricer for average overnight indexed coupons.
Average overnight index swap.
QuantLib::ext::shared_ptr< OvernightIndex > overnightIndex_
bool telescopicValueDates_
Type
Receiver (Payer) means receive (pay) fixed.
DayCounter fixedDayCounter_
BusinessDayConvention fixedPaymentAdjustment_
const QuantLib::ext::shared_ptr< OvernightIndex > & overnightIndex()
const DayCounter & onDayCounter()
Spread fairSpread() const
BusinessDayConvention onPaymentAdjustment_
void initialize(const Schedule &fixedLegSchedule, const Schedule &onLegSchedule)
std::vector< Rate > fixedRates_
const Leg & overnightLeg() const
QuantLib::ext::shared_ptr< AverageONIndexedCouponPricer > onCouponPricer_
std::vector< Spread > onSpreads_
const std::vector< Real > & nominals() const
Calendar onPaymentCalendar_
const std::vector< Real > & onGearings() const
Calendar fixedPaymentCalendar_
const std::vector< Rate > & fixedRates() const
const Leg & fixedLeg() const
void setONIndexedCouponPricer(const QuantLib::ext::shared_ptr< AverageONIndexedCouponPricer > &onCouponPricer)
const DayCounter & fixedDayCounter()
Real overnightLegBPS() const
const std::vector< Spread > & onSpreads() const
Real overnightLegNPV() const
std::vector< Real > onGearings_
std::vector< Real > nominals_