38 lines
994 B
C++
38 lines
994 B
C++
#ifndef _ANALYTIC_PORTFOLIO_HPP_
|
|
#define _ANALYTIC_PORTFOLIO_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_SMARTPOINTER_HPP_
|
|
#include <common/pointer.hpp>
|
|
#endif
|
|
#ifndef _COMMON_BLOCK_HPP_
|
|
#include <common/block.hpp>
|
|
#endif
|
|
#ifndef _ANALYTIC_INSTRUMENT_HPP_
|
|
#include <analytic/instrmnt.hpp>
|
|
#endif
|
|
#ifndef _ANALYTIC_RATE_HPP_
|
|
#include <analytic/rate.hpp>
|
|
#endif
|
|
|
|
typedef SmartPointer<Instrument> FinancialInstrument;
|
|
typedef Block<FinancialInstrument> FinancialInstruments;
|
|
|
|
class Portfolio : public FinancialInstruments
|
|
{
|
|
public:
|
|
Portfolio(void);
|
|
virtual ~Portfolio();
|
|
BOOL operator==(const Portfolio &portfolio)const;
|
|
int getCashflows(GlobalData<double> &sumCashflows);
|
|
Rate yield(void);
|
|
private:
|
|
Portfolio(const Portfolio &portfolio);
|
|
Portfolio &operator=(const Portfolio &portfolio);
|
|
double discount(Rate yield,GlobalData<double> &cashflows);
|
|
Rate discount(double market,GlobalData<double> &cashflows);
|
|
Rate wac(void);
|
|
};
|
|
#endif
|