#ifndef _ANALYTIC_PORTFOLIO_HPP_ #define _ANALYTIC_PORTFOLIO_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif #ifndef _ANALYTIC_INSTRUMENT_HPP_ #include #endif #ifndef _ANALYTIC_RATE_HPP_ #include #endif typedef SmartPointer FinancialInstrument; typedef Block FinancialInstruments; class Portfolio : public FinancialInstruments { public: Portfolio(void); virtual ~Portfolio(); BOOL operator==(const Portfolio &portfolio)const; int getCashflows(GlobalData &sumCashflows); Rate yield(void); private: Portfolio(const Portfolio &portfolio); Portfolio &operator=(const Portfolio &portfolio); double discount(Rate yield,GlobalData &cashflows); Rate discount(double market,GlobalData &cashflows); Rate wac(void); }; #endif