StrategyPositionManager
Gestiona posiciones de estrategia (por instrumento financiero + Cartera) y calcula la cantidad de posición, precio promedio, realizado PnL y comisiona incrementalmente desde ejecuciones de pedidos. Además mantiene agregados cachés por posición (cuenta de volumen bloqueado y pedidos activos de compra/venta) a través de actualizaciones incrementales (O(1) por actualización de pedidos, no recans).
Constructores
public StrategyPositionManager(Func<string> strategyIdGetter)
strategyPositionManager = StrategyPositionManager(strategyIdGetter)
Gestiona posiciones de estrategia (por instrumento financiero + Cartera) y calcula la cantidad de posición, precio promedio, realizado PnL y comisiona incrementalmente desde ejecuciones de pedidos. Además mantiene agregados cachés por posición (cuenta de volumen bloqueado y pedidos activos de compra/venta) a través de actualizaciones incrementales (O(1) por actualización de pedidos, no recans).
- strategyIdGetter
- Delegado devolviendo la identificación de estrategia para sellar a StrategyId@.
Propiedades
public Position[] Positions { get; }
value = strategyPositionManager.Positions
Conjunto de funciones gestionadas (copia segura de lectura).
public Func<string> StrategyIdGetter { get; }
value = strategyPositionManager.StrategyIdGetter
Estrategia de retorno de delegados id para asignar en nuevas posiciones.
public int TrackedAggsCount { get; }
value = strategyPositionManager.TrackedAggsCount
public int TrackedOrderExecInfosCount { get; }
value = strategyPositionManager.TrackedOrderExecInfosCount
public int TrackedOrderTracksCount { get; }
value = strategyPositionManager.TrackedOrderTracksCount
Métodos
public OrderResults ProcessOrder(Order order)
result = strategyPositionManager.ProcessOrder(order)
Orden de proceso cambio de estado (inscripción, cambio de equilibrio, ejecución parcial/completa, cancelación, hecho).
- order
- Orden de procesar.
Devuelve: OrderResults@
public void Reset()
strategyPositionManager.Reset()
Reiniciar todos los caches internos (posiciones, información de ejecución, agregados, pistas de orden).
public void SetPosition(Security security, Portfolio portfolio, decimal value, DateTime time)
strategyPositionManager.SetPosition(security, portfolio, value, time)
Establecer el valor de posición actual explícitamente (utility para la restauración manual / anulaciones).
- security
- instrumento financiero.
- portfolio
- Portafolio.
- value
- Nueva cantidad firmada.
- time
- Horarios para asignar a LocalTime y ServerTime si se crea una nueva posición.
public Position TryGetPosition(Security security, Portfolio portfolio)
result = strategyPositionManager.TryGetPosition(security, portfolio)
Pruebe obtener la instancia de posición existente para y .
- security
- instrumento financiero.
- portfolio
- Portafolio.
Devuelve: Posición existente o .
private void UpdateAggregates(Order order, Position position)
strategyPositionManager.UpdateAggregates(order, position)
Actualizar agregados increíblemente para el orden ( volumen bloqueado y cuenta) y empujarlos en el .
public void UpdateCurrentPrice(SecurityId secId, decimal price, DateTime serverTime, DateTime localTime)
strategyPositionManager.UpdateCurrentPrice(secId, price, serverTime, localTime)
Actualizar el precio actual (mercado) para todas las posiciones de la especificada .
- secId
- identificador de instrumentos financieros cuyas posiciones necesitan actualización de precios.
- price
- Nuevo precio de mercado.
- serverTime
- Tiempo de servidor de la instantánea de precio.
- localTime
- Hora local cuando el precio fue procesado.
Eventos
public event Action<Position, bool> PositionProcessed
strategyPositionManager.PositionProcessed += handler
Occurs después de que se tramitó la posición (creado o actualizado por una ejecución de orden o cambio de estado que afecta a los agregados).