Skip to content

Commit

Permalink
Merge branch 'master' into modernize-loop-convert
Browse files Browse the repository at this point in the history
  • Loading branch information
lballabio committed Feb 12, 2021
2 parents 848b6a0 + b6348dc commit 89405c7
Show file tree
Hide file tree
Showing 56 changed files with 321 additions and 182 deletions.
3 changes: 0 additions & 3 deletions Examples/BermudanSwaption/BermudanSwaption.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="BermudanSwaption.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/BermudanSwaption/BermudanSwaption.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/Bonds/Bonds.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="Bonds.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/Bonds/Bonds.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/CDS/CDS.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="CDS.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/CDS/CDS.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/CallableBonds/CallableBonds.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="CallableBonds.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/CallableBonds/CallableBonds.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/ConvertibleBonds/ConvertibleBonds.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="ConvertibleBonds.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/ConvertibleBonds/ConvertibleBonds.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/DiscreteHedging/DiscreteHedging.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="DiscreteHedging.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/DiscreteHedging/DiscreteHedging.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/EquityOption/EquityOption.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="EquityOption.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/EquityOption/EquityOption.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/FRA/FRA.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="FRA.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/FRA/FRA.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/FittedBondCurve/FittedBondCurve.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="FittedBondCurve.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/FittedBondCurve/FittedBondCurve.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/Gaussian1dModels/Gaussian1dModels.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="Gaussian1dModels.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
5 changes: 1 addition & 4 deletions Examples/Gaussian1dModels/Gaussian1dModels.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
</Project>
3 changes: 0 additions & 3 deletions Examples/GlobalOptimizer/GlobalOptimizer.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="GlobalOptimizer.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/GlobalOptimizer/GlobalOptimizer.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/MarketModels/MarketModels.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="MarketModels.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/MarketModels/MarketModels.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/Replication/Replication.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="Replication.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/Replication/Replication.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
3 changes: 0 additions & 3 deletions Examples/Repo/Repo.vcxproj
Expand Up @@ -541,9 +541,6 @@
<ItemGroup>
<ClCompile Include="Repo.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\QuantLib.vcxproj">
<Project>{ad0a27da-91da-46a2-acbd-296c419ed3aa}</Project>
Expand Down
3 changes: 0 additions & 3 deletions Examples/Repo/Repo.vcxproj.filters
Expand Up @@ -19,7 +19,4 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion LICENSE.TXT
Expand Up @@ -10,7 +10,7 @@ QuantLib is
Copyright (C) 2003 Kawanishi Tomoya
Copyright (C) 2003 Niels Elken Sønderby
Copyright (C) 2003, 2004 Roman Gitlin
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2014, 2015, 2016, 2017, 2018, 2019, 2020 StatPro Italia srl
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 StatPro Italia srl
Copyright (C) 2003, 2004, 2007 Neil Firth

Copyright (C) 2004 FIMAT Group
Expand Down
29 changes: 24 additions & 5 deletions ql/cashflows/overnightindexedcoupon.cpp
Expand Up @@ -22,6 +22,7 @@
*/

#include <ql/cashflows/couponpricer.hpp>
#include <ql/experimental/averageois/averageoiscouponpricer.hpp>
#include <ql/cashflows/overnightindexedcoupon.hpp>
#include <ql/termstructures/yieldtermstructure.hpp>
#include <ql/utilities/vectors.hpp>
Expand Down Expand Up @@ -124,7 +125,8 @@ namespace QuantLib {
const Date& refPeriodStart,
const Date& refPeriodEnd,
const DayCounter& dayCounter,
bool telescopicValueDates)
bool telescopicValueDates,
OvernightAveraging::Type averagingMethod)
: FloatingRateCoupon(paymentDate, nominal, startDate, endDate,
overnightIndex->fixingDays(), overnightIndex,
gearing, spread,
Expand Down Expand Up @@ -193,8 +195,18 @@ namespace QuantLib {
for (Size i=0; i<n_; ++i)
dt_[i] = dc.yearFraction(valueDates_[i], valueDates_[i+1]);

setPricer(ext::shared_ptr<FloatingRateCouponPricer>(new
OvernightIndexedCouponPricer));
switch (averagingMethod) {
case OvernightAveraging::Simple:
setPricer(ext::shared_ptr<FloatingRateCouponPricer>(
new ArithmeticAveragedOvernightIndexedCouponPricer(telescopicValueDates)));
break;
case OvernightAveraging::Compound:
setPricer(
ext::shared_ptr<FloatingRateCouponPricer>(new OvernightIndexedCouponPricer));
break;
default:
QL_FAIL("unknown compounding convention (" << Integer(averagingMethod) << ")");
}
}

const vector<Rate>& OvernightIndexedCoupon::indexFixings() const {
Expand All @@ -215,7 +227,8 @@ namespace QuantLib {

OvernightLeg::OvernightLeg(const Schedule& schedule, ext::shared_ptr<OvernightIndex> i)
: schedule_(schedule), overnightIndex_(std::move(i)), paymentCalendar_(schedule.calendar()),
paymentAdjustment_(Following), paymentLag_(0), telescopicValueDates_(false) {}
paymentAdjustment_(Following), paymentLag_(0), telescopicValueDates_(false),
averagingMethod_(OvernightAveraging::Compound) {}

OvernightLeg& OvernightLeg::withNotionals(Real notional) {
notionals_ = vector<Real>(1, notional);
Expand Down Expand Up @@ -273,6 +286,11 @@ namespace QuantLib {
return *this;
}

OvernightLeg& OvernightLeg::withAveragingMethod(OvernightAveraging::Type averagingMethod) {
averagingMethod_ = averagingMethod;
return *this;
}

OvernightLeg::operator Leg() const {

QL_REQUIRE(!notionals_.empty(), "no notional given");
Expand Down Expand Up @@ -308,7 +326,8 @@ namespace QuantLib {
detail::get(spreads_, i, 0.0),
refStart, refEnd,
paymentDayCounter_,
telescopicValueDates_)));
telescopicValueDates_,
averagingMethod_)));
}
return cashflows;
}
Expand Down

0 comments on commit 89405c7

Please sign in to comment.