Posted by
Peter Caspers-4 on
Nov 03, 2012; 6:09pm
URL: http://quantlib.414.s1.nabble.com/In-arrears-adjustment-tp9194.html
Hi,
I think the in arrears adjustment in couponpricer.cpp is computed
slightly wrong. Shouldn't it be like in the adjusted code below?
Thanks, Peter
ql/cashflows/couponpricer.cpp
// see Hull, 4th ed., page 550
QL_REQUIRE(!capletVolatility().empty(),
"missing optionlet volatility");
Date d1 = coupon_->fixingDate(),
+ d2 = coupon_->index()->valueDate(d1),
referenceDate = capletVolatility()->referenceDate();
if (d1 <= referenceDate) {
adjustement = 0.0;
} else {
- Date d2 = coupon_->index()->maturityDate(d1);
- Time tau =
coupon_->index()->dayCounter().yearFraction(d1, d2);
+ Date d3 = coupon_->index()->maturityDate(d2);
+ Time tau =
coupon_->index()->dayCounter().yearFraction(d2, d3);
Real variance = capletVolatility()->blackVariance(d1,
fixing);
adjustement = fixing*fixing*variance*tau/(1.0+fixing*tau);
}
------------------------------------------------------------------------------
LogMeIn Central: Instant, anywhere, Remote PC access and management.
Stay in control, update software, and manage PCs from one command center
Diagnose problems and improve visibility into emerging IT issues
Automate, monitor and manage. Do more in less time with Central
http://p.sf.net/sfu/logmein12331_d2d_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev