#include "Option.h" #include "normal.h" #include Option::Option() { } Option::~Option() { } double Option::getD1() { return Option::getD1(spot, exercise, r, timeToExpiry, volatility, timeSqrt); } double Option::getD1(double spot, double exercise, double r, double timeToExpiry, double volatility, double timeSqrt) { return ((log(spot/exercise) + (r * timeToExpiry))/(volatility * timeSqrt)) + (0.5 * volatility * timeSqrt); } double Option::getD2() { return Option::getD2(d1, volatility, timeSqrt); } double Option::getD2(double d1, double volatility, double timeSqrt) { return (d1 - (volatility * timeSqrt)); } double Option::calcGamma(double d1, double spot, double volatility, double timeSqrt) { double gamma = ndf(d1)/(spot * volatility * timeSqrt); return gamma; } double Option::calcVega(double d1, double spot, double timeSqrt) { double vega = spot * timeSqrt * ndf(d1); return 0.01 * vega; } double Option::getSpot() { return spot; } double Option::getExercise(){ return exercise; } double Option::getR(){ return r; } double Option::getTimeToExpiry(){ return timeToExpiry; } double Option::getVolatility() { return volatility; } double Option::getDelta() { return delta; } double Option::getGamma() { return gamma; } double Option::getTheta() { return theta; } double Option::getRho() { return rho; } double Option::getVega() { return vega; }