Date endDate = coupon.accrualEndDate().sub(cutoffDays);
Date d1 = new Date(startDate.serialNumber());
Date d2 = new Date(startDate.serialNumber());
QL.require(fixingDates.size() > 0, "fixing date list empty");
QL.require(index.valueDate(fixingDates.get(0)).le(startDate), "first fixing date valid after period start");
QL.require(index.valueDate(fixingDates.get((fixingDates.size()-1))).ge(startDate), "last fixing date valid before period end");
@Rate double avgBMA = 0.0;
int days = 0;