#pragma once #include "Instrument.h" #include "DerivativeContract.h" #include "OptionType.h" class EquityOption : public Instrument, DerivativeContract { private: string id; double conractSize; OptionType type; double timeToMat; double strike; double delta; Equity underlying; public: EquityOption() { id = ""; conractSize = timeToMat = strike = delta = 0.0; }; EquityOption(string id, Equity underlying, double conractSize, OptionType type, double TTM, double strike, double delta) : id(id), conractSize(conractSize), type(type), timeToMat(TTM), strike(strike), underlying(underlying), delta(delta) {} AssetClass getAssetClass() const override { return AssetClass::Equity; }; string getID()const override { return id; }; double getContractSize()const override { return conractSize; }; double getContractDelta() const override { return this->getContractSize() * this->getDelta(); }; Equity getUnderlying() const { return underlying; }; double getStrike()const { return strike; }; double getDelta()const { return delta; //can be implemented using for example Black Sholes formula }; };