StrategyPositionManager

StockSharp.Algo.Strategies

Gerencia posições de estratégia (por instrumento financeiro + Portfólio) e calcula a quantidade de posição, preço médio, realizada PnL e comissão incrementalmente a partir de execuções de ordem. Além disso, mantém agregados cached por posição (volume bloqueado e contagem de ordens de compra / venda ativa) através de atualizações incrementais (O(1) por atualização de ordem, sem reescaners).

Construtores

StrategyPositionManager
public StrategyPositionManager(Func<string> strategyIdGetter)
strategyPositionManager = StrategyPositionManager(strategyIdGetter)

Gerencia posições de estratégia (por instrumento financeiro + Portfólio) e calcula a quantidade de posição, preço médio, realizada PnL e comissão incrementalmente a partir de execuções de ordem. Além disso, mantém agregados cached por posição (volume bloqueado e contagem de ordens de compra / venda ativa) através de atualizações incrementais (O(1) por atualização de ordem, sem reescaners).

strategyIdGetter
Delegar o identificador de estratégia de retorno para carimbar em StrategyIdrecém-criado.

Propriedades

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

Array de instantâneo de posições gerenciadas (recópia segura de thread).

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

Delegar o ID de estratégia de retorno para atribuir em novas posições.

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

Métodos

ProcessOrder
public OrderResults ProcessOrder(Order order)
result = strategyPositionManager.ProcessOrder(order)

Mudança de estado da ordem de processo (registo, mudança de saldo, execução parcial/total, cancelamento, feito).

order
Ordem para processar.

Retorna: OrderResults

Reset
public void Reset()
strategyPositionManager.Reset()

Reinicie todas as caches internas (posições, informações de execução, agregados, faixas de ordem).

SetPosition
public void SetPosition(Security security, Portfolio portfolio, decimal value, DateTime time)
strategyPositionManager.SetPosition(security, portfolio, value, time)

Defina o valor da posição atual explicitamente (utilidade para restauração manual / sobreposições).

security
Instrumento financeiro.
portfolio
Portfólio.
value
Nova quantidade assinada.
time
Timetamp para atribuir em LocalTime e ServerTime se a posição for criada de novo.
TryGetPosition
public Position TryGetPosition(Security security, Portfolio portfolio)
result = strategyPositionManager.TryGetPosition(security, portfolio)

Tente obter a instância de posição existente para e .

security
Instrumento financeiro.
portfolio
Portfólio.

Retorna: Posição existente ou .

UpdateAggregates
private void UpdateAggregates(Order order, Position position)
strategyPositionManager.UpdateAggregates(order, position)

Atualizar agregados incrementalmente para a ordem (volume bloqueado e contagens) e empurrá-los para o .

UpdateCurrentPrice
public void UpdateCurrentPrice(SecurityId secId, decimal price, DateTime serverTime, DateTime localTime)
strategyPositionManager.UpdateCurrentPrice(secId, price, serverTime, localTime)

Actualizar o preço actual ( de mercado ) para todas as posições das posições especificadas .

secId
Identificador do instrumento financeiro cujas posições necessitam de actualização dos preços.
price
Novo preço de mercado.
serverTime
Hora do servidor da foto do preço.
localTime
Hora local em que o preço foi processado.

Eventos

PositionProcessed
public event Action<Position, bool> PositionProcessed
strategyPositionManager.PositionProcessed += handler

Ocorre após a posição ser processada (criada ou atualizada por uma execução de ordem ou mudança de estado de ordem que afeta agregados).