Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv12234/qlo
Modified Files:
ratehelpers.cpp ratehelpers.hpp
Log Message:
Futures convexity adjustment added
Index: ratehelpers.hpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/ratehelpers.hpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ratehelpers.hpp 15 Jun 2006 20:23:55 -0000 1.1
--- ratehelpers.hpp 18 Jun 2006 12:55:34 -0000 1.2
***************
*** 32,38 ****
public:
double setQuote(double quote);
! QuantLib::Handle<QuantLib::Quote> quoteHandle() const {
! return quoteHandle_;
! }
protected:
boost::shared_ptr<QuantLib::SimpleQuote> quote_;
--- 32,38 ----
public:
double setQuote(double quote);
! //QuantLib::Handle<QuantLib::Quote> quoteHandle() const {
! // return quoteHandle_;
! //}
protected:
boost::shared_ptr<QuantLib::SimpleQuote> quote_;
***************
*** 43,63 ****
public:
DepositRateHelper(
! const double "e,
const QuantLib::Period& p,
! const long &fixingDays,
const QuantLib::Calendar& calendar,
! const QuantLib::BusinessDayConvention &convention,
! const QuantLib::DayCounter &dayCounter);
};
class FuturesRateHelper : public RateHelper {
public:
FuturesRateHelper(
! const double &price,
! const std::string &immDateID,
! const QuantLib::Integer &months,
const QuantLib::Calendar& calendar,
! const QuantLib::BusinessDayConvention &bDayConvention,
! const QuantLib::DayCounter &dayCounter);
};
--- 43,68 ----
public:
DepositRateHelper(
! const double quote,
const QuantLib::Period& p,
! const long fixingDays,
const QuantLib::Calendar& calendar,
! const QuantLib::BusinessDayConvention& convention,
! const QuantLib::DayCounter& dayCounter);
};
class FuturesRateHelper : public RateHelper {
public:
+ QuantLib::Spread setConvexityAdjustment(QuantLib::Rate convAdj);
FuturesRateHelper(
! const double price,
! const std::string& immDateID,
! const QuantLib::Integer months,
const QuantLib::Calendar& calendar,
! const QuantLib::BusinessDayConvention& bDayConvention,
! const QuantLib::DayCounter& dayCounter,
! const QuantLib::Rate convAdj);
! protected:
! boost::shared_ptr<QuantLib::SimpleQuote> convAdj_;
! QuantLib::Handle<QuantLib::Quote> convAdjHandle_;
};
***************
*** 65,75 ****
public:
SwapRateHelper(
! const double "e,
const QuantLib::Period& p,
! const long &fixingDays,
const QuantLib::Calendar& calendar,
! const QuantLib::Frequency &fixedFrequency,
! const QuantLib::BusinessDayConvention &fixedConvention,
! const QuantLib::DayCounter &fixedDayCounter,
const boost::shared_ptr<QuantLib::Xibor>& index);
};
--- 70,80 ----
public:
SwapRateHelper(
! const double quote,
const QuantLib::Period& p,
! const long fixingDays,
const QuantLib::Calendar& calendar,
! const QuantLib::Frequency& fixedFrequency,
! const QuantLib::BusinessDayConvention& fixedConvention,
! const QuantLib::DayCounter& fixedDayCounter,
const boost::shared_ptr<QuantLib::Xibor>& index);
};
***************
*** 79,83 ****
const std::vector<bool>& includeFlag,
const std::vector<long>& priority,
! const long& nFutures);
}
--- 84,88 ----
const std::vector<bool>& includeFlag,
const std::vector<long>& priority,
! const long nFutures);
}
Index: ratehelpers.cpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/ratehelpers.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ratehelpers.cpp 15 Jun 2006 20:23:55 -0000 1.1
--- ratehelpers.cpp 18 Jun 2006 12:55:34 -0000 1.2
***************
*** 34,38 ****
namespace QuantLibAddin {
! double RateHelper::setQuote(double quote) {
double diff = quote - quote_->value();
quote_->setValue(quote);
--- 34,39 ----
namespace QuantLibAddin {
! double RateHelper::setQuote(double quote)
! {
double diff = quote - quote_->value();
quote_->setValue(quote);
***************
*** 41,51 ****
DepositRateHelper::DepositRateHelper(
! const double "e,
const QuantLib::Period& p,
! const long &fixingDays,
const QuantLib::Calendar& calendar,
! const QuantLib::BusinessDayConvention &convention,
! const QuantLib::DayCounter &dayCounter) {
!
quote_ = boost::shared_ptr<QuantLib::SimpleQuote>(
new QuantLib::SimpleQuote(quote));
--- 42,52 ----
DepositRateHelper::DepositRateHelper(
! const double quote,
const QuantLib::Period& p,
! const long fixingDays,
const QuantLib::Calendar& calendar,
! const QuantLib::BusinessDayConvention& convention,
! const QuantLib::DayCounter& dayCounter)
! {
quote_ = boost::shared_ptr<QuantLib::SimpleQuote>(
new QuantLib::SimpleQuote(quote));
***************
*** 61,75 ****
}
FuturesRateHelper::FuturesRateHelper(
! const double &price,
! const std::string &immDateID,
! const QuantLib::Integer &months,
const QuantLib::Calendar& calendar,
! const QuantLib::BusinessDayConvention &bDayConvention,
! const QuantLib::DayCounter &dayCounter) {
!
! quote_ = boost::shared_ptr<QuantLib::SimpleQuote>(new QuantLib::SimpleQuote(price));
quoteHandle_.linkTo(quote_);
QuantLib::Date expiry = QuantLib::Date::IMMdate(immDateID);
--- 62,89 ----
}
+ QuantLib::Spread FuturesRateHelper::setConvexityAdjustment(QuantLib::Rate convAdj)
+ {
+ QuantLib::Spread diff = convAdj - convAdj_->value();
+ convAdj_->setValue(convAdj);
+ return diff;
+ }
+
FuturesRateHelper::FuturesRateHelper(
! const double price,
! const std::string& immDateID,
! const QuantLib::Integer months,
const QuantLib::Calendar& calendar,
! const QuantLib::BusinessDayConvention& bDayConvention,
! const QuantLib::DayCounter& dayCounter,
! const QuantLib::Rate convAdj)
! {
! quote_ = boost::shared_ptr<QuantLib::SimpleQuote>(
! new QuantLib::SimpleQuote(price));
quoteHandle_.linkTo(quote_);
+ convAdj_ = boost::shared_ptr<QuantLib::SimpleQuote>(
+ new QuantLib::SimpleQuote(convAdj));
+ convAdjHandle_.linkTo(convAdj_);
+
QuantLib::Date expiry = QuantLib::Date::IMMdate(immDateID);
***************
*** 81,97 ****
calendar,
bDayConvention,
! dayCounter));
}
SwapRateHelper::SwapRateHelper(
! const double "e,
const QuantLib::Period& p,
! const long &fixingDays,
const QuantLib::Calendar& calendar,
! const QuantLib::Frequency &fixedFrequency,
! const QuantLib::BusinessDayConvention &fixedConvention,
! const QuantLib::DayCounter &fixedDayCounter,
! const boost::shared_ptr<QuantLib::Xibor>& index) {
!
quote_ = boost::shared_ptr<QuantLib::SimpleQuote>(new QuantLib::SimpleQuote(quote));
quoteHandle_.linkTo(quote_);
--- 95,112 ----
calendar,
bDayConvention,
! dayCounter,
! convAdjHandle_));
}
SwapRateHelper::SwapRateHelper(
! const double quote,
const QuantLib::Period& p,
! const long fixingDays,
const QuantLib::Calendar& calendar,
! const QuantLib::Frequency& fixedFrequency,
! const QuantLib::BusinessDayConvention& fixedConvention,
! const QuantLib::DayCounter& fixedDayCounter,
! const boost::shared_ptr<QuantLib::Xibor>& index)
! {
quote_ = boost::shared_ptr<QuantLib::SimpleQuote>(new QuantLib::SimpleQuote(quote));
quoteHandle_.linkTo(quote_);
***************
*** 150,155 ****
const std::vector<bool>& includeFlag,
const std::vector<long>& priority,
! const long& nFutures) {
!
QL_REQUIRE(!instrumentHandles.empty(), "no instrument given");
--- 165,170 ----
const std::vector<bool>& includeFlag,
const std::vector<long>& priority,
! const long nFutures)
! {
QL_REQUIRE(!instrumentHandles.empty(), "no instrument given");
|