25#ifndef quantext_cross_ccy_swap_hpp
26#define quantext_cross_ccy_swap_hpp
28#include <ql/currency.hpp>
29#include <ql/instruments/swap.hpp>
48 CrossCcySwap(
const Leg& firstLeg,
const Currency& firstLegCcy,
const Leg& secondLeg,
const Currency& secondLegCcy);
50 CrossCcySwap(
const std::vector<Leg>& legs,
const std::vector<bool>& payer,
const std::vector<Currency>& currencies);
55 void fetchResults(
const PricingEngine::results*)
const override;
60 QL_REQUIRE(j < legs_.size(),
"leg# " << j <<
" doesn't exist!");
64 QL_REQUIRE(j < legs_.size(),
"leg# " << j <<
" doesn't exist!");
69 QL_REQUIRE(j < legs_.size(),
"leg #" << j <<
" doesn't exist!");
74 QL_REQUIRE(j < legs_.size(),
"leg #" << j <<
" doesn't exist!");
113 void reset()
override;
std::vector< Currency > currencies
void validate() const override
std::vector< DiscountFactor > npvDateDiscounts
std::vector< Real > inCcyLegNPV
std::vector< Real > inCcyLegBPS
std::vector< Real > inCcyLegNPV_
Real inCcyLegNPV(Size j) const
std::vector< DiscountFactor > npvDateDiscounts_
std::vector< Real > inCcyLegBPS_
void setupArguments(PricingEngine::arguments *args) const override
Real inCcyLegBPS(Size j) const
void setupExpired() const override
void fetchResults(const PricingEngine::results *) const override
DiscountFactor npvDateDiscounts(Size j) const
std::vector< Currency > currencies_
const Currency & legCurrency(Size j) const