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
- 加工注文
戻り値: 担当: 佐藤 宏
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
ポジションを処理した後の占領者(注文実行または集計に影響を与える注文状態の変更によって作成または更新)。