Logo
Reference manual - version qle_version
Public Types | Public Member Functions | List of all members
CommodityIndexedCashFlow Class Reference

Cash flow dependent on a single commodity spot price or futures settlement price on a given pricing date. More...

#include <qle/cashflows/commodityindexedcashflow.hpp>

+ Inheritance diagram for CommodityIndexedCashFlow:

Public Types

enum class  PaymentTiming { InAdvance , InArrears , RelativeToExpiry }
 

Public Member Functions

 CommodityIndexedCashFlow (QuantLib::Real quantity, const QuantLib::Date &pricingDate, const QuantLib::Date &paymentDate, const ext::shared_ptr< CommodityIndex > &index, QuantLib::Real spread=0.0, QuantLib::Real gearing=1.0, bool useFuturePrice=false, const Date &contractDate=Date(), const ext::shared_ptr< FutureExpiryCalculator > &calc=nullptr, QuantLib::Natural dailyExpiryOffset=QuantLib::Null< QuantLib::Natural >(), const ext::shared_ptr< FxIndex > &fxIndex=nullptr)
 Constructor taking an explicit pricingDate and paymentDate.
 
 CommodityIndexedCashFlow (QuantLib::Real quantity, const QuantLib::Date &startDate, const QuantLib::Date &endDate, const ext::shared_ptr< CommodityIndex > &index, QuantLib::Natural paymentLag, const QuantLib::Calendar &paymentCalendar, QuantLib::BusinessDayConvention paymentConvention, QuantLib::Natural pricingLag, const QuantLib::Calendar &pricingLagCalendar, QuantLib::Real spread=0.0, QuantLib::Real gearing=1.0, PaymentTiming paymentTiming=PaymentTiming::InArrears, bool isInArrears=true, bool useFuturePrice=false, bool useFutureExpiryDate=true, QuantLib::Natural futureMonthOffset=0, const ext::shared_ptr< FutureExpiryCalculator > &calc=nullptr, const QuantLib::Date &paymentDateOverride=Date(), const QuantLib::Date &pricingDateOverride=Date(), QuantLib::Natural dailyExpiryOffset=QuantLib::Null< QuantLib::Natural >(), const ext::shared_ptr< FxIndex > &fxIndex=nullptr, const bool spotAveragingFrontCoupon=false, const QuantLib::Calendar &pricingCalendar=QuantLib::Calendar(), bool includeEndDate=true, bool excludeStartDate=true)
 
Inspectors
const QuantLib::Date & pricingDate () const
 
bool useFutureExpiryDate () const
 
QuantLib::Natural futureMonthOffset () const
 
QuantLib::Real periodQuantity () const override
 
QuantLib::Natural dailyExpiryOffset () const
 
CommodityCashFlow interface
const std::vector< std::pair< QuantLib::Date, ext::shared_ptr< CommodityIndex > > > & indices () const override
 Return a map of pricing date and corresponding commodity index.
 
const ext::shared_ptr< CommodityIndex > & spotIndex () const
 
const std::set< QuantLib::Date > & spotAveragingPricingDates () const
 
bool isAveragingFrontMonthCashflow (const QuantLib::Date &asof) const
 
QuantLib::Date lastPricingDate () const override
 
QuantLib::Real fixing () const override
 
Event interface
QuantLib::Date date () const override
 
CashFlow interface
QuantLib::Real amount () const override
 
- Public Member Functions inherited from CommodityCashFlow
 CommodityCashFlow (QuantLib::Real quantity, QuantLib::Real spread, QuantLib::Real gearing, bool useFuturePrice, const ext::shared_ptr< CommodityIndex > &index, const ext::shared_ptr< FxIndex > &fxIndex)
 
QuantLib::Real quantity () const
 
QuantLib::Real spread () const
 
QuantLib::Real gearing () const
 
bool useFuturePrice () const
 
ext::shared_ptr< CommodityIndexindex () const
 
ext::shared_ptr< FxIndexfxIndex () const
 
void accept (QuantLib::AcyclicVisitor &v) override
 

Visitability

void accept (QuantLib::AcyclicVisitor &v) override
 
void setPeriodQuantity (QuantLib::Real periodQuantity)
 Allow the full calculation period quantity to be updated.
 

Additional Inherited Members

- Protected Attributes inherited from CommodityCashFlow
QuantLib::Real quantity_
 
QuantLib::Real spread_
 
QuantLib::Real gearing_
 
bool useFuturePrice_
 
ext::shared_ptr< CommodityIndexindex_
 
ext::shared_ptr< FxIndexfxIndex_
 
QuantLib::Real amount_
 

Detailed Description

Cash flow dependent on a single commodity spot price or futures settlement price on a given pricing date.

Constructor & Destructor Documentation

◆ CommodityIndexedCashFlow()

CommodityIndexedCashFlow ( QuantLib::Real  quantity,
const QuantLib::Date &  startDate,
const QuantLib::Date &  endDate,
const ext::shared_ptr< CommodityIndex > &  index,
QuantLib::Natural  paymentLag,
const QuantLib::Calendar &  paymentCalendar,
QuantLib::BusinessDayConvention  paymentConvention,
QuantLib::Natural  pricingLag,
const QuantLib::Calendar &  pricingLagCalendar,
QuantLib::Real  spread = 0.0,
QuantLib::Real  gearing = 1.0,
PaymentTiming  paymentTiming = PaymentTiming::InArrears,
bool  isInArrears = true,
bool  useFuturePrice = false,
bool  useFutureExpiryDate = true,
QuantLib::Natural  futureMonthOffset = 0,
const ext::shared_ptr< FutureExpiryCalculator > &  calc = nullptr,
const QuantLib::Date &  paymentDateOverride = Date(),
const QuantLib::Date &  pricingDateOverride = Date(),
QuantLib::Natural  dailyExpiryOffset = QuantLib::Null< QuantLib::Natural >(),
const ext::shared_ptr< FxIndex > &  fxIndex = nullptr,
const bool  spotAveragingFrontCoupon = false,
const QuantLib::Calendar &  pricingCalendar = QuantLib::Calendar(),
bool  includeEndDate = true,
bool  excludeStartDate = true 
)

Constructor taking a period startDate, endDate and some conventions. The pricing date and payment date are derived from the start date and end date using the conventions.