Place Order
writes · destructive
FIX API経由でcTraderに新しい取引注文を発注します。
キルスイッチ、レート制限、ポジションサイズ制限、日次損失制限を含む11個のリスクチェックを通過後、注文を送信します。
PARAMETERS:
- symbol: 正確なシンボル名(例: “EURUSD”、“GBPUSD”、“XAUUSD”)
- side: ロングは “BUY”、ショートは “SELL”
- volume: ロットではなく単位(UNITS)で指定
- FXペア: 100000 = 1標準ロット、10000 = 0.1ロット
- ゴールド(XAUUSD): 10 = 1ロット、1000 = 100ロット(ブローカー最小値!)
- シルバー(XAGUSD): 500 = 1ロット(ブローカー最小値!)
- 設定でシンボルのロットサイズを確認してください
- orderType: “MARKET”(即時)、“LIMIT”(指定価格で待機)、“STOP”(逆指値注文)
- 注意: STOP_LIMITはブローカーでサポートされていません
- timeInForce: “GTC”(デフォルト、キャンセルまで有効)、“DAY”、“IOC”、“FOK”
- price: LIMITおよびSTOP_LIMIT注文に必須(絶対価格水準)
- stopPrice: STOPおよびSTOP_LIMIT注文に必須(トリガー価格)
- positionId: SL/TP注文には必須。positionIdがない場合、STOP/LIMIT注文は 対象ポジションをクローズせず、新しい独立ポジションをオープンします。 必ず先に get_positions からポジションIDを取得してください。
リスクチェック(すべて自動): ポジションサイズ、オープンポジション数、日次損失制限、レート制限が強制されます。注文は詳細な理由と提案とともに拒否される場合があります。
モード:
- readonly: MODE_RESTRICTEDエラーで拒否
- paper: 検証・記録されるが、ブローカーには送信されない
- live: 検証してブローカーに送信(実際に執行される)
レスポンス:
- MARKET約定時: orderId、clOrdId、status、avgPrice、positionIdを返します。 SL/TP保護のため、positionIdを使ってリンクされたSTOP/LIMIT注文を発注してください。
- LIMIT/STOP受理時: orderId、clOrdId、status(NEW)を返します。 失敗時には、LLMがパラメータを調整するための理由と提案を含む構造化エラーを返します。
SL/TPワークフロー:
- MARKET注文を発注 → レスポンスからpositionIdを取得(data.positionIdフィールド)
- positionIdを指定してSTOP注文を発注(反対サイド) → ストップロス
- positionIdを指定してLIMIT注文を発注(反対サイド) → テイクプロフィット OCO: ポジションがクローズすると(SL/TP約定または close_position)、サーバーは残りのリンクされた待機注文をすべて自動キャンセルします。
SL/TP価格ルール:
- BUYポジション: SLのstopPriceはエントリー価格より下、TPの価格はエントリー価格より上
- SELLポジション: SLのstopPriceはエントリー価格より上、TPの価格はエントリー価格より下
- SL/TP水準を計算する前に、get_quoteで現在のビッド/アスクを取得してください
⚠️ 計算の安全性 — このツールを呼び出す前に必ず以下を実行してください:
- 数量を段階的に計算する: 希望ロット数 × LOT_SIZE = 単位数。計算をユーザーに表示してください。
- シンボルのLOT_SIZEを get_symbols で確認(不明な場合は get_knowledge トピック “order-guide” を確認)。
- クロスチェック: 単位数は妥当に見えますか?(例: 1 FXロット = 100,000であり、10,000や1,000,000ではない)
- 注文送信前に、シンボル、サイド、数量、注文種別についてユーザーから明示的な確認を得てください。
- 疑わしい場合は、まずペーパーモードと小さな数量を使用してください。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
symbol | string | はい | シンボル名(例: ‘EURUSD’、‘GBPUSD’、‘XAUUSD’) |
side | "BUY", "SELL" | はい | 注文サイド: ロングは ‘BUY’、ショートは ‘SELL’ |
volume | number | はい | 注文数量(ロットではなくUNITS)。例: 100000 = 1標準FXロット、10 = 1ロット XAUUSD、0.01 = 0.01ロット BTCUSD。ロットサイズの小さい銘柄では小数値も許可されます。get_symbolsからシンボルのロットサイズを取得してください。 |
orderType | "MARKET", "LIMIT", "STOP", "STOP_LIMIT" | はい | 注文種別: ‘MARKET’(即時執行)、‘LIMIT’(指定価格で待機)、‘STOP’(逆指値注文)。⚠️ STOP_LIMITはブローカーでサポートされておらず、拒否されます。 |
timeInForce | "GTC", "DAY", "IOC", "FOK", "GTD" | いいえ | Time in Force: ‘GTC’(キャンセルまで有効、デフォルト)、‘DAY’(当日終了で失効)、‘IOC’(即時または取消)、‘FOK’(全量約定または取消)、‘GTD’(指定日まで有効、expireTimeが必要) デフォルト: GTC。 |
price | number | いいえ | 指値価格(LIMITおよびSTOP_LIMIT注文に必須) |
stopPrice | number | いいえ | ストップトリガー価格(STOPおよびSTOP_LIMIT注文に必須) |
positionId | string | いいえ | この注文を既存ポジションにリンクするためのポジションID。SL/TP注文には必須 — これがないと、STOP/LIMIT注文は対象ポジションをクローズせず、新しい独立ポジションをオープンします。positionIdは、place_orderのMARKET約定レスポンスから、または既存ポジションについてはget_positionsから取得します。 |
comment | string | いいえ | 任意の注文コメント/ラベル |
expireTime | string | いいえ | ISO 8601形式の任意の有効期限(例: ‘2025-12-31T23:59:59Z’)。DAYまたはGTC timeInForceと併用。 |
