QuantLib 101之PricingEngine
时间:2010-10-07 来源:xxmplus
- 同一个instrument也会采用不同的定价机制,正如第一篇所述,这是标准的策略模式。
- 此外,不同的instrument所需的数据是大相径庭的,返回数据也是一样,因此这里引入了arguments和results两个辅助类。
#include <ql/patterns/observable.hpp> class PricingEngine : public Observable { public: class arguments; class results; virtual ~PricingEngine() {} virtual arguments* getArguments() const = 0; virtual const results* getResults() const = 0; virtual void reset() = 0; virtual void calculate() const = 0; }; class PricingEngine::arguments { public: virtual ~arguments() {} virtual void validate() const = 0; }; class PricingEngine::results { public: virtual ~results() {} virtual void reset() = 0; }; template<class ArgumentsType, class ResultsType> class GenericEngine : public PricingEngine, public Observer { public: PricingEngine::arguments* getArguments() const { return &arguments_; } const PricingEngine::results* getResults() const { return &results_; } void reset() { results_.reset(); } void update() { notifyObservers(); } protected: mutable ArgumentsType arguments_; mutable ResultType results_; };cont.
相关阅读 更多 +