Changeset 163
- Timestamp:
- 05/13/08 16:29:05 (5 months ago)
- Files:
-
- trunk/QLNet/QLNet/Cashflows/CouponPricer.cs (modified) (1 diff)
- trunk/QLNet/QLNet/Termstructures/Yield/Ratehelpers.cs (modified) (1 diff)
- trunk/QLNet/Test2008/T_Piecewiseyieldcurve.cs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/QLNet/QLNet/Cashflows/CouponPricer.cs
r134 r163 161 161 } 162 162 163 private double adjustedFixing() { 163 protected double adjustedFixing() { return adjustedFixing(null); } 164 protected virtual double adjustedFixing(double? fixing_) { 164 165 165 166 double adjustement = 0.0; 166 167 double fixing = coupon_.indexFixing(); 167 double fixing = (fixing_ == null) ? coupon_.indexFixing() : fixing_.GetValueOrDefault(); 168 168 169 169 if (!coupon_.isInArrears()) { trunk/QLNet/QLNet/Termstructures/Yield/Ratehelpers.cs
r95 r163 517 517 BMAIndex clonedIndex = new BMAIndex(termStructureHandle_); 518 518 519 Schedule bmaSchedule = new MakeSchedule(earliestDate_, maturity, bmaPeriod_, calendar_,519 Schedule bmaSchedule = new MakeSchedule(earliestDate_, maturity, bmaPeriod_, bmaIndex_.fixingCalendar(), 520 520 bmaConvention_).backwards().value(); 521 521 trunk/QLNet/Test2008/T_Piecewiseyieldcurve.cs
r144 r163 438 438 // readjust settlement 439 439 vars.calendar = new JointCalendar(new BMAIndex().fixingCalendar(), 440 new USDLibor(new Period( 6, TimeUnit.Months)).fixingCalendar(),440 new USDLibor(new Period(3, TimeUnit.Months)).fixingCalendar(), 441 441 JointCalendar.JointCalendarRule.JoinHolidays); 442 442 vars.today = vars.calendar.adjust(Date.Today); … … 448 448 449 449 BMAIndex bmaIndex = new BMAIndex(); 450 IborIndex liborIndex = new USDLibor(new Period( 6, TimeUnit.Months),riskFreeCurve);450 IborIndex liborIndex = new USDLibor(new Period(3, TimeUnit.Months),riskFreeCurve); 451 451 for (int i=0; i<vars.bmas; ++i) { 452 452 Handle<Quote> f = new Handle<Quote>(vars.fractions[i]); 453 453 vars.bmaHelpers.Add(new BMASwapRateHelper(f, new Period(vars.bmaData[i].n, vars.bmaData[i].units), 454 454 vars.settlementDays, 455 bmaIndex.fixingCalendar(),455 vars.calendar, 456 456 new Period(vars.bmaFrequency), 457 457 vars.bmaConvention, … … 474 474 // check BMA swaps 475 475 BMAIndex bma = new BMAIndex(curveHandle); 476 IborIndex libor 6m = new USDLibor(new Period(6, TimeUnit.Months), riskFreeCurve);476 IborIndex libor3m = new USDLibor(new Period(3, TimeUnit.Months), riskFreeCurve); 477 477 for (int i=0; i<vars.bmas; i++) { 478 478 Period tenor = new Period(vars.bmaData[i].n, vars.bmaData[i].units); … … 485 485 Schedule liborSchedule = new MakeSchedule(vars.settlement, 486 486 vars.settlement+tenor, 487 libor 6m.tenor(),488 libor 6m.fixingCalendar(),489 libor 6m.businessDayConvention())490 .endOfMonth(libor 6m.endOfMonth())487 libor3m.tenor(), 488 libor3m.fixingCalendar(), 489 libor3m.businessDayConvention()) 490 .endOfMonth(libor3m.endOfMonth()) 491 491 .backwards().value(); 492 492 493 493 494 494 BMASwap swap = new BMASwap(BMASwap.Type.Payer, 100.0, liborSchedule, 0.75, 0.0, 495 libor 6m, libor6m.dayCounter(), bmaSchedule, bma, vars.bmaDayCounter);496 swap.setPricingEngine(new DiscountingSwapEngine(libor 6m.termStructure()));495 libor3m, libor3m.dayCounter(), bmaSchedule, bma, vars.bmaDayCounter); 496 swap.setPricingEngine(new DiscountingSwapEngine(libor3m.termStructure())); 497 497 498 498 double expectedFraction = vars.bmaData[i].rate / 100,