Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv26032/qlo
Modified Files:
ratehelpers.cpp ratehelpers.hpp
Log Message:
Inverted meaning of include/exclude depo flag
If there are NOT Futures, force Depo include flag at true.
Index: ratehelpers.hpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/ratehelpers.hpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** ratehelpers.hpp 19 Dec 2006 14:35:21 -0000 1.9
--- ratehelpers.hpp 20 Dec 2006 09:33:16 -0000 1.10
***************
*** 79,83 ****
const long nFutures,
const long frontFuturesRollingDays,
! const bool depoIncludeFlag);
}
--- 79,83 ----
const long nFutures,
const long frontFuturesRollingDays,
! bool depoIncludeFlag);
}
Index: ratehelpers.cpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/ratehelpers.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** ratehelpers.cpp 19 Dec 2006 14:35:21 -0000 1.14
--- ratehelpers.cpp 20 Dec 2006 09:33:16 -0000 1.15
***************
*** 143,147 ****
const long nFutures,
const long frontFuturesRollingDays,
! const bool depoIncludeFlag)
{
// Checks
--- 143,147 ----
const long nFutures,
const long frontFuturesRollingDays,
! bool depoIncludeFlag)
{
// Checks
***************
*** 191,194 ****
--- 191,195 ----
QuantLib::Date evalDate = QuantLib::Settings::instance().evaluationDate();
std::vector<detail::RateHelperItem> rhs, rhsDepo;
+ long actualFrontFuturesRollingDays = 2+frontFuturesRollingDays;
// Look for the front Futures
QuantLib::Date frontFuturesEarliestDate;
***************
*** 197,201 ****
while (i<nInstruments) {
if (rhsAll[i].isFutures &&
! (rhsAll[i].earliestDate-2-frontFuturesRollingDays >= evalDate)) {
thereAreFutures = true;
frontFuturesEarliestDate = rhsAll[i].earliestDate;
--- 198,202 ----
while (i<nInstruments) {
if (rhsAll[i].isFutures &&
! (rhsAll[i].earliestDate-actualFrontFuturesRollingDays >= evalDate)) {
thereAreFutures = true;
frontFuturesEarliestDate = rhsAll[i].earliestDate;
***************
*** 204,207 ****
--- 205,210 ----
i++;
}
+ // If there are NOT Futures, force Depo include flag at true
+ if (!thereAreFutures) depoIncludeFlag = true;
// Start selection
bool depoAfterFrontFuturesAlreadyIncluded = false;
***************
*** 209,216 ****
if (rhsAll[i].includeFlag && rhsAll[i].earliestDate >= evalDate) {
if (rhsAll[i].isDepo) { // Check Depo conditions
! if (depoIncludeFlag) rhs.push_back(rhsAll[i]);
! if (!depoIncludeFlag && thereAreFutures) {
if (rhsAll[i].latestDate <= frontFuturesEarliestDate) {
! rhs.push_back(rhsAll[i]);
} else {
if (depoAfterFrontFuturesAlreadyIncluded == false) {
--- 212,220 ----
if (rhsAll[i].includeFlag && rhsAll[i].earliestDate >= evalDate) {
if (rhsAll[i].isDepo) { // Check Depo conditions
! if (!depoIncludeFlag) {
! rhs.push_back(rhsAll[i]); // Include all depos
! } else {
if (rhsAll[i].latestDate <= frontFuturesEarliestDate) {
! rhs.push_back(rhsAll[i]); // Stop depos just after the front Futures
} else {
if (depoAfterFrontFuturesAlreadyIncluded == false) {
***************
*** 222,226 ****
} else if (rhsAll[i].isFutures) { // Check Futures conditions
if (futuresCounter<nFutures &&
! (rhsAll[i].earliestDate-2-frontFuturesRollingDays >= evalDate)) {
futuresCounter++;
rhs.push_back(rhsAll[i]);
--- 226,230 ----
} else if (rhsAll[i].isFutures) { // Check Futures conditions
if (futuresCounter<nFutures &&
! (rhsAll[i].earliestDate-actualFrontFuturesRollingDays >= evalDate)) {
futuresCounter++;
rhs.push_back(rhsAll[i]);
|