コンテンツにスキップ

注文タイプとトレーディングガイド

注文タイプとトレーディングガイド

Section titled “注文タイプとトレーディングガイド”

利用可能な最良価格での即時執行。

  • price パラメーターは不要
  • 即座に約定(または流動性がない場合は拒否)
  • 最適な用途: ポジションへの迅速な出入り

特定の価格水準での保留中注文。

  • price パラメーターが必要
  • BUY LIMIT: 現在価格より下に発注(より安く買う)
  • SELL LIMIT: 現在価格より上に発注(より高く売る)
  • デフォルト TimeInForce: GTC(約定または取消まで維持)

ストップ価格に達すると成行注文になります。

  • stopPrice パラメーターが必要
  • BUY STOP: 現在価格より上に発注(ブレイクアウト買い)
  • SELL STOP: 現在価格より下に発注(ブレイクアウト売り)
  • 用途: ブレイクアウト戦略、ストップロス実装

STOP_LIMIT(サポートされていません)

Section titled “STOP_LIMIT(サポートされていません)”

⚠️ STOP_LIMIT は cTrader ブローカーでサポートされていません。 使用しようとするとブローカーが拒否します。 代わりに STOP または LIMIT 注文を個別に使用してください。

名称動作
GTCGood Till Cancel約定または手動取消までアクティブ(デフォルト)
DAYDay Order取引日終了時に失効
IOCImmediate or Cancel即座に約定できる分だけ約定し、残りはキャンセル
FOKFill or Kill注文全体を即座に約定するか、完全にキャンセル
GTDGood Till DateexpireTime に達するまでアクティブ、その後自動キャンセル

数量: ロットではなく単位(Units)!

Section titled “数量: ロットではなく単位(Units)!”

重要: すべての数量は**ロットではなく単位(UNITS)**で指定します。

各銘柄のロットサイズは get_symbols ツールまたは ctrader://symbols リソースで取得できます。

ロットを単位に変換するには: 数量 = 希望ロット数 × LOT_SIZE

例: EURUSD のロットサイズは 100,000 なので:

  • 1 ロット = 100,000 単位 → volume: 100000
  • 0.5 ロット = 50,000 単位 → volume: 50000
  • 0.01 ロット = 1,000 単位 → volume: 1000

注文を発注する前に、必ず get_symbols を呼び出して実際のロットサイズを確認してください。

ストップロスとテイクプロフィット(リンク注文経由)

Section titled “ストップロスとテイクプロフィット(リンク注文経由)”

SL/TP は positionId 経由でポジションに接続された保留中リンク注文を使用して実装されます。 STOP または LIMIT 注文に positionId が含まれていると、トリガーされたときに新しい独立したポジションを開く代わりに、 その特定のポジションをクローズ/縮小します。

ステップ 1: ポジションを開く

{
"symbol": "EURUSD",
"side": "BUY",
"volume": 100000,
"orderType": "MARKET"
}

レスポンスには positionId(例: "12345")が含まれます — 次のステップのために保存してください。

ステップ 2: ストップロスを発注(ポジションにリンクされた STOP 注文)

{
"symbol": "EURUSD",
"side": "SELL",
"volume": 100000,
"orderType": "STOP",
"stopPrice": 1.0750,
"positionId": "12345"
}

ステップ 3: テイクプロフィットを発注(ポジションにリンクされた LIMIT 注文)

{
"symbol": "EURUSD",
"side": "SELL",
"volume": 100000,
"orderType": "LIMIT",
"price": 1.0950,
"positionId": "12345"
}
  • positionId は必須 — これがないと、STOP/LIMIT 注文は既存ポジションを保護するのではなく、新しい独立したポジションを開きます。place_order MARKET 約定レスポンス(data.positionId フィールド)から取得するか、既存ポジションについては get_positions から取得してください。
  • サイドはポジションの反対である必要があります: 買いポジション → 売りの SL/TP 注文、その逆も同様。
  • 価格の方向ルール:
    • 買いポジション: SL の stopPrice はエントリー価格より、TP の price はエントリー価格よりである必要があります
    • 売りポジション: SL の stopPrice はエントリー価格より、TP の price はエントリー価格よりである必要があります
    • エントリーの反対側に SL/TP を発注すると即座にトリガーされたり、ブローカーが拒否したりする可能性があります
  • 数量は完全な SL/TP の場合はポジション数量と一致させ、部分の場合はそれより小さくしてください。
  • OCO 自動キャンセル: ポジションがクローズしたとき(SL/TP 約定、close_position、または手動クローズ)、サーバーはその positionId にリンクされた残りのすべての保留中注文を自動的にキャンセルします。手動クリーンアップは不要です。
  • 発注後、get_orders を使用してリンクされた保留中注文がアクティブであることを確認してください。

例 1: リスクパラメーター付き成行買い

Section titled “例 1: リスクパラメーター付き成行買い”
{
"symbol": "EURUSD",
"side": "BUY",
"volume": 100000,
"orderType": "MARKET"
}
{
"symbol": "GBPUSD",
"side": "SELL",
"volume": 50000,
"orderType": "LIMIT",
"price": 1.2650,
"timeInForce": "GTC"
}
{
"positionId": "12345"
}

サイドは自動的に推論されます(LONG → SELL、SHORT → BUY)。

{
"positionId": "12345",
"volume": 50000,
"comment": "Take partial profit"
}

例 5: すべてのポジションをクローズ(ブックをフラットに)

Section titled “例 5: すべてのポジションをクローズ(ブックをフラットに)”
{ }

反対側成行注文で各建玉ポジションをクローズします。close_all_positions ツールを使用してください。

特定ポジションのみをクローズするには銘柄でフィルタ:

{ "symbol": "EURUSD" }

get_orders を使用して、まだ約定または取消されていないすべての保留中注文(LIMIT、STOP)を表示します。

{ }
{ "symbol": "EURUSD" }
{ "status": "PARTIALLY_FILLED" }
{ "clOrdId": "lq1x5k4fa3b2c1d9" }

refresh なしでは、ローカル状態からフィルタします。refresh: true を指定すると、一括リフレッシュではなく、その単一注文に対してターゲットを絞ったステータスリクエストを送信します:

{ "clOrdId": "lq1x5k4fa3b2c1d9", "refresh": true }

注文がこのサーバー外で発注または取消された可能性がある場合(例: cTrader UI 経由):

{ "refresh": true }

これはブローカーから新鮮な注文データを取得し、現在の注文スナップショットを返します。

1 つの注文のステータスのみが必要な場合は、代わりに clOrdId + refresh: true を使用してください — その注文のみのターゲットを絞ったリクエストを送信します。

ヒント: modify_order または cancel_order の前に、必ず get_orders を呼び出して注文の存在と現在の状態を確認してください。

MARKET 注文はアクティブな取引セッションを必要とし、市場がクローズしている場合(例: FX の週末、特定商品の取引時間外)には拒否されます。

代わりに行うべきこと: 市場再開時に取引をキューに入れる保留中注文タイプを使用してください:

注文タイプユースケース
LIMIT市場再開時に特定価格でエントリー(例: 予想されるオープン値より下に BUY LIMIT)
STOP取引再開後にレベルを超える/下回るブレイクアウトでエントリー
STOP_LIMITブローカーでサポートされていない(拒否されます)

timeInForce: "GTC" を設定すると、注文は約定または手動取消までアクティブのままです。 あるいは、特定時刻に自動キャンセルするために expireTime 付きの timeInForce: "GTD" を使用してください。

: 週末前に BUY LIMIT を発注:

{
"symbol": "EURUSD",
"side": "BUY",
"volume": 100000,
"orderType": "LIMIT",
"price": 1.0800,
"timeInForce": "GTC"
}

この注文は市場再開まで待機し、価格が 1.0800 に達した場合に執行されます。

{
"symbol": "EURUSD",
"side": "BUY",
"volume": 100000,
"orderType": "LIMIT",
"price": 1.0800,
"timeInForce": "GTD",
"expireTime": "2025-12-31T23:59:59Z"
}

約定しなければ、指定された UTC 時刻に注文が自動キャンセルされます。expireTime は ISO 8601 UTC 形式(YYYY-MM-DDTHH:MM:SSZ)である必要があります。

: expireTime が存在すると cTrader は GTD を自動検出するため、timeInForce: "GTD" の設定はオプションですが、明確性のため推奨されます。

最近クローズされたポジションを確認するには get_trade_history を使用してください:

  • デフォルト: 最新 20 件、最新順
  • 銘柄でフィルタ: { "symbol": "EURUSD" }
  • 統計を含める: { "includeStats": true } → 勝率、プロフィットファクター、平均 P&L

注: この MCP サーバーを通じてクローズされたポジションのみが追跡されます。 詳細については limitations トピックを参照してください。

すべての注文は 11 のリスクチェックを自動的に通過します:

  • キルスイッチが非アクティブである必要
  • レート制限を超過していない必要
  • 銘柄がホワイトリストにある必要
  • 数量が制限内である必要
  • ポジションサイズが制限内に留まる必要
  • デイリーロス制限を超過していない必要

いずれかのチェックが失敗した場合、注文は理由と修正方法の提案を含む詳細なエラーメッセージと共に拒否されます。