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 TrackedFinishedOrdersCount { get; }
value = strategyPositionManager.TrackedFinishedOrdersCount
Number of terminal order states retained for replay detection.
public int TrackedOrderExecInfosCount { get; }
value = strategyPositionManager.TrackedOrderExecInfosCount
public int TrackedOrderTracksCount { get; }
value = strategyPositionManager.TrackedOrderTracksCount
Métodos
public static bool IsProblem(OrderResults result)
result = StrategyPositionManager.IsProblem(result)
Whether the result reports a problem rather than ordinary order flow. A snapshot of an order that is not active yet, one for an order with no position, and a repeat of a final snapshot are all expected traffic; a fill going backwards or being dropped is not.
- result
- Processing result.
Devuelve: Check result.
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 RemoveFinishedBefore(DateTime time)
strategyPositionManager.RemoveFinishedBefore(time)
Remove terminal order states older than .
- time
- Minimum order time to keep.
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).