StrategyPositionManager

StockSharp.Algo.Strategies

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

StrategyPositionManager
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

Positions
public Position[] Positions { get; }
value = strategyPositionManager.Positions

Conjunto de funciones gestionadas (copia segura de lectura).

StrategyIdGetter
public Func<string> StrategyIdGetter { get; }
value = strategyPositionManager.StrategyIdGetter

Estrategia de retorno de delegados id para asignar en nuevas posiciones.

TrackedAggsCount
public int TrackedAggsCount { get; }
value = strategyPositionManager.TrackedAggsCount
TrackedFinishedOrdersCount
public int TrackedFinishedOrdersCount { get; }
value = strategyPositionManager.TrackedFinishedOrdersCount

Number of terminal order states retained for replay detection.

TrackedOrderExecInfosCount
public int TrackedOrderExecInfosCount { get; }
value = strategyPositionManager.TrackedOrderExecInfosCount
TrackedOrderTracksCount
public int TrackedOrderTracksCount { get; }
value = strategyPositionManager.TrackedOrderTracksCount

Métodos

IsProblem
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.

ProcessOrder
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@

RemoveFinishedBefore
public void RemoveFinishedBefore(DateTime time)
strategyPositionManager.RemoveFinishedBefore(time)

Remove terminal order states older than .

time
Minimum order time to keep.
Reset
public void Reset()
strategyPositionManager.Reset()

Reiniciar todos los caches internos (posiciones, información de ejecución, agregados, pistas de orden).

SetPosition
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.
TryGetPosition
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 .

UpdateAggregates
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 .

UpdateCurrentPrice
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

PositionProcessed
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).