Logo
Reference manual - version orea_version
NPVCalculator Class Reference

NPVCalculator. More...

#include <orea/engine/valuationcalculator.hpp>

Inheritance diagram for NPVCalculator:

Public Member Functions

 NPVCalculator (const std::string &baseCcyCode, Size index=0, bool laxFxConversion=false)
 base ccy and index to write to
void calculate (const QuantLib::ext::shared_ptr< Trade > &trade, Size tradeIndex, const QuantLib::ext::shared_ptr< SimMarket > &simMarket, QuantLib::ext::shared_ptr< NPVCube > &outputCube, QuantLib::ext::shared_ptr< NPVCube > &outputCubeNettingSet, const Date &date, Size dateIndex, Size sample, bool isCloseOut=false) override
void calculateT0 (const QuantLib::ext::shared_ptr< Trade > &trade, Size tradeIndex, const QuantLib::ext::shared_ptr< SimMarket > &simMarket, QuantLib::ext::shared_ptr< NPVCube > &outputCube, QuantLib::ext::shared_ptr< NPVCube > &outputCubeNettingSet) override
virtual Real npv (Size tradeIndex, const QuantLib::ext::shared_ptr< Trade > &trade, const QuantLib::ext::shared_ptr< SimMarket > &simMarket)
void init (const QuantLib::ext::shared_ptr< Portfolio > &portfolio, const QuantLib::ext::shared_ptr< SimMarket > &simMarket) override
void initScenario () override

Protected Attributes

std::string baseCcyCode_
Size index_
bool laxFxConversion_
std::vector< Handle< Quote > > ccyQuotes_
std::vector< double > fxRates_
std::vector< Size > tradeCcyIndex_

Detailed Description

NPVCalculator.

Calculate the NPV of the given trade, convert to base currency and divide by the numeraire If the NPV() call throws, we log an exception and write 0 to the cube

Member Function Documentation

◆ calculate()

void calculate ( const QuantLib::ext::shared_ptr< Trade > & trade,
Size tradeIndex,
const QuantLib::ext::shared_ptr< SimMarket > & simMarket,
QuantLib::ext::shared_ptr< NPVCube > & outputCube,
QuantLib::ext::shared_ptr< NPVCube > & outputCubeNettingSet,
const Date & date,
Size dateIndex,
Size sample,
bool isCloseOut = false )
overridevirtual

Implements ValuationCalculator.

◆ calculateT0()

void calculateT0 ( const QuantLib::ext::shared_ptr< Trade > & trade,
Size tradeIndex,
const QuantLib::ext::shared_ptr< SimMarket > & simMarket,
QuantLib::ext::shared_ptr< NPVCube > & outputCube,
QuantLib::ext::shared_ptr< NPVCube > & outputCubeNettingSet )
overridevirtual

Implements ValuationCalculator.

◆ init()

void init ( const QuantLib::ext::shared_ptr< Portfolio > & portfolio,
const QuantLib::ext::shared_ptr< SimMarket > & simMarket )
overridevirtual

Implements ValuationCalculator.

◆ initScenario()

void initScenario ( )
overridevirtual

Implements ValuationCalculator.