IPositionManager
IPositionManager maintains real-time position tracking per symbol and reacts to all order execution events. It is a core component for portfolio state management in both live trading and simulation.
class IPositionManager : public ISubsystem, public IOrderExecutionListener {
public:
explicit IPositionManager(SubscriberId id);
virtual ~IPositionManager() = default;
virtual Quantity getPosition(SymbolId symbol) const = 0;
};
Purpose
- Track and expose current position sizes for all traded instruments in response to order events.
Responsibilities
| Method |
Description |
getPosition() |
Returns net position (long/short/flat) for a given SymbolId. |
| Execution events |
Inherited from IOrderExecutionListener — updates position on FILLED, REPLACED, etc. |
Notes
- Acts as a persistent state store for strategies, risk systems, and reporting.
- Must be registered with
OrderExecutionBus to receive fill and cancel notifications.
- Can optionally implement position limits or exposure constraints internally.
Implementations
See Also