diff --git a/SWIG/daycounters.i b/SWIG/daycounters.i index 632714f1c..3e5d68b42 100644 --- a/SWIG/daycounters.i +++ b/SWIG/daycounters.i @@ -71,6 +71,7 @@ namespace QuantLib { public: Actual366(const bool includeLastDay = false); }; + class Actual365NoLeap : public DayCounter {}; class Actual36525 : public DayCounter { public: Actual36525(const bool includeLastDay = false); diff --git a/SWIG/indexes.i b/SWIG/indexes.i index a996107d0..2e6da5f4c 100644 --- a/SWIG/indexes.i +++ b/SWIG/indexes.i @@ -447,6 +447,7 @@ export_xibor_instance(Mosprime); export_xibor_instance(NZDLibor); export_xibor_instance(Pribor); export_xibor_instance(Robor); +export_xibor_instance(NOKNibor); export_xibor_instance(SEKLibor); export_xibor_instance(Shibor); export_xibor_instance(Tibor); diff --git a/SWIG/interpolation.i b/SWIG/interpolation.i index 615d8fc56..e536ce772 100644 --- a/SWIG/interpolation.i +++ b/SWIG/interpolation.i @@ -140,6 +140,18 @@ using QuantLib::Cubic; using QuantLib::Bicubic; using QuantLib::ConvexMonotone; using QuantLib::DefaultLogCubic; +using QuantLib::LinearThenFlat; +using QuantLib::Cubic__SplineOvershootingMinimization1; +using QuantLib::Cubic__SplineOvershootingMinimization2; +using QuantLib::Cubic__FritschButland_monotonic; +using QuantLib::Cubic__FritschButland_nonMonotonic; +using QuantLib::Cubic__Kruger; +using QuantLib::Cubic__MonotonicKruger; +using QuantLib::Cubic__MonotonicParabolic; +using QuantLib::Cubic__Monotonic_NaturalSpline; +using QuantLib::Cubic__NaturalSpline; +using QuantLib::Cubic__Akima; +using QuantLib::Cubic__Parabolic; class MonotonicCubic : public Cubic { public: @@ -267,6 +279,7 @@ struct MixedInterpolation { struct BackwardFlat {}; struct ForwardFlat {}; struct Linear {}; +struct LinearThenFlat {}; struct LogLinear {}; struct Cubic { #if !defined(SWIGJAVA) && !defined(SWIGCSHARP) @@ -311,6 +324,17 @@ struct ParabolicCubic : Cubic {}; struct MonotonicParabolicCubic : Cubic {}; struct LogParabolicCubic : LogCubic {}; struct MonotonicLogParabolicCubic : LogCubic {}; +struct Cubic__SplineOvershootingMinimization1{}; +struct Cubic__SplineOvershootingMinimization2{}; +struct Cubic__FritschButland_monotonic{}; +struct Cubic__FritschButland_nonMonotonic{}; +struct Cubic__Kruger {}; +struct Cubic__MonotonicKruger {}; +struct Cubic__MonotonicParabolic {}; +struct Cubic__Monotonic_NaturalSpline {}; +struct Cubic__NaturalSpline {}; +struct Cubic__Akima {}; +struct Cubic__Parabolic {}; %define make_mixed_linear_cubic(T) %{ diff --git a/SWIG/piecewiseyieldcurve.i b/SWIG/piecewiseyieldcurve.i index 755a4152e..b7b84dcff 100644 --- a/SWIG/piecewiseyieldcurve.i +++ b/SWIG/piecewiseyieldcurve.i @@ -31,6 +31,7 @@ using QuantLib::Discount; using QuantLib::ZeroYield; using QuantLib::ForwardRate; using QuantLib::PiecewiseYieldCurve; +using QuantLib::SimpleZeroYield; %} %{ @@ -178,6 +179,32 @@ export_piecewise_curve(PiecewiseMonotonicParabolicCubicZero,ZeroYield,MonotonicP export_piecewise_curve(PiecewiseLogParabolicCubicDiscount,Discount,LogParabolicCubic); export_piecewise_curve(PiecewiseMonotonicLogParabolicCubicDiscount,Discount,MonotonicLogParabolicCubic); +export_piecewise_curve(PiecewiseForwardRateBackward,ForwardRate,BackwardFlat); +export_piecewise_curve(PiecewiseForwardRateLinear,ForwardRate,Linear); +export_piecewise_curve(PiecewiseForwardRateCubic,ForwardRate,Cubic); + +export_piecewise_curve(PiecewiseZeroYieldBackward,ZeroYield,BackwardFlat); +export_piecewise_curve(PiecewiseZeroYieldForward,ZeroYield,ForwardFlat); +export_piecewise_curve(PiecewiseZeroYieldLinear,ZeroYield,Linear); +export_piecewise_curve(PiecewiseZeroYieldLinearThenFlat,ZeroYield,LinearThenFlat); +export_piecewise_curve(PiecewiseZeroYieldCubic,ZeroYield,Cubic); + +export_piecewise_curve(PiecewiseZeroYield_Cubic__SplineOvershootingMinimization2, ZeroYield,Cubic__SplineOvershootingMinimization2 ); +export_piecewise_curve(PiecewiseZeroYield_Cubic__FritschButland_monotonic, ZeroYield,Cubic__FritschButland_monotonic); +export_piecewise_curve(PiecewiseZeroYield_Cubic__Kruger, ZeroYield,Cubic__Kruger); +export_piecewise_curve(PiecewiseZeroYield_Cubic__MonotonicKruger, ZeroYield,Cubic__MonotonicKruger ); +export_piecewise_curve(PiecewiseZeroYield_Cubic__MonotonicParabolic, ZeroYield,Cubic__MonotonicParabolic ); +export_piecewise_curve(PiecewiseZeroYield_Cubic__Monotonic_NaturalSpline, ZeroYield,Cubic__Monotonic_NaturalSpline); +export_piecewise_curve(PiecewiseZeroYield_Cubic__NaturalSpline, ZeroYield,Cubic__NaturalSpline ); +export_piecewise_curve(PiecewiseZeroYield_Cubic__Parabolic, ZeroYield,Cubic__Parabolic ); +export_piecewise_curve(PiecewiseZeroYield_Cubic__SplineOvershootingMinimization1, ZeroYield,Cubic__SplineOvershootingMinimization1 ); + +export_piecewise_curve(PiecewiseDiscountLogLinear,Discount,LogLinear); +export_piecewise_curve(PiecewiseDiscountLinear,Discount,Linear); +export_piecewise_curve(PiecewiseDiscountCubic,Discount,Cubic); + +export_piecewise_curve(PiecewiseYieldSimpleZeroYieldCurveLinear,SimpleZeroYield,Linear); + // global boostrapper // hard-coded to linearly-interpolated, simply-compounded zero rates for now diff --git a/SWIG/ratehelpers.i b/SWIG/ratehelpers.i index 5b380fb18..972c42809 100644 --- a/SWIG/ratehelpers.i +++ b/SWIG/ratehelpers.i @@ -38,6 +38,7 @@ using QuantLib::DepositRateHelper; using QuantLib::FraRateHelper; using QuantLib::FuturesRateHelper; using QuantLib::SwapRateHelper; +using QuantLib::GenericRateHelper; using QuantLib::BondHelper; using QuantLib::FixedRateBondHelper; using QuantLib::OISRateHelper; @@ -50,6 +51,7 @@ using QuantLib::MtMCrossCurrencyBasisSwapRateHelper; using QuantLib::IborIborBasisSwapRateHelper; using QuantLib::OvernightIborBasisSwapRateHelper; using QuantLib::MultipleResetsSwapRateHelper; +using QuantLib::Compounding; %} %shared_ptr(RateHelper) @@ -341,6 +343,20 @@ class BondHelper : public RateHelper { ext::shared_ptr bond(); }; +%shared_ptr(GenericRateHelper) +class GenericRateHelper : public RateHelper { + public: + GenericRateHelper(const Handle& rate, + const Date& settlementDate, + const Date& refDate, + const DayCounter& dayCounter, + const Compounding& comp, + const Frequency& frequency, + const bool &extrapolate); + + Real impliedQuote() const; +}; + %shared_ptr(FixedRateBondHelper) class FixedRateBondHelper : public BondHelper { public: diff --git a/SWIG/zerocurve.i b/SWIG/zerocurve.i index 8ce8f9848..f5e0932d6 100644 --- a/SWIG/zerocurve.i +++ b/SWIG/zerocurve.i @@ -82,6 +82,10 @@ deprecate_feature(KrugerZeroCurve, CubicZeroCurve); #else %template(KrugerZeroCurve) InterpolatedZeroCurve; #endif +%shared_ptr(InterpolatedZeroCurve); +%shared_ptr(InterpolatedZeroCurve); +%template(ZeroCurveLinearThenFlat) InterpolatedZeroCurve; +%template(ZeroCurveForwardFlat) InterpolatedZeroCurve; %template(ParabolicCubicZeroCurve) InterpolatedZeroCurve; %template(MonotonicParabolicCubicZeroCurve) InterpolatedZeroCurve;