ポジション

PositionsWidget は、未決済ポジションと、上部に固定された現金残高の行を表示します。ポジションは既定で銘柄名順に並び、残高は並べ替え、選択、エクスポートの対象になりません。

作成と更新

import {
  PositionsWidget,
  type TradingHost,
} from '@stocksharp/trading-controls';

declare const host: TradingHost;

let positions!: PositionsWidget;

positions = PositionsWidget.create(
  document.querySelector<HTMLElement>('#positions')!,
  {},
  {
    host,
    closePosition: (portfolioId, instrumentId, symbol) =>
      console.log('決済', portfolioId, instrumentId, symbol),
    reversePosition: (portfolioId, instrumentId, symbol) =>
      console.log('ドテン', portfolioId, instrumentId, symbol),
    refreshPositions: () => positions.update([]),
  },
);

positions.update([{
  portfolioId: 10,
  instrumentId: 42,
  instrument: 'BTC@IMEX',
  quantity: 0.25,
  avgPrice: 68_000,
  currentPrice: 68_420,
  unrealizedPnl: 105,
  realizedPnl: 20,
}]);

positions.updateBalance({
  available: 48_251,
  locked: 1_749,
  total: 50_000,
});

update はポジション一覧を置き換えます。applyDelta はポートフォリオと銘柄の組み合わせで 1 件のポジションを更新し、数量がゼロの行を削除します。updateBalance(null) は固定残高を削除します。

データと操作

行には数量、平均価格、現在価格に加えて、realizedPnlunrealizedPnl の合計として計算された PnL が 1 つ表示されます。その色のクラスは host.presentation.pnlClass が返します。

行のボタンは、ホストから渡された closePositionreversePosition を呼び出します。コントロール自体は取引注文を作成したり送信したりしません。

公開メソッド

  • update(positions) — すべてのポジションを置き換えます。
  • updateBalance(balance) — 現金残高を設定または削除します。
  • applyDelta(position) — 1 件のポジションにストリーミング更新を適用します。
  • dispose() — リソースを解放します。

パネルは、更新、並べ替え、コンテキストメニュー、ポジションの XLSX エクスポートにも対応します。

関連項目