#include <orea/engine/valuationcalculator.hpp>
Public Member Functions | |
NPVCalculator (const std::string &baseCcyCode, Size index=0) | |
base ccy and index to write to | |
virtual 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 |
virtual 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_ |
std::vector< Handle< Quote > > | ccyQuotes_ |
std::vector< double > | fxRates_ |
std::vector< Size > | tradeCcyIndex_ |
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