Skip to content

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.