public OvernightIndexedSwap(Type type, double fixedNominal, Schedule fixedSchedule, double fixedRate, DayCounter fixedDC, double overnightNominal, Schedule overnightSchedule, OvernightIndex overnightIndex, double spread) : base(2) { type_ = type; fixedNominal_ = fixedNominal; overnightNominal_ = overnightNominal; fixedPaymentFrequency_ = fixedSchedule.tenor().frequency(); overnightPaymentFrequency_ = overnightSchedule.tenor().frequency(); fixedRate_ = fixedRate; fixedDC_ = fixedDC; overnightIndex_ = overnightIndex; spread_ = spread; if (fixedDC_ == null) { fixedDC_ = overnightIndex_.dayCounter(); } legs_[0] = new FixedRateLeg(fixedSchedule) .withCouponRates(fixedRate_, fixedDC_) .withNotionals(fixedNominal_); legs_[1] = new OvernightLeg(overnightSchedule, overnightIndex_) .withNotionals(overnightNominal_) .withSpreads(spread_); for (int j = 0; j < 2; ++j) { for (int i = 0; i < legs_[j].Count; i++) { legs_[j][i].registerWith(update); } } switch (type_) { case Type.Payer: payer_[0] = -1.0; payer_[1] = +1.0; break; case Type.Receiver: payer_[0] = +1.0; payer_[1] = -1.0; break; default: Utils.QL_FAIL("Unknown overnight-swap type"); break; } }
public OvernightIndexedSwap(Type type, double nominal, Schedule schedule, double fixedRate, DayCounter fixedDC, OvernightIndex overnightIndex, double spread) : base(2) { type_= type; nominal_ = nominal; paymentFrequency_ = schedule.tenor().frequency(); fixedRate_ = fixedRate; fixedDC_ = fixedDC; overnightIndex_ = overnightIndex; spread_ = spread; if (fixedDC_== null) fixedDC_ = overnightIndex_.dayCounter(); legs_[0] = new FixedRateLeg(schedule) .withCouponRates(fixedRate_, fixedDC_) .withNotionals(nominal_); legs_[1] = new OvernightLeg(schedule, overnightIndex_) .withNotionals(nominal_) .withSpreads(spread_); for (int j = 0; j < 2; ++j) { for (int i = 0; i < legs_[j].Count; i++) legs_[j][i].registerWith(update); } switch (type_) { case Type.Payer: payer_[0] = -1.0; payer_[1] = +1.0; break; case Type.Receiver: payer_[0] = +1.0; payer_[1] = -1.0; break; default: throw new ApplicationException("Unknown overnight-swap type"); } }