Logo
Reference manual - version qle_version
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::Integer 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::Integer 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

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::Integer 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.

Member Function Documentation

◆ periodQuantity()

QuantLib::Real periodQuantity ( ) const
overridevirtual

Implements CommodityCashFlow.

◆ indices()

const std::vector< std::pair< QuantLib::Date, ext::shared_ptr< CommodityIndex > > > & indices ( ) const
overridevirtual

Return a map of pricing date and corresponding commodity index.

Implements CommodityCashFlow.

◆ lastPricingDate()

QuantLib::Date lastPricingDate ( ) const
overridevirtual

Implements CommodityCashFlow.

◆ fixing()

QuantLib::Real fixing ( ) const
overridevirtual

Implements CommodityCashFlow.