25#ifndef quantext_cross_ccy_basis_swap_hpp
26#define quantext_cross_ccy_basis_swap_hpp
28#include <ql/indexes/iborindex.hpp>
29#include <ql/time/schedule.hpp>
55 boost::optional<bool> payIncludeSpread = boost::none, boost::optional<Period> payLookback = boost::none,
56 boost::optional<Size> payFixingDays = boost::none, boost::optional<Size> payRateCutoff = boost::none,
57 boost::optional<bool> payIsAveraged = boost::none, boost::optional<bool> recIncludeSpread = boost::none,
58 boost::optional<Period> recLookback = boost::none, boost::optional<Size> recFixingDays = boost::none,
59 boost::optional<Size> recRateCutoff = boost::none, boost::optional<bool> recIsAveraged = boost::none,
60 const bool telescopicValueDates =
false);
64 void setupArguments(PricingEngine::arguments* args)
const override;
65 void fetchResults(
const PricingEngine::results*)
const override;
88 QL_REQUIRE(
fairPaySpread_ != Null<Real>(),
"Fair pay spread is not available");
93 QL_REQUIRE(
fairRecSpread_ != Null<Real>(),
"Fair pay spread is not available");
153 void reset()
override;
void validate() const override
Cross currency basis swap.
boost::optional< QuantLib::Period > payLookback_
const Currency & recCurrency() const
QuantLib::ext::shared_ptr< IborIndex > payIndex_
const QuantLib::ext::shared_ptr< IborIndex > & recIndex() const
bool telescopicValueDates_
QuantLib::ext::shared_ptr< IborIndex > recIndex_
boost::optional< bool > payIsAveraged_
const Schedule & recSchedule() const
Spread fairRecSpread() const
boost::optional< Size > recRateCutoff_
boost::optional< bool > payIncludeSpread_
boost::optional< bool > recIsAveraged_
boost::optional< QuantLib::Size > payFixingDays_
boost::optional< QuantLib::Size > recFixingDays_
const Currency & payCurrency() const
const Schedule & paySchedule() const
void setupArguments(PricingEngine::arguments *args) const override
boost::optional< Size > payRateCutoff_
const QuantLib::ext::shared_ptr< IborIndex > & payIndex() const
void setupExpired() const override
void fetchResults(const PricingEngine::results *) const override
boost::optional< QuantLib::Period > recLookback_
Spread fairPaySpread() const
boost::optional< bool > recIncludeSpread_
Swap instrument with legs involving two currencies.