private int bmaCutoffDays = 0; // to be verified
// double gearing = 1.0, double spread = 0.0,
// Date refPeriodStart = Date(), Date refPeriodEnd = Date(), DayCounter dayCounter = DayCounter());
public AverageBMACoupon(double nominal, Date paymentDate, Date startDate, Date endDate, BMAIndex index,
double gearing, double spread, Date refPeriodStart, Date refPeriodEnd, DayCounter dayCounter)
: base(nominal, paymentDate, startDate, endDate, index.fixingDays(), index, gearing, spread,
refPeriodStart, refPeriodEnd, dayCounter, false) {
fixingSchedule_ = index.fixingSchedule(
index.fixingCalendar()
.advance(startDate, new Period(-index.fixingDays() + bmaCutoffDays, TimeUnit.Days),
BusinessDayConvention.Preceding), endDate);
setPricer(new AverageBMACouponPricer());
}