コンテンツにスキップ

エラーコードリファレンス

すべてのエラーは isError: true を含む構造化された JSON レスポンスを返し、本文には error(コード)、message(人間が読める形式)、details(追加コンテキスト)が含まれます。

説明: ブローカーが FIX Logon リクエストを明示的に拒否しました。 ブローカーは Logon フェーズ中に、tag 58 に理由を含む Logout メッセージ (35=5) を送信します。 一般的な理由:

  • RET_INVALID_DATA — 間違った FIX API パスワードまたは無効な認証情報
  • RET_NOT_ALLOWED — このアカウントで FIX API が有効になっていない
  • RET_ACCOUNT_DISABLED — アカウントが停止または無効化されている

解決方法:

  1. FIX API パスワードを確認してください(cTrader アカウントパスワードとは別です)
  2. cTrader → Settings → FIX API で FIX API パスワードをリセットしてください
  3. SenderCompID がアカウントと一致していることを確認してください
  4. FIX ホストがアカウントの登録されているサーバーと一致していることを確認してください
  5. ブローカー側でアカウントに対して FIX API アクセスが有効になっていることを確認してください

説明: FIX 接続が確立されていないか、ACTIVE 状態ではありません。 一般的な原因:

  • サーバーが起動直後で、FIX 接続がまだ初期化中
  • TCP/TLS 接続を妨げるネットワーク問題
  • 認証情報が無効で Logon が拒否された
  • ブローカーゲートウェイがダウンまたはメンテナンス中

解決方法:

  1. 接続が確立するまで 10〜30 秒待ちます
  2. FIX の状態については ctrader://health リソースを確認します
  3. FIX 認証情報(ホスト、ポート、SenderCompID、パスワード)を確認します
  4. FIX ホストおよびポートへの接続性をテストします
  5. FIX 接続で TLS が機能していることを確認します
  6. ブローカー側でアカウントに対して FIX API が有効になっていることを確認します

説明: 接続時にブローカーが提供された認証情報を拒否しました。 一般的な原因:

  • 不正な FIX API パスワード(注意: cTrader アカウントパスワードとは別です)
  • 誤った SenderCompID
  • アカウントで FIX API が有効になっていない
  • 誤ったサーバーを選択

解決方法: 正しい認証情報で再認証してください。cTrader の FIX API 設定を確認してください。

説明: 認証情報の検証中に、ブローカーへの接続を確立できませんでした。 一般的な原因:

  • 誤ったサーバーを選択
  • ブローカーゲートウェイが一時的にダウン
  • ネットワーク接続の問題

解決方法: サーバー選択を確認して再度お試しください。継続する場合はブローカーのステータスを確認してください。

説明: FIX 接続が失われ、サーバーが再接続を試みています。 解決方法: 再接続が完了するまでお待ちください(自動)。ネットワークの安定性を確認してください。

説明: ログオン後の状態リコンサイリエーションが進行中です。 解決方法: リコンサイリエーションが完了するまで 5〜10 秒お待ちください。サーバーは ブローカーとポジションおよび注文を同期しています。

説明: 8 つのリスクチェックのいずれかが注文を拒否しました。 details フィールドに含まれる内容: 理由、現在値と制限値の比較、修正のための提案。 一般的な理由:

  • デイリーロス制限を超過
  • 最大ポジションサイズを超過
  • 最大建玉ポジション数に到達
  • 数量が最小値未満、または有効なステップではない

解決方法: エラー詳細の suggestion フィールドに従ってください。よくある修正:

  • デイリー PnL リセット (17:00 EST) を待つ
  • 注文数量を減らす
  • 既存ポジションをクローズする

説明: 緊急キルスイッチがアクティブで、すべての取引をブロックしています。 details フィールドに含まれる内容: 起動理由、タイムスタンプ、解除手順。 一般的な原因:

  • デイリーロス制限を超過
  • 状態リコンサイリエーションで不整合を検出(サーキットブレーカー)

解決方法:

  1. check_health を呼び出してキルスイッチのステータスと起動理由を確認します
  2. ctrader://health リソース経由でデイリー PnL を確認します
  3. デイリーロストリガーは 17:00 EST に自動リセットされます

説明: 短時間に多すぎる注文が送信されました。 details フィールドに含まれる内容: 制限の種類、待機時間(秒)、リトライ可能なタイムスタンプ。 一般的な原因:

  • 1 秒あたり 2 件を超える注文
  • 1 分あたり 10 件を超える注文(設定可能)
  • 同一銘柄の注文間隔が 5 秒未満

解決方法: waitSeconds で指定された秒数だけ待ってください。

説明: 現在の運用モードではこの操作が許可されていません。 一般的な原因: readonly モードで注文の発注/変更/取消を試みた。 解決方法: モードを paper(テスト用)または live(実取引用)に切り替えてください。

説明: 銘柄が認識されていないか、許可リストにありません。 解決方法: get_symbols ツールで銘柄カタログを確認してください。 銘柄名は大文字英数字(3〜10 文字)である必要があります。

説明: 数量が許容範囲外、または有効なステップではありません。 解決方法: 銘柄のロットサイズ、最小数量、数量ステップを確認してください。

説明: 価格値が無効か、範囲外です。 解決方法: 価格が正の値で、妥当な範囲内にあることを確認してください。

説明: リクエストパラメーターの検証に失敗しました。 解決方法: パラメーターの型と必須フィールドを確認してください。LIMIT 注文には price、 STOP 注文には stopPrice が必要です。注意: STOP_LIMIT はブローカーでサポートされていません。

説明: ブローカーが注文を拒否しました。 詳細: ブローカーの拒否理由を含みます。 解決方法: 拒否理由を確認してください。よくある原因: 証拠金不足、市場クローズ、 銘柄が利用不可。

市場クローズによる拒否: 拒否理由が市場クローズを示している場合、即時約定のための アクティブセッションが存在しないため、MARKET 注文は執行できません。 ただし、市場が再開したときにアクティブになる保留中の注文を発注することは可能です:

  • LIMIT 注文 — 指定価格でキューに入れられ、市場が開いて価格が一致したときに約定
  • STOP 注文 — 市場再開後にストップ価格に到達したときに成行注文をトリガー

注文がセッションをまたいで持続するように、timeInForce: "GTC" (Good Till Cancel) を使用してください。

説明: 指定された orderId または clOrdId の保留中の注文が見つかりません。 解決方法: 注文 ID を確認してください。注文はすでに約定または取消されている可能性があります。 現在の状態を確認するには get_positions または ctrader://orders を使用してください。

説明: 指定された positionId の建玉ポジションが見つかりません。 解決方法: ポジション ID を確認してください。現在のポジションを一覧表示するには get_positions を使用してください。 ポジションはすでにクローズされている可能性があります。

説明: 注文変更リクエストが拒否されました。 解決方法: 注文がまだ保留中であること(約定/取消されていないこと)を確認してください。

説明: 注文取消リクエストが拒否されました。 解決方法: 注文がまだ保留中であることを確認してください。約定済みの注文は取消できません。

説明: ポジションクローズリクエストが失敗しました。 解決方法: ポジションが存在し、数量が有効であることを確認してください。

プロトコルおよびタイムアウトエラー

Section titled “プロトコルおよびタイムアウトエラー”

説明: タイムアウト期間内に FIX レスポンスを受信できませんでした。 解決方法: FIX 接続の状態を確認してください。ブローカーの応答が遅い可能性があります。 接続状態を確認した後に操作をリトライしてください。

説明: 予期しない FIX プロトコルエラー。 解決方法: 詳細についてはサーバーログを確認してください。プロトコルの不一致を示している可能性があります。

説明: ブローカーがリクエストを明示的に拒否しました。 解決方法: エラー詳細の拒否理由を確認してください。

説明: 予期しないサーバーサイドのエラー。 解決方法: サーバーログを確認してください。バグを示している可能性があります。

説明: タイムアウト期間内にトレードロックを取得できませんでした。 解決方法: 先行する取引操作に時間がかかりすぎています。待ってリトライしてください。 高負荷時、または FIX レスポンスが遅延した場合に発生することがあります。