24#ifndef quantext_cross_ccy_basis_mtmreset_swap_helper_hpp
25#define quantext_cross_ccy_basis_mtmreset_swap_helper_hpp
27#include <ql/termstructures/yield/ratehelpers.hpp>
56 const Handle<Quote>& spreadQuote,
const Handle<Quote>& spotFX, Natural settlementDays,
57 const Calendar& settlementCalendar,
const Period& swapTenor, BusinessDayConvention rollConvention,
58 const QuantLib::ext::shared_ptr<QuantLib::IborIndex>& foreignCcyIndex,
59 const QuantLib::ext::shared_ptr<QuantLib::IborIndex>& domesticCcyIndex,
60 const Handle<YieldTermStructure>& foreignCcyDiscountCurve,
61 const Handle<YieldTermStructure>& domesticCcyDiscountCurve,
62 const Handle<YieldTermStructure>& foreignCcyFxFwdRateCurve = Handle<YieldTermStructure>(),
63 const Handle<YieldTermStructure>& domesticCcyFxFwdRateCurve = Handle<YieldTermStructure>(),
bool eom =
false,
64 bool spreadOnForeignCcy =
true, boost::optional<QuantLib::Period> foreignTenor = boost::none,
65 boost::optional<QuantLib::Period> domesticTenor = boost::none, Size foreignPaymentLag = 0,
66 Size domesticPaymentLag = 0, boost::optional<bool> foreignIncludeSpread = boost::none,
67 boost::optional<Period> foreignLookback = boost::none, boost::optional<Size> foreignFixingDays = boost::none,
68 boost::optional<Size> foreignRateCutoff = boost::none, boost::optional<bool> foreignIsAveraged = boost::none,
69 boost::optional<bool> domesticIncludeSpread = boost::none,
70 boost::optional<Period> domesticLookback = boost::none, boost::optional<Size> domesticFixingDays = boost::none,
71 boost::optional<Size> domesticRateCutoff = boost::none, boost::optional<bool> domesticIsAveraged = boost::none,
72 const bool telescopicValueDates =
false);
80 QuantLib::ext::shared_ptr<CrossCcyBasisMtMResetSwap>
swap()
const {
return swap_; }
84 void accept(AcyclicVisitor&)
override;
121 QuantLib::ext::shared_ptr<CrossCcyBasisMtMResetSwap>
swap_;
Cross Ccy Basis MtM Reset Swap Rate Helper.
void setTermStructure(YieldTermStructure *) override
boost::optional< QuantLib::Period > foreignLookback_
bool telescopicValueDates_
RelinkableHandle< YieldTermStructure > foreignCcyFxFwdRateCurveRLH_
RelinkableHandle< YieldTermStructure > termStructureHandle_
RelinkableHandle< YieldTermStructure > domesticDiscountRLH_
QuantLib::ext::shared_ptr< QuantLib::IborIndex > domesticCcyIndex_
Handle< YieldTermStructure > domesticCcyDiscountCurve_
Currency domesticCurrency_
Currency foreignCurrency_
Handle< YieldTermStructure > domesticCcyFxFwdRateCurve_
boost::optional< QuantLib::Period > domesticLookback_
RelinkableHandle< YieldTermStructure > foreignDiscountRLH_
QuantLib::Period foreignTenor_
void accept(AcyclicVisitor &) override
boost::optional< bool > foreignIsAveraged_
QuantLib::ext::shared_ptr< CrossCcyBasisMtMResetSwap > swap_
Calendar settlementCalendar_
QuantLib::ext::shared_ptr< QuantLib::IborIndex > foreignCcyIndex_
RelinkableHandle< YieldTermStructure > domesticCcyFxFwdRateCurveRLH_
boost::optional< bool > domesticIncludeSpread_
QuantLib::Period domesticTenor_
void initializeDates() override
boost::optional< QuantLib::Size > domesticFixingDays_
Handle< YieldTermStructure > foreignCcyFxFwdRateCurve_
Real impliedQuote() const override
BusinessDayConvention rollConvention_
boost::optional< bool > foreignIncludeSpread_
boost::optional< bool > domesticIsAveraged_
boost::optional< QuantLib::Size > foreignFixingDays_
Handle< YieldTermStructure > foreignCcyDiscountCurve_
boost::optional< Size > foreignRateCutoff_
QuantLib::ext::shared_ptr< CrossCcyBasisMtMResetSwap > swap() const
boost::optional< Size > domesticRateCutoff_
Cross currency basis swap instrument with MTM reset.