Assembla home | Assembla project page
 

Changeset 163

Show
Ignore:
Timestamp:
05/13/08 16:29:05 (5 months ago)
Author:
snovik
Message:

Fix: Fixings based on QL updates

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/QLNet/QLNet/Cashflows/CouponPricer.cs

    r134 r163  
    161161        } 
    162162 
    163         private double adjustedFixing() { 
     163        protected double adjustedFixing() { return adjustedFixing(null);  } 
     164        protected virtual double adjustedFixing(double? fixing_) { 
    164165 
    165166            double adjustement = 0.0; 
    166  
    167             double fixing = coupon_.indexFixing(); 
     167            double fixing = (fixing_ == null) ? coupon_.indexFixing() : fixing_.GetValueOrDefault(); 
    168168 
    169169            if (!coupon_.isInArrears()) { 
  • trunk/QLNet/QLNet/Termstructures/Yield/Ratehelpers.cs

    r95 r163  
    517517            BMAIndex clonedIndex = new BMAIndex(termStructureHandle_); 
    518518 
    519             Schedule bmaSchedule = new MakeSchedule(earliestDate_, maturity, bmaPeriod_, calendar_
     519            Schedule bmaSchedule = new MakeSchedule(earliestDate_, maturity, bmaPeriod_, bmaIndex_.fixingCalendar()
    520520                                                    bmaConvention_).backwards().value(); 
    521521 
  • trunk/QLNet/Test2008/T_Piecewiseyieldcurve.cs

    r144 r163  
    438438            // readjust settlement 
    439439            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(), 
    441441                                          JointCalendar.JointCalendarRule.JoinHolidays); 
    442442            vars.today = vars.calendar.adjust(Date.Today); 
     
    448448 
    449449            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); 
    451451            for (int i=0; i<vars.bmas; ++i) { 
    452452                Handle<Quote> f = new Handle<Quote>(vars.fractions[i]); 
    453453                vars.bmaHelpers.Add(new BMASwapRateHelper(f, new Period(vars.bmaData[i].n, vars.bmaData[i].units), 
    454454                                                vars.settlementDays, 
    455                                                 bmaIndex.fixingCalendar()
     455                                                vars.calendar
    456456                                                new Period(vars.bmaFrequency), 
    457457                                                vars.bmaConvention, 
     
    474474            // check BMA swaps 
    475475            BMAIndex bma = new BMAIndex(curveHandle); 
    476             IborIndex libor6m = new USDLibor(new Period(6, TimeUnit.Months), riskFreeCurve); 
     476            IborIndex libor3m = new USDLibor(new Period(3, TimeUnit.Months), riskFreeCurve); 
    477477            for (int i=0; i<vars.bmas; i++) { 
    478478                Period tenor = new Period(vars.bmaData[i].n, vars.bmaData[i].units); 
     
    485485                Schedule liborSchedule = new MakeSchedule(vars.settlement, 
    486486                                                      vars.settlement+tenor, 
    487                                                       libor6m.tenor(), 
    488                                                       libor6m.fixingCalendar(), 
    489                                                       libor6m.businessDayConvention()) 
    490                                         .endOfMonth(libor6m.endOfMonth()) 
     487                                                      libor3m.tenor(), 
     488                                                      libor3m.fixingCalendar(), 
     489                                                      libor3m.businessDayConvention()) 
     490                                        .endOfMonth(libor3m.endOfMonth()) 
    491491                                        .backwards().value(); 
    492492 
    493493 
    494494                BMASwap swap = new BMASwap(BMASwap.Type.Payer, 100.0, liborSchedule, 0.75, 0.0, 
    495                                            libor6m, libor6m.dayCounter(), bmaSchedule, bma, vars.bmaDayCounter); 
    496                 swap.setPricingEngine(new DiscountingSwapEngine(libor6m.termStructure())); 
     495                                           libor3m, libor3m.dayCounter(), bmaSchedule, bma, vars.bmaDayCounter); 
     496                swap.setPricingEngine(new DiscountingSwapEngine(libor3m.termStructure())); 
    497497 
    498498                double expectedFraction = vars.bmaData[i].rate / 100,