#ifndef OPTION_H_ #define OPTION_H_ /* * Option Base Class. All Option classes should extend this class. */ class Option { public: //Option(); virtual ~Option(); virtual double priceEuropeanBlackScholes() = 0; virtual double priceEuropeanBinomial(int steps) = 0; virtual double priceEuropeanMonteCarlo(int numEstimates) = 0; double getSpot(); double getExercise(); double getR(); double getTimeToExpiry(); double getVolatility(); double getDelta(); double getGamma(); double getTheta(); double getRho(); double getVega(); double getD1(); double getD2(); protected: Option(); double calcGamma(double d1, double spot, double volatility, double timeSqrt); double calcVega(double d1, double spot, double timeSqrt); double delta; double gamma; double theta; double vega; double rho; double spot; double exercise; double r; double volatility; double d1; double d2; double timeToExpiry; double timeSqrt; double getD1(double spot, double exercise, double r, double time, double volatility, double timeSqrt); double getD2(double d1, double volatility, double timeSqrt); }; #endif /*OPTION_H_*/