Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
AMCValuationEngine Class Reference

AMC Valuation Engine. More...

#include <orea/engine/amcvaluationengine.hpp>

+ Inheritance diagram for AMCValuationEngine:
+ Collaboration diagram for AMCValuationEngine:

Public Member Functions

 AMCValuationEngine (const QuantLib::ext::shared_ptr< QuantExt::CrossAssetModel > &model, const QuantLib::ext::shared_ptr< ore::analytics::ScenarioGeneratorData > &scenarioGeneratorData, const QuantLib::ext::shared_ptr< ore::data::Market > &market, const std::vector< string > &aggDataIndices, const std::vector< string > &aggDataCurrencies, const Size aggDataNumberCreditStates)
 Constructor for single-threaded runs. More...
 
 AMCValuationEngine (const QuantLib::Size nThreads, const QuantLib::Date &today, const QuantLib::Size nSamples, const QuantLib::ext::shared_ptr< ore::data::Loader > &loader, const QuantLib::ext::shared_ptr< ScenarioGeneratorData > &scenarioGeneratorData, const std::vector< string > &aggDataIndices, const std::vector< string > &aggDataCurrencies, const Size aggDataNumberCreditStates, const QuantLib::ext::shared_ptr< CrossAssetModelData > &crossAssetModelData, const QuantLib::ext::shared_ptr< ore::data::EngineData > &engineData, const QuantLib::ext::shared_ptr< ore::data::CurveConfigurations > &curveConfigs, const QuantLib::ext::shared_ptr< ore::data::TodaysMarketParameters > &todaysMarketParams, const std::string &configurationLgmCalibration, const std::string &configurationFxCalibration, const std::string &configurationEqCalibration, const std::string &configurationInfCalibration, const std::string &configurationCrCalibration, const std::string &configurationFinalModel, const QuantLib::ext::shared_ptr< ore::data::ReferenceDataManager > &referenceData=nullptr, const ore::data::IborFallbackConfig &iborFallbackConfig=ore::data::IborFallbackConfig::defaultConfig(), const bool handlePseudoCurrenciesTodaysMarket=true, const std::function< QuantLib::ext::shared_ptr< ore::analytics::NPVCube >(const QuantLib::Date &, const std::set< std::string > &, const std::vector< QuantLib::Date > &, const QuantLib::Size)> &cubeFactory={}, const QuantLib::ext::shared_ptr< Scenario > &offSetScenario=nullptr, const QuantLib::ext::shared_ptr< ore::analytics::ScenarioSimMarketParameters > &simMarketParams=nullptr)
 Constructor for multi threaded runs. More...
 
void buildCube (const QuantLib::ext::shared_ptr< ore::data::Portfolio > &portfolio, QuantLib::ext::shared_ptr< ore::analytics::NPVCube > &outputCube)
 build cube in single threaded run More...
 
void buildCube (const QuantLib::ext::shared_ptr< ore::data::Portfolio > &portfolio)
 build cube in multi threaded run More...
 
std::vector< QuantLib::ext::shared_ptr< ore::analytics::NPVCube > > outputCubes () const
 
QuantLib::ext::shared_ptr< ore::analytics::AggregationScenarioData > & aggregationScenarioData ()
 Set aggregation data. More...
 
const QuantLib::ext::shared_ptr< ore::analytics::AggregationScenarioData > & aggregationScenarioData () const
 Get aggregation data. More...
 
- Public Member Functions inherited from ProgressReporter
 ProgressReporter ()
 
void registerProgressIndicator (const QuantLib::ext::shared_ptr< ProgressIndicator > &indicator)
 
void unregisterProgressIndicator (const QuantLib::ext::shared_ptr< ProgressIndicator > &indicator)
 
void unregisterAllProgressIndicators ()
 
void updateProgress (const unsigned long progress, const unsigned long total, const std::string &detail="")
 
void resetProgress ()
 
const std::set< QuantLib::ext::shared_ptr< ProgressIndicator > > & progressIndicators () const
 

Private Attributes

QuantLib::ext::shared_ptr< ore::analytics::AggregationScenarioDataasd_
 
bool useMultithreading_ = false
 
const std::vector< string > aggDataIndices_
 
const std::vector< string > aggDataCurrencies_
 
const Size aggDataNumberCreditStates_
 
QuantLib::ext::shared_ptr< ScenarioGeneratorDatascenarioGeneratorData_
 
const QuantLib::ext::shared_ptr< QuantExt::CrossAssetModelmodel_
 
const QuantLib::ext::shared_ptr< ore::data::Marketmarket_
 
QuantLib::Size nThreads_
 
QuantLib::Date today_
 
QuantLib::Size nSamples_
 
QuantLib::ext::shared_ptr< ore::data::Loaderloader_
 
QuantLib::ext::shared_ptr< CrossAssetModelDatacrossAssetModelData_
 
QuantLib::ext::shared_ptr< ore::data::EngineDataengineData_
 
QuantLib::ext::shared_ptr< ore::data::CurveConfigurationscurveConfigs_
 
QuantLib::ext::shared_ptr< ore::data::TodaysMarketParameterstodaysMarketParams_
 
std::string configurationLgmCalibration_
 
std::string configurationFxCalibration_
 
std::string configurationEqCalibration_
 
std::string configurationInfCalibration_
 
std::string configurationCrCalibration_
 
std::string configurationFinalModel_
 
QuantLib::ext::shared_ptr< ore::data::ReferenceDataManagerreferenceData_
 
ore::data::IborFallbackConfig iborFallbackConfig_
 
bool handlePseudoCurrenciesTodaysMarket_
 
std::function< QuantLib::ext::shared_ptr< ore::analytics::NPVCube >(const QuantLib::Date &, const std::set< std::string > &, const std::vector< QuantLib::Date > &, const QuantLib::Size)> cubeFactory_
 
QuantLib::ext::shared_ptr< ScenariooffsetScenario_
 
QuantLib::ext::shared_ptr< ore::analytics::ScenarioSimMarketParameterssimMarketParams_
 
std::vector< QuantLib::ext::shared_ptr< ore::analytics::NPVCube > > miniCubes_
 

Detailed Description

AMC Valuation Engine.

Definition at line 42 of file amcvaluationengine.hpp.

Constructor & Destructor Documentation

◆ AMCValuationEngine() [1/2]

AMCValuationEngine ( const QuantLib::ext::shared_ptr< QuantExt::CrossAssetModel > &  model,
const QuantLib::ext::shared_ptr< ore::analytics::ScenarioGeneratorData > &  scenarioGeneratorData,
const QuantLib::ext::shared_ptr< ore::data::Market > &  market,
const std::vector< string > &  aggDataIndices,
const std::vector< string > &  aggDataCurrencies,
const Size  aggDataNumberCreditStates 
)

Constructor for single-threaded runs.

◆ AMCValuationEngine() [2/2]

AMCValuationEngine ( const QuantLib::Size  nThreads,
const QuantLib::Date &  today,
const QuantLib::Size  nSamples,
const QuantLib::ext::shared_ptr< ore::data::Loader > &  loader,
const QuantLib::ext::shared_ptr< ScenarioGeneratorData > &  scenarioGeneratorData,
const std::vector< string > &  aggDataIndices,
const std::vector< string > &  aggDataCurrencies,
const Size  aggDataNumberCreditStates,
const QuantLib::ext::shared_ptr< CrossAssetModelData > &  crossAssetModelData,
const QuantLib::ext::shared_ptr< ore::data::EngineData > &  engineData,
const QuantLib::ext::shared_ptr< ore::data::CurveConfigurations > &  curveConfigs,
const QuantLib::ext::shared_ptr< ore::data::TodaysMarketParameters > &  todaysMarketParams,
const std::string &  configurationLgmCalibration,
const std::string &  configurationFxCalibration,
const std::string &  configurationEqCalibration,
const std::string &  configurationInfCalibration,
const std::string &  configurationCrCalibration,
const std::string &  configurationFinalModel,
const QuantLib::ext::shared_ptr< ore::data::ReferenceDataManager > &  referenceData = nullptr,
const ore::data::IborFallbackConfig iborFallbackConfig = ore::data::IborFallbackConfig::defaultConfig(),
const bool  handlePseudoCurrenciesTodaysMarket = true,
const std::function< QuantLib::ext::shared_ptr< ore::analytics::NPVCube >(const QuantLib::Date &, const std::set< std::string > &, const std::vector< QuantLib::Date > &, const QuantLib::Size)> &  cubeFactory = {},
const QuantLib::ext::shared_ptr< Scenario > &  offSetScenario = nullptr,
const QuantLib::ext::shared_ptr< ore::analytics::ScenarioSimMarketParameters > &  simMarketParams = nullptr 
)

Constructor for multi threaded runs.

Definition at line 604 of file amcvaluationengine.cpp.

623 : useMultithreading_(true), aggDataIndices_(aggDataIndices), aggDataCurrencies_(aggDataCurrencies),
624 aggDataNumberCreditStates_(aggDataNumberCreditStates), scenarioGeneratorData_(scenarioGeneratorData),
625 nThreads_(nThreads), today_(today), nSamples_(nSamples), loader_(loader),
626 crossAssetModelData_(crossAssetModelData), engineData_(engineData), curveConfigs_(curveConfigs),
627 todaysMarketParams_(todaysMarketParams), configurationLgmCalibration_(configurationLgmCalibration),
628 configurationFxCalibration_(configurationFxCalibration), configurationEqCalibration_(configurationEqCalibration),
629 configurationInfCalibration_(configurationInfCalibration),
630 configurationCrCalibration_(configurationCrCalibration), configurationFinalModel_(configurationFinalModel),
631 referenceData_(referenceData), iborFallbackConfig_(iborFallbackConfig),
632 handlePseudoCurrenciesTodaysMarket_(handlePseudoCurrenciesTodaysMarket), cubeFactory_(cubeFactory),
633 offsetScenario_(offSetScenario), simMarketParams_(simMarketParams) {
634#ifndef QL_ENABLE_SESSIONS
635 QL_FAIL(
636 "AMCValuationEngine requires a build with QL_ENABLE_SESSIONS = ON when ctor multi-threaded runs is called.");
637#endif
638 QL_REQUIRE(scenarioGeneratorData_->seed() != 0,
639 "AMCValuationEngine: path generation uses seed 0 - this might lead to inconsistent results to a classic "
640 "simulation run, if both are combined. Consider using a non-zero seed.");
641 if (!cubeFactory_)
642 cubeFactory_ = [](const QuantLib::Date& asof, const std::set<std::string>& ids,
643 const std::vector<QuantLib::Date>& dates, const Size samples) {
644 return QuantLib::ext::make_shared<ore::analytics::DoublePrecisionInMemoryCube>(asof, ids, dates, samples);
645 };
646}
QuantLib::ext::shared_ptr< ore::data::CurveConfigurations > curveConfigs_
QuantLib::ext::shared_ptr< ore::data::TodaysMarketParameters > todaysMarketParams_
QuantLib::ext::shared_ptr< ore::analytics::ScenarioSimMarketParameters > simMarketParams_
QuantLib::ext::shared_ptr< ScenarioGeneratorData > scenarioGeneratorData_
QuantLib::ext::shared_ptr< ore::data::ReferenceDataManager > referenceData_
QuantLib::ext::shared_ptr< Scenario > offsetScenario_
ore::data::IborFallbackConfig iborFallbackConfig_
QuantLib::ext::shared_ptr< CrossAssetModelData > crossAssetModelData_
const std::vector< string > aggDataCurrencies_
QuantLib::ext::shared_ptr< ore::data::Loader > loader_
const std::vector< string > aggDataIndices_
std::function< QuantLib::ext::shared_ptr< ore::analytics::NPVCube >(const QuantLib::Date &, const std::set< std::string > &, const std::vector< QuantLib::Date > &, const QuantLib::Size)> cubeFactory_
QuantLib::ext::shared_ptr< ore::data::EngineData > engineData_
Date asof(14, Jun, 2018)
+ Here is the call graph for this function:

Member Function Documentation

◆ buildCube() [1/2]

void buildCube ( const QuantLib::ext::shared_ptr< ore::data::Portfolio > &  portfolio,
QuantLib::ext::shared_ptr< ore::analytics::NPVCube > &  outputCube 
)

build cube in single threaded run

+ Here is the caller graph for this function:

◆ buildCube() [2/2]

void buildCube ( const QuantLib::ext::shared_ptr< ore::data::Portfolio > &  portfolio)

build cube in multi threaded run

Definition at line 704 of file amcvaluationengine.cpp.

704 {
705 LOG("Starting multi-threaded AMCValuationEngine for "
706 << portfolio->size() << " trades, " << nSamples_ << " samples and " << scenarioGeneratorData_->getGrid()->size()
707 << " dates.");
708
709 QL_REQUIRE(useMultithreading_, "AMCValuationEngine::buildCube() method was called with signature for "
710 "multi-threaded run, but engine was constructed for single-threaded runs");
711
712 QL_REQUIRE(portfolio->size() > 0, "AMCValuationEngine::buildCube: empty portfolio");
713
714 // split portfolio into nThreads parts (just distribute the trades assuming all are approximately expensive)
715
716 LOG("Splitting portfolio.");
717
718 Size eff_nThreads = std::min(portfolio->size(), nThreads_);
719
720 LOG("portfolio size = " << portfolio->size());
721 LOG("nThreads = " << nThreads_);
722 LOG("eff nThreads = " << eff_nThreads);
723
724 QL_REQUIRE(eff_nThreads > 0, "effective threads are zero, this is not allowed.");
725
726 std::vector<QuantLib::ext::shared_ptr<ore::data::Portfolio>> portfolios;
727 for (Size i = 0; i < eff_nThreads; ++i)
728 portfolios.push_back(QuantLib::ext::make_shared<ore::data::Portfolio>());
729
730 Size portfolioIndex = 0;
731 for (auto const& t : portfolio->trades()) {
732 portfolios[portfolioIndex]->add(t.second);
733 if (++portfolioIndex >= eff_nThreads)
734 portfolioIndex = 0;
735 }
736
737 // output the portfolios into strings so that the worker threads can load them from there
738
739 std::vector<std::string> portfoliosAsString;
740 for (auto const& p : portfolios) {
741 portfoliosAsString.emplace_back(p->toXMLString());
742 }
743
744 // log info on the portfolio split
745
746 for (Size i = 0; i < eff_nThreads; ++i) {
747 LOG("Portfolio #" << i << " number of trades : " << portfolios[i]->size());
748 }
749
750 // build loaders for each thread as clones of the original one
751
752 LOG("Cloning loaders for " << eff_nThreads << " threads...");
753 std::vector<QuantLib::ext::shared_ptr<ore::data::ClonedLoader>> loaders;
754 for (Size i = 0; i < eff_nThreads; ++i)
755 loaders.push_back(QuantLib::ext::make_shared<ore::data::ClonedLoader>(today_, loader_));
756
757 // build nThreads mini-cubes to which each thread writes its results
758
759 LOG("Build " << eff_nThreads << " mini result cubes...");
760 miniCubes_.clear();
761 for (Size i = 0; i < eff_nThreads; ++i) {
762 miniCubes_.push_back(
763 cubeFactory_(today_, portfolios[i]->ids(), scenarioGeneratorData_->getGrid()->valuationDates(), nSamples_));
764 }
765
766 // precompute sim dates
767
768 std::vector<Date> simDates =
769 scenarioGeneratorData_->withCloseOutLag() && !scenarioGeneratorData_->withMporStickyDate()
770 ? scenarioGeneratorData_->getGrid()->dates()
771 : scenarioGeneratorData_->getGrid()->valuationDates();
772
773 // build progress indicator consolidating the results from the threads
774
775 auto progressIndicator =
776 QuantLib::ext::make_shared<ore::analytics::MultiThreadedProgressIndicator>(this->progressIndicators());
777
778 // create the thread pool with eff_nThreads and queue size = eff_nThreads as well
779
780 // LOG("Create thread pool with " << eff_nThreads);
781 // ctpl::thread_pool threadPool(eff_nThreads);
782
783 // create the jobs and push them to the pool
784
785 using resultType = int;
786 std::vector<std::future<resultType>> results(eff_nThreads);
787
788 std::vector<std::thread> jobs; // not needed if thread pool is used
789
790 // get obs mode of main thread, so that we can set this mode in the worker threads below
791
792 ore::analytics::ObservationMode::Mode obsMode = ore::analytics::ObservationMode::instance().mode();
793
794 for (Size i = 0; i < eff_nThreads; ++i) {
795
796 auto job = [this, obsMode, &portfoliosAsString, &loaders, &simDates, &progressIndicator](int id) -> resultType {
797 // set thread local singletons
798
799 QuantLib::Settings::instance().evaluationDate() = today_;
800 ore::analytics::ObservationMode::instance().setMode(obsMode);
801
802 LOG("Start thread " << id);
803
804 int rc;
805
806 try {
807
808 // build todays market using cloned market data
809
810 QuantLib::ext::shared_ptr<ore::data::Market> initMarket = QuantLib::ext::make_shared<ore::data::TodaysMarket>(
811 today_, todaysMarketParams_, loaders[id], curveConfigs_, true, true, true, referenceData_, false,
813
814 QuantLib::ext::shared_ptr<ore::data::Market> market = initMarket;
815
816 if(offsetScenario_ != nullptr){
817 QL_REQUIRE(simMarketParams_ != nullptr,
818 "AMC Valuation Engine can not build simMarket without simMarketParam");
819 bool continueOnError = true;
820 std::string configuration = configurationFinalModel_;
821 market = QuantLib::ext::make_shared<ScenarioSimMarket>(
822 initMarket, simMarketParams_, QuantLib::ext::make_shared<FixingManager>(today_), configuration,
823 *curveConfigs_, *todaysMarketParams_, continueOnError, true, true, false, iborFallbackConfig_,
824 false, offsetScenario_);
825 }
826
827 // build cam
831 configurationFinalModel_, false, true, "", SalvagingAlgorithm::None, "xva/amc cam building");
832
833 auto cam = *modelBuilder.model();
834
835 // build portfolio against init market
836
837 auto portfolio = QuantLib::ext::make_shared<ore::data::Portfolio>();
838 portfolio->fromXMLString(portfoliosAsString[id]);
839
840 QuantLib::ext::shared_ptr<EngineData> edCopy = QuantLib::ext::make_shared<EngineData>(*engineData_);
841 edCopy->globalParameters()["GenerateAdditionalResults"] = "false";
842 edCopy->globalParameters()["RunType"] = "NPV";
843 map<MarketContext, string> configurations{{MarketContext::irCalibration, configurationLgmCalibration_},
844 {MarketContext::fxCalibration, configurationFxCalibration_},
845 {MarketContext::pricing, configurationFinalModel_}};
846
847 auto engineFactory = QuantLib::ext::make_shared<EngineFactory>(
848 edCopy, market, configurations, referenceData_, iborFallbackConfig_,
849 EngineBuilderFactory::instance().generateAmcEngineBuilders(cam, simDates), true);
850
851 portfolio->build(engineFactory, "amc-val-engine", true);
852
853 // run core engine code (asd is written for thread id 0 only)
854
855 runCoreEngine(portfolio, cam, market, scenarioGeneratorData_, aggDataIndices_, aggDataCurrencies_,
856 aggDataNumberCreditStates_, id == 0 ? asd_ : nullptr, miniCubes_[id], progressIndicator);
857
858 // return code 0 = ok
859
860 LOG("Thread " << id << " successfully finished.");
861
862 rc = 0;
863
864 } catch (const std::exception& e) {
865
866 // log error and return code 1 = not ok
867
868 ore::analytics::StructuredAnalyticsErrorMessage("AMC Valuation Engine (multithreaded mode)", "",
869 e.what())
870 .log();
871 rc = 1;
872 }
873
874 // exit
875
876 return rc;
877 };
878
879 // results[i] = threadPool.push(job);
880
881 // not needed if thread pool is used
882 std::packaged_task<resultType(int)> task(job);
883 results[i] = task.get_future();
884 std::thread thread(std::move(task), i);
885 jobs.emplace_back(std::move(thread));
886 }
887
888 // not needed if thread pool is used
889 for (auto& t : jobs)
890 t.join();
891
892 for (Size i = 0; i < results.size(); ++i) {
893 results[i].wait();
894 }
895
896 for (Size i = 0; i < results.size(); ++i) {
897 QL_REQUIRE(results[i].valid(), "internal error: did not get a valid result");
898 int rc = results[i].get();
899 QL_REQUIRE(rc == 0, "error: thread " << i << " exited with return code " << rc
900 << ". Check for structured errors from 'AMCValuationEngine'.");
901 }
902
903 // stop the thread pool, wait for unfinished jobs
904
905 // LOG("Stop thread pool");
906 // threadPool.stop(true);
907
908 LOG("Finished multi-threaded AMCValuationEngine run.");
909}
std::vector< QuantLib::ext::shared_ptr< ore::analytics::NPVCube > > miniCubes_
QuantLib::ext::shared_ptr< ore::analytics::AggregationScenarioData > asd_
const std::set< QuantLib::ext::shared_ptr< ProgressIndicator > > & progressIndicators() const
#define LOG(text)
Size size(const ValueType &v)
+ Here is the call graph for this function:

◆ outputCubes()

std::vector< QuantLib::ext::shared_ptr< ore::analytics::NPVCube > > outputCubes ( ) const

Definition at line 80 of file amcvaluationengine.hpp.

80{ return miniCubes_; }
+ Here is the caller graph for this function:

◆ aggregationScenarioData() [1/2]

QuantLib::ext::shared_ptr< ore::analytics::AggregationScenarioData > & aggregationScenarioData ( )

Set aggregation data.

Definition at line 83 of file amcvaluationengine.hpp.

83{ return asd_; }
+ Here is the caller graph for this function:

◆ aggregationScenarioData() [2/2]

const QuantLib::ext::shared_ptr< ore::analytics::AggregationScenarioData > & aggregationScenarioData ( ) const

Get aggregation data.

Definition at line 86 of file amcvaluationengine.hpp.

86{ return asd_; }

Member Data Documentation

◆ asd_

QuantLib::ext::shared_ptr<ore::analytics::AggregationScenarioData> asd_
private

Definition at line 90 of file amcvaluationengine.hpp.

◆ useMultithreading_

bool useMultithreading_ = false
private

Definition at line 93 of file amcvaluationengine.hpp.

◆ aggDataIndices_

const std::vector<string> aggDataIndices_
private

Definition at line 96 of file amcvaluationengine.hpp.

◆ aggDataCurrencies_

const std::vector<string> aggDataCurrencies_
private

Definition at line 96 of file amcvaluationengine.hpp.

◆ aggDataNumberCreditStates_

const Size aggDataNumberCreditStates_
private

Definition at line 97 of file amcvaluationengine.hpp.

◆ scenarioGeneratorData_

QuantLib::ext::shared_ptr<ScenarioGeneratorData> scenarioGeneratorData_
private

Definition at line 98 of file amcvaluationengine.hpp.

◆ model_

const QuantLib::ext::shared_ptr<QuantExt::CrossAssetModel> model_
private

Definition at line 101 of file amcvaluationengine.hpp.

◆ market_

const QuantLib::ext::shared_ptr<ore::data::Market> market_
private

Definition at line 102 of file amcvaluationengine.hpp.

◆ nThreads_

QuantLib::Size nThreads_
private

Definition at line 105 of file amcvaluationengine.hpp.

◆ today_

QuantLib::Date today_
private

Definition at line 106 of file amcvaluationengine.hpp.

◆ nSamples_

QuantLib::Size nSamples_
private

Definition at line 107 of file amcvaluationengine.hpp.

◆ loader_

QuantLib::ext::shared_ptr<ore::data::Loader> loader_
private

Definition at line 108 of file amcvaluationengine.hpp.

◆ crossAssetModelData_

QuantLib::ext::shared_ptr<CrossAssetModelData> crossAssetModelData_
private

Definition at line 109 of file amcvaluationengine.hpp.

◆ engineData_

QuantLib::ext::shared_ptr<ore::data::EngineData> engineData_
private

Definition at line 110 of file amcvaluationengine.hpp.

◆ curveConfigs_

QuantLib::ext::shared_ptr<ore::data::CurveConfigurations> curveConfigs_
private

Definition at line 111 of file amcvaluationengine.hpp.

◆ todaysMarketParams_

QuantLib::ext::shared_ptr<ore::data::TodaysMarketParameters> todaysMarketParams_
private

Definition at line 112 of file amcvaluationengine.hpp.

◆ configurationLgmCalibration_

std::string configurationLgmCalibration_
private

Definition at line 113 of file amcvaluationengine.hpp.

◆ configurationFxCalibration_

std::string configurationFxCalibration_
private

Definition at line 114 of file amcvaluationengine.hpp.

◆ configurationEqCalibration_

std::string configurationEqCalibration_
private

Definition at line 115 of file amcvaluationengine.hpp.

◆ configurationInfCalibration_

std::string configurationInfCalibration_
private

Definition at line 116 of file amcvaluationengine.hpp.

◆ configurationCrCalibration_

std::string configurationCrCalibration_
private

Definition at line 117 of file amcvaluationengine.hpp.

◆ configurationFinalModel_

std::string configurationFinalModel_
private

Definition at line 118 of file amcvaluationengine.hpp.

◆ referenceData_

QuantLib::ext::shared_ptr<ore::data::ReferenceDataManager> referenceData_
private

Definition at line 119 of file amcvaluationengine.hpp.

◆ iborFallbackConfig_

ore::data::IborFallbackConfig iborFallbackConfig_
private

Definition at line 120 of file amcvaluationengine.hpp.

◆ handlePseudoCurrenciesTodaysMarket_

bool handlePseudoCurrenciesTodaysMarket_
private

Definition at line 121 of file amcvaluationengine.hpp.

◆ cubeFactory_

std::function<QuantLib::ext::shared_ptr<ore::analytics::NPVCube>(const QuantLib::Date&, const std::set<std::string>&, const std::vector<QuantLib::Date>&, const QuantLib::Size)> cubeFactory_
private

Definition at line 124 of file amcvaluationengine.hpp.

◆ offsetScenario_

QuantLib::ext::shared_ptr<Scenario> offsetScenario_
private

Definition at line 125 of file amcvaluationengine.hpp.

◆ simMarketParams_

QuantLib::ext::shared_ptr<ore::analytics::ScenarioSimMarketParameters> simMarketParams_
private

Definition at line 126 of file amcvaluationengine.hpp.

◆ miniCubes_

std::vector<QuantLib::ext::shared_ptr<ore::analytics::NPVCube> > miniCubes_
private

Definition at line 128 of file amcvaluationengine.hpp.