Logo
Reference manual - version orea_version
Public Member Functions | Protected Attributes | List of all members
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)
 base ccy and index to write to
 
virtual void calculate (const boost::shared_ptr< Trade > &trade, Size tradeIndex, const boost::shared_ptr< SimMarket > &simMarket, boost::shared_ptr< NPVCube > &outputCube, boost::shared_ptr< NPVCube > &outputCubeNettingSet, const Date &date, Size dateIndex, Size sample, bool isCloseOut=false) override
 
virtual void calculateT0 (const boost::shared_ptr< Trade > &trade, Size tradeIndex, const boost::shared_ptr< SimMarket > &simMarket, boost::shared_ptr< NPVCube > &outputCube, boost::shared_ptr< NPVCube > &outputCubeNettingSet) override
 
virtual Real npv (Size tradeIndex, const boost::shared_ptr< Trade > &trade, const boost::shared_ptr< SimMarket > &simMarket)
 
void init (const boost::shared_ptr< Portfolio > &portfolio, const boost::shared_ptr< SimMarket > &simMarket) override
 
void initScenario () override
 

Protected Attributes

std::string baseCcyCode_
 
Size index_
 
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