StrategyPositionManager

StockSharp.Algo.Strategies

戦略のポジション(金融商品+ポートフォリオ)を管理し、ポジションの数量、平均価格を計算し、注文実行からPnLと手数料を増分的に実現しました。また、ポジションの集計(ブロックされたボリュームとアクティブな購入/売り注文数)を増分更新(O(1)/注文更新、再スキャンなし)を介してキャッシュされたパーポジションの集計を維持します。

コンストラクター

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

戦略のポジション(金融商品+ポートフォリオ)を管理し、ポジションの数量、平均価格を計算し、注文実行からPnLと手数料を増分的に実現しました。また、ポジションの集計(ブロックされたボリュームとアクティブな購入/売り注文数)を増分更新(O(1)/注文更新、再スキャンなし)を介してキャッシュされたパーポジションの集計を維持します。

strategyIdGetter
新規作成にスタンプをつける、戻り値の識別子をStrategyId@に委譲する。

プロパティ

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

管理された位置(スレッドセーフコピー)のスナップショット配列。

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

返された戦略 ID を新しいポジションに割り当てるのを委任します。

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

メソッド

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

プロセス順序の状態の変更(調整、バランスの変更、部分的/完全な実行、キャンセル、完了)。

order
加工注文

戻り値: 担当: 佐藤 宏

Reset
public void Reset()
strategyPositionManager.Reset()

内部キャッシュ(位置、実行情報、集計、注文追跡)をすべてリセットします。

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

現在の位置値を明示的に設定します(手動修復/オーバーライドのユーティリティ)。

security
金融商品取引
portfolio
ポートフォリオ
value
新規署名数量。
time
位置が新しく作成される場合、LocalTimeおよびServerTimeに割り当てるタイムスタンプ。
TryGetPosition
public Position TryGetPosition(Security security, Portfolio portfolio)
result = strategyPositionManager.TryGetPosition(security, portfolio)

既存の位置インスタンスを 取得 して .

security
金融商品取引
portfolio
ポートフォリオ

戻り値: 既存の位置か。

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

注文(ブロックされたボリュームとカウント)の集計を増加させ、それらを .

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

指定した全てのポジションの現在の(市場)価格を更新します。

secId
金融商品識別子 値の更新が必要な位置。
price
市場価格。
serverTime
サーバのタイムは、価格のスナップショットです。
localTime
代金が処理されたときの現地時間。

イベント

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

ポジションを処理した後の占領者(注文実行または集計に影響を与える注文状態の変更によって作成または更新)。