コンテンツにスキップ

ポジション一覧取得

read-only · idempotent

すべてのアクティブな取引ポジションをリアルタイム損益とともに表示します。

重要 — このツールを呼び出す前に、必ず価格キャッシュをウォームアップしてください。 get_quotes(バッチ)または get_quote(単一)を呼び出して、現在のマーケットのビッド/アスクから unrealizedPnL が計算されるようにしてください。事前のクォート呼び出しがないと、ライブ価格キャッシュに まだ存在しないシンボルでは unrealizedPnL は 0 となり、priceSource は “unavailable” になります。

推奨ワークフロー:

  1. get_positions を(シンボルフィルタなしで)呼び出し、オープンポジションのシンボルを把握します。
  2. 返ってきたすべてのユニークなシンボルで get_quotes を呼び出します(またはシンボルごとに get_quote)。
  3. 再度 get_positions を呼び出します — unrealizedPnL が正確になります。

現在のオープンポジションを以下とともに返します:

  • ポジション ID、シンボル、サイド(BUY/SELL)
  • 数量(単位)、エントリー価格、現在価格
  • unrealizedPnL / realizedPnL: USD 建ての損益(QUOTE セッションの仲値経由でクォート通貨から換算)
  • unrealizedPnLRaw / realizedPnLRaw: 元のクォート通貨建ての損益
  • quoteCurrency: 銘柄のクォート通貨(例: “JPY”、“GBP”、“USD”)
  • pnlCurrency: 換算済みの場合は “USD”、換算不可の場合はクォート通貨コード
  • conversionRate: USD 換算のための乗算係数(クォート通貨が USD の場合、またはレートが利用できない場合は null)
  • priceSource: “live_quote”(正確)| “broker”(ブローカー提供)| “unavailable”(価格なし)
  • ポジションのオープン時刻と最終更新時刻

パラメータ:

  • symbol: 任意のシンボルフィルタ(例: “EURUSD”)。すべてのポジションを取得する場合は省略します。
  • refresh: true の場合、ブローカーから最新のポジションデータを取得し、 現在のスナップショットを待ってから返します。デフォルトは false(キャッシュされた状態を読み取ります)。

refresh=true を使用すべき場合:

  • このセッション中に cTrader UI や他のツールで直接取引した
  • データが現在のブローカー状態を反映しているか不明
  • コンテキストを切り替えた(別のチャット、ツール再起動)後で、セッションが長時間稼働している

デフォルト(refresh=false)を使用すべき場合:

  • このセッションのすべての取引がこの MCP サーバーを経由している
  • ブローカーとの往復なしで低レイテンシな読み取りが必要

陳腐化に関する注意: ローカル状態はログオン時にブローカーからポジションを要求して初期化され、その後はこのサーバーを経由して 発注された取引の約定確認によってのみ更新されます。 cTrader UI や他のツールで発注された取引は、refresh=true を使用するまで反映されません。

レスポンスフィールド:

  • positions: ポジションオブジェクトの配列
  • count: 返されたポジションの数
  • filter: 適用されたシンボルフィルタ(なしの場合は “all”)
  • refreshed: ライブのブローカーリフレッシュが実行された場合は true
  • stale: refresh が要求されたがセッションがアクティブでなかった場合は true(キャッシュにフォールバック)
  • pnlNote: 一部のポジションで priceSource=unavailable の場合に表示されます

これは読み取り専用の操作であり、リスクチェックはありません。

パラメータ必須説明
symbolstringいいえ任意のシンボルフィルタ(例: ‘EURUSD’)。すべてのポジションを取得する場合は省略します。
refreshbooleanいいえtrue の場合、ブローカーから最新のポジションデータを取得し、現在のスナップショットを待ってから返します。このセッション中に cTrader、他のツール、または別の Claude チャットで直接取引した場合に使用してください。デフォルトは false(キャッシュされたローカル状態から読み取ります。すべての取引がこのサーバーを経由している場合は十分です)。デフォルト: false