Logo
Reference manual - version qle_version
NettedCommodityCashFlow Class Reference

#include <qle/cashflows/nettedcommoditycashflow.hpp>

Inheritance diagram for NettedCommodityCashFlow:

Public Member Functions

 NettedCommodityCashFlow (const std::vector< QuantLib::ext::shared_ptr< CommodityCashFlow > > &underlyingCashflows, const std::vector< bool > &isPayer, QuantLib::Natural nettingPrecision=QuantLib::Null< QuantLib::Natural >())
Inspectors
const std::vector< QuantLib::ext::shared_ptr< CommodityCashFlow > > & underlyingCashflows () const
QuantLib::Natural nettingPrecision () const
CommodityCashFlow interface
const std::vector< std::pair< QuantLib::Date, QuantLib::ext::shared_ptr< CommodityIndex > > > & indices () const override
 Return a map of pricing date and corresponding commodity index.
QuantLib::Date lastPricingDate () const override
QuantLib::Real periodQuantity () const override
QuantLib::Real fixing () const override
CashFlow interface
QuantLib::Real amount () const override
Event interface
QuantLib::Date date () const override
Observer interface
void update () override
void deepUpdate () 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

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 that aggregates multiple commodity floating leg cashflows for netting.

This class takes a collection of commodity floating leg cashflows that have the same payment date and creates a single netted cashflow. The netting logic:

  1. Verifies all underlying cashflows have the same periodQuantity()
  2. Calculates sum of effective fixings: sum((isPayer ? -1 : 1) * cashflow->fixing())
  3. Rounds this sum to specified precision
  4. Multiplies rounded sum by common periodQuantity to get final amount

Constructor & Destructor Documentation

◆ NettedCommodityCashFlow()

NettedCommodityCashFlow ( const std::vector< QuantLib::ext::shared_ptr< CommodityCashFlow > > & underlyingCashflows,
const std::vector< bool > & isPayer,
QuantLib::Natural nettingPrecision = QuantLib::Null< QuantLib::Natural >() )

Constructor

Parameters
underlyingCashflowsVector of containing the underlying commodity cashflows
isPayertheir payer flags
nettingPrecisionNumber of decimal places to round the total average fixing to (Null<Natural>() means no rounding)

Member Function Documentation

◆ indices()

const std::vector< std::pair< QuantLib::Date, QuantLib::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.

◆ periodQuantity()

QuantLib::Real periodQuantity ( ) const
overridevirtual

Implements CommodityCashFlow.

◆ fixing()

QuantLib::Real fixing ( ) const
overridevirtual

Implements CommodityCashFlow.