StrategyPositionManager

StockSharp.Algo.Strategies

Verwaltet Strategiepositionen (pro Finanzinstrument + Portfolio) und berechnet Positionsmenge, Durchschnittspreis, realisiert PnL und Provision inkrementell aus Orderausführungen. Zusätzlich werden zwischengespeicherte Pro-Position-Aggregate (blockiertes Volumen und aktive Kauf- / Verkaufsaufträge) über inkrementelle Updates (O(1) pro Orderaktualisierung, keine Rescans) beibehalten.

Konstruktoren

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

Verwaltet Strategiepositionen (pro Finanzinstrument + Portfolio) und berechnet Positionsmenge, Durchschnittspreis, realisiert PnL und Provision inkrementell aus Orderausführungen. Zusätzlich werden zwischengespeicherte Pro-Position-Aggregate (blockiertes Volumen und aktive Kauf- / Verkaufsaufträge) über inkrementelle Updates (O(1) pro Orderaktualisierung, keine Rescans) beibehalten.

strategyIdGetter
Delegieren Sie die Rückgabestrategie-Kennung, um in neu erstellte StrategyId zu stampfen.

Eigenschaften

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

Snapshot-Array von verwalteten Positionen (Thread-sichere Kopie).

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

Delegieren Sie die Returning Strategy ID, um sie in neue Positionen zuzuweisen.

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

Methoden

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

Zustandsänderung der Prozessauftragseinstellung (Registrierung, Saldoänderung, teilweise/vollständige Ausführung, Stornierung, erfolgt).

order
Ordnung zu verarbeiten.

Rückgabe: OrderResults

Reset
public void Reset()
strategyPositionManager.Reset()

Setzen Sie alle internen Caches zurück (Positionen, Ausführungsinformationen, Aggregate, Auftragstracks).

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

Setzen Sie den aktuellen Positionswert explizit ein (Nutzung für manuelle Wiederherstellung / Überschreiben).

security
Finanzinstrument.
portfolio
Portfolio.
value
Neue unterzeichnete Menge.
time
Zeitstempel, um LocalTime und ServerTime zuzuweisen, wenn die Position neu erstellt wird.
TryGetPosition
public Position TryGetPosition(Security security, Portfolio portfolio)
result = strategyPositionManager.TryGetPosition(security, portfolio)

Versuchen Sie, bestehende Position Instanz für und zu erhalten.

security
Finanzinstrument.
portfolio
Portfolio.

Rückgabe: Bestehende Position oder.

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

Aktualisieren Sie die Aggregate für die Bestellung (gesperrtes Volumen und Zählungen) und schieben Sie sie in die .

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

Aktualisieren Sie den aktuellen (Markt-) Preis für alle Positionen der angegebenen.

secId
Finanzinstrumentkennung, deren Positionen eine Preisaktualisierung benötigen.
price
Neuer Marktpreis.
serverTime
Serverzeit des Preis-Snapshots.
localTime
Ortszeit, zu der der Preis verarbeitet wurde.

Ereignisse

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

Tritt auf, nachdem die Position verarbeitet wurde (erstellt oder aktualisiert durch eine Auftragsausführung oder eine Auftragszustandsänderung, die Aggregate beeinflusst).