Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

PortFolio.h

Go to the documentation of this file.
00001 #pragma once
00002 
00003 #ifndef PORTFOLIO_H
00004 #define PORTFOLIO_H
00005 
00006 #include "./../PartA/BlackScholes/OptionStrategy.h"
00007 #include "./../PartK/VarianceSwap.h"
00008 #include "./../PartD/VanillaSwap.h"
00009 #include "./../PartI/rainbowoption.h"
00010 #include "./../PartH/bond.h"
00011 #include "./../PartC/asset.h"
00012 #include "./../PartL/Exotics.h"
00013 
00014 #include<valarray>
00015 using namespace std;
00016 
00017 const Natural MAX_SIZE=100;
00018 const Natural MAX_SIZE_NAME=50;
00019 
00024 class Portfolio
00025 {
00026 public:
00031         Portfolio(char* name,Currency currency);
00032         ~Portfolio(void);
00033 
00035         char* getName();
00036 
00038         Currency getCurrency();
00039         
00041         char* getCurrencyAsString();
00042 
00044         void addOptionStrategy(OptionStrategy* optionStrategy);
00045         
00047         void addRainbowOption(RainbowOption* rainbowOption, Real quantity);
00048 
00050         void addExoticOption(Exotics* exoticOption, Real quantity);
00051 
00053         void addVanillaSwap(VanillaSwap* vanillaSwap, Real quantity);
00054         
00056         void addVarianceSwap(VarianceSwap* varSwap, Real quantity);
00057         
00059         void addBond(bond* oneBond, Real quantity);
00060 
00062         void addAsset(asset* oneAsset, Real quantity);
00063 
00065         Real getPrice();
00066 
00068         Real returnSensibilityToRate();
00069 
00071         Real returnSensibilityToVol();
00072 
00074         Real returnSensibilityToTime();
00075 
00076 
00077 private:
00078 
00079         char* _name;
00080         Currency _currency;
00081 
00082         OptionStrategy _optionStrategy;
00083         valarray<RainbowOption*> _rainbowOptions;
00084         valarray<Exotics*> _exoticsOptions;
00085         valarray<VanillaSwap*> _vanSwaps;
00086         valarray<VarianceSwap*> _varSwaps;
00087         valarray<bond*> _bonds;
00088         valarray<asset*> _assets;
00089 
00090         valarray<Real> _quantityRainbowOptions;
00091         valarray<Real> _quantityExoticsOptions;
00092         valarray<Real> _quantityVanSwaps;
00093         valarray<Real> _quantityVarSwaps;
00094         valarray<Real> _quantityBonds;
00095         valarray<Real> _quantityAssets;
00096 
00097         Natural _nbRainbowOptions;
00098         Natural _nbExoticsOptions;
00099         Natural _nbVanSwaps;
00100         Natural _nbVarSwaps;
00101         Natural _nbBonds;
00102         Natural _nbAssets;
00103 };
00104 
00105 #endif;

Note: Generated nightly - reload for latest version
Generated on Thu Dec 22 23:12:36 2005 for terreneuve by doxygen 1.3.6