#pragma once #include "TradeSide.h" #include "Trade.h" #include "EquityOption.h" class EquityDerivativeTrade : public Trade { private: double size; double tradedPrice; TradeSide tradeSide; EquityOption inst; public: EquityDerivativeTrade(EquityOption inst, double size, double tradedPrice, TradeSide tradeSide): size(size), tradedPrice(tradedPrice), inst(inst), tradeSide(tradeSide){} double getSize() const override { return size; }; TradeSide getSide() const override { return tradeSide; }; double getPrice() const { return tradedPrice; }; EquityOption getInstrument() const { return inst; }; double getDelta() const { double delta = (inst.getContractDelta()) * (size); return getSide()==TradeSide::Buy? delta : -1* delta; //adjust for the side of the trade }; };