00001 #pragma once 00002 #ifndef productsCreation_h 00003 #define productsCreation_h 00004 #include"../PartB/yieldCurve.h" 00005 #include"../PartE/volsurface.h" 00006 #include "../PartA/BlackScholes/BlackScholes.h" 00007 #include "../PartA/BlackScholes/OptionStrategy.h" 00008 #include "../PartL/Exotics.h" 00009 #include "../PartH/bond.h" 00010 #include "../PartD/VanillaSwap.h" 00011 #include "../PartI/rainbowoption.h" 00012 #include "../PartJ/convertiblebond.h" 00013 #include "./importData.h" 00014 #include <minmax.h> 00015 00016 using namespace std; 00017 00023 bool productsCreationMenu(marketData data); 00024 00026 BlackScholes* inputBSOption(marketData data); 00028 string outputCallPut(char c); 00029 00030 00032 OptionStrategy inputOptionStrategy(marketData data); 00034 void inputSpecificOptionStrategy(marketData data,OptionStrategy& strategy); 00036 void inputButterflySpread(marketData data,OptionStrategy& strategy,bool useMarketData); 00038 void inputCallSpread(marketData data,OptionStrategy& strategy,bool useMarketData); 00040 void inputPutSpread(marketData data,OptionStrategy& strategy,bool useMarketData); 00042 void inputRatioCallSpread(marketData data,OptionStrategy& strategy,bool useMarketData); 00044 void inputStraddle(marketData data,OptionStrategy& strategy,bool useMarketData); 00046 void inputStrangle(marketData data,OptionStrategy& strategy,bool useMarketData); 00047 00049 Exotics* inputExoticOptionOnSingleAsset(marketData &data); 00051 exoticsType choiceToType(Natural choice); 00052 00054 bond* inputBond(marketData &data); 00056 convertiblebond* inputConvertibleBond(marketData &data); 00058 VanillaSwap* inputVanillaSwap(marketData data); 00059 00061 priceType choosePricingType(Natural choice); 00063 rainbowType chooseRainbowType(Natural choice); 00065 RainbowOption* inputRainbowOption(marketData data); 00066 00067 00068 #endif