Generalized_HullWhite::Generalized_HullWhite(const Handle<YieldTermStructure>& termStructure, std::vector<Date> dates, std::vector<Real> sigma, Real a, Real fxVol, Real fxCorr) : Vasicek(termStructure->forwardRate(0.0, 0.0, Continuous, NoFrequency), a, 0.0, sigma[0], 0.0), a0_(a), TermStructureConsistentModel(termStructure), fxVol_(fxVol), fxCorr_(fxCorr) { a_ = NullParameter(); b_ = NullParameter(); lambda_ = NullParameter(); DayCounter dc = termStructure->dayCounter(); //volperiods_.push_back(0.0); for (Size i=0; i<dates.size()-1; i++) volperiods_.push_back(dc.yearFraction(Settings::instance().evaluationDate(), dates[i])); sigma_ = PiecewiseConstantParameter(volperiods_, PositiveConstraint()); for (Size i=0; i< sigma_.size(); i++) sigma_.setParam(i, sigma[i]); generateArguments(); registerWith(termStructure); }
HullWhite::HullWhite(const Handle<YieldTermStructure>& termStructure, Real a, Real sigma) : Vasicek(termStructure->forwardRate(0.0, 0.0, Continuous, NoFrequency), a, 0.0, sigma, 0.0), TermStructureConsistentModel(termStructure) { b_ = NullParameter(); lambda_ = NullParameter(); generateArguments(); registerWith(termStructure); }