#pragma once #include "EquityDerivativeTrade.h" #include class DerivativePortfolioPosition { private: vector tradesLog; public: DerivativePortfolioPosition() { }; void addTrade(EquityDerivativeTrade trade) { tradesLog.push_back(trade); }; map calculateDeltaRisk() const { map equityDeltaMap; for (EquityDerivativeTrade trade : tradesLog) { Equity underlying = trade.getInstrument().getUnderlying(); if (equityDeltaMap.find(underlying.getID()) == equityDeltaMap.end()) { equityDeltaMap.insert({ underlying.getID(), trade.getDelta() }); } else { equityDeltaMap.at(underlying.getID()) += trade.getDelta(); } }; return equityDeltaMap; }; vector getTrades() const { return tradesLog; }; int getNumberTrades() const { return tradesLog.size(); }; };