エラーコードリファレンス
エラーコードリファレンス
Section titled “エラーコードリファレンス”すべてのエラーは isError: true を含む構造化された JSON レスポンスを返し、本文には
error(コード)、message(人間が読める形式)、details(追加コンテキスト)が含まれます。
接続およびセッションエラー
Section titled “接続およびセッションエラー”BROKER_REJECTED_LOGON
Section titled “BROKER_REJECTED_LOGON”説明: ブローカーが FIX Logon リクエストを明示的に拒否しました。 ブローカーは Logon フェーズ中に、tag 58 に理由を含む Logout メッセージ (35=5) を送信します。 一般的な理由:
RET_INVALID_DATA— 間違った FIX API パスワードまたは無効な認証情報RET_NOT_ALLOWED— このアカウントで FIX API が有効になっていないRET_ACCOUNT_DISABLED— アカウントが停止または無効化されている
解決方法:
- FIX API パスワードを確認してください(cTrader アカウントパスワードとは別です)
- cTrader → Settings → FIX API で FIX API パスワードをリセットしてください
- SenderCompID がアカウントと一致していることを確認してください
- FIX ホストがアカウントの登録されているサーバーと一致していることを確認してください
- ブローカー側でアカウントに対して FIX API アクセスが有効になっていることを確認してください
FIX_NOT_READY
Section titled “FIX_NOT_READY”説明: FIX 接続が確立されていないか、ACTIVE 状態ではありません。 一般的な原因:
- サーバーが起動直後で、FIX 接続がまだ初期化中
- TCP/TLS 接続を妨げるネットワーク問題
- 認証情報が無効で Logon が拒否された
- ブローカーゲートウェイがダウンまたはメンテナンス中
解決方法:
- 接続が確立するまで 10〜30 秒待ちます
- FIX の状態については
ctrader://healthリソースを確認します - FIX 認証情報(ホスト、ポート、SenderCompID、パスワード)を確認します
- FIX ホストおよびポートへの接続性をテストします
- FIX 接続で TLS が機能していることを確認します
- ブローカー側でアカウントに対して FIX API が有効になっていることを確認します
CREDENTIAL_REJECTED
Section titled “CREDENTIAL_REJECTED”説明: 接続時にブローカーが提供された認証情報を拒否しました。 一般的な原因:
- 不正な FIX API パスワード(注意: cTrader アカウントパスワードとは別です)
- 誤った SenderCompID
- アカウントで FIX API が有効になっていない
- 誤ったサーバーを選択
解決方法: 正しい認証情報で再認証してください。cTrader の FIX API 設定を確認してください。
BROKER_UNREACHABLE
Section titled “BROKER_UNREACHABLE”説明: 認証情報の検証中に、ブローカーへの接続を確立できませんでした。 一般的な原因:
- 誤ったサーバーを選択
- ブローカーゲートウェイが一時的にダウン
- ネットワーク接続の問題
解決方法: サーバー選択を確認して再度お試しください。継続する場合はブローカーのステータスを確認してください。
RECONNECTING
Section titled “RECONNECTING”説明: FIX 接続が失われ、サーバーが再接続を試みています。 解決方法: 再接続が完了するまでお待ちください(自動)。ネットワークの安定性を確認してください。
RECONCILING
Section titled “RECONCILING”説明: ログオン後の状態リコンサイリエーションが進行中です。 解決方法: リコンサイリエーションが完了するまで 5〜10 秒お待ちください。サーバーは ブローカーとポジションおよび注文を同期しています。
リスク管理エラー
Section titled “リスク管理エラー”RISK_CHECK_FAILED
Section titled “RISK_CHECK_FAILED”説明: 8 つのリスクチェックのいずれかが注文を拒否しました。 details フィールドに含まれる内容: 理由、現在値と制限値の比較、修正のための提案。 一般的な理由:
- デイリーロス制限を超過
- 最大ポジションサイズを超過
- 最大建玉ポジション数に到達
- 数量が最小値未満、または有効なステップではない
解決方法: エラー詳細の suggestion フィールドに従ってください。よくある修正:
- デイリー PnL リセット (17:00 EST) を待つ
- 注文数量を減らす
- 既存ポジションをクローズする
KILL_SWITCH_ACTIVE
Section titled “KILL_SWITCH_ACTIVE”説明: 緊急キルスイッチがアクティブで、すべての取引をブロックしています。 details フィールドに含まれる内容: 起動理由、タイムスタンプ、解除手順。 一般的な原因:
- デイリーロス制限を超過
- 状態リコンサイリエーションで不整合を検出(サーキットブレーカー)
解決方法:
check_healthを呼び出してキルスイッチのステータスと起動理由を確認しますctrader://healthリソース経由でデイリー PnL を確認します- デイリーロストリガーは 17:00 EST に自動リセットされます
RATE_LIMITED
Section titled “RATE_LIMITED”説明: 短時間に多すぎる注文が送信されました。 details フィールドに含まれる内容: 制限の種類、待機時間(秒)、リトライ可能なタイムスタンプ。 一般的な原因:
- 1 秒あたり 2 件を超える注文
- 1 分あたり 10 件を超える注文(設定可能)
- 同一銘柄の注文間隔が 5 秒未満
解決方法: waitSeconds で指定された秒数だけ待ってください。
MODE_RESTRICTED
Section titled “MODE_RESTRICTED”説明: 現在の運用モードではこの操作が許可されていません。
一般的な原因: readonly モードで注文の発注/変更/取消を試みた。
解決方法: モードを paper(テスト用)または live(実取引用)に切り替えてください。
バリデーションエラー
Section titled “バリデーションエラー”INVALID_SYMBOL
Section titled “INVALID_SYMBOL”説明: 銘柄が認識されていないか、許可リストにありません。
解決方法: get_symbols ツールで銘柄カタログを確認してください。
銘柄名は大文字英数字(3〜10 文字)である必要があります。
INVALID_VOLUME
Section titled “INVALID_VOLUME”説明: 数量が許容範囲外、または有効なステップではありません。 解決方法: 銘柄のロットサイズ、最小数量、数量ステップを確認してください。
INVALID_PRICE
Section titled “INVALID_PRICE”説明: 価格値が無効か、範囲外です。 解決方法: 価格が正の値で、妥当な範囲内にあることを確認してください。
INVALID_PARAMS
Section titled “INVALID_PARAMS”説明: リクエストパラメーターの検証に失敗しました。
解決方法: パラメーターの型と必須フィールドを確認してください。LIMIT 注文には price、
STOP 注文には stopPrice が必要です。注意: STOP_LIMIT はブローカーでサポートされていません。
注文およびポジションエラー
Section titled “注文およびポジションエラー”ORDER_REJECTED
Section titled “ORDER_REJECTED”説明: ブローカーが注文を拒否しました。 詳細: ブローカーの拒否理由を含みます。 解決方法: 拒否理由を確認してください。よくある原因: 証拠金不足、市場クローズ、 銘柄が利用不可。
市場クローズによる拒否: 拒否理由が市場クローズを示している場合、即時約定のための アクティブセッションが存在しないため、MARKET 注文は執行できません。 ただし、市場が再開したときにアクティブになる保留中の注文を発注することは可能です:
- LIMIT 注文 — 指定価格でキューに入れられ、市場が開いて価格が一致したときに約定
- STOP 注文 — 市場再開後にストップ価格に到達したときに成行注文をトリガー
注文がセッションをまたいで持続するように、timeInForce: "GTC" (Good Till Cancel) を使用してください。
ORDER_NOT_FOUND
Section titled “ORDER_NOT_FOUND”説明: 指定された orderId または clOrdId の保留中の注文が見つかりません。
解決方法: 注文 ID を確認してください。注文はすでに約定または取消されている可能性があります。
現在の状態を確認するには get_positions または ctrader://orders を使用してください。
POSITION_NOT_FOUND
Section titled “POSITION_NOT_FOUND”説明: 指定された positionId の建玉ポジションが見つかりません。
解決方法: ポジション ID を確認してください。現在のポジションを一覧表示するには get_positions を使用してください。
ポジションはすでにクローズされている可能性があります。
MODIFY_FAILED
Section titled “MODIFY_FAILED”説明: 注文変更リクエストが拒否されました。 解決方法: 注文がまだ保留中であること(約定/取消されていないこと)を確認してください。
CANCEL_FAILED
Section titled “CANCEL_FAILED”説明: 注文取消リクエストが拒否されました。 解決方法: 注文がまだ保留中であることを確認してください。約定済みの注文は取消できません。
CLOSE_FAILED
Section titled “CLOSE_FAILED”説明: ポジションクローズリクエストが失敗しました。 解決方法: ポジションが存在し、数量が有効であることを確認してください。
プロトコルおよびタイムアウトエラー
Section titled “プロトコルおよびタイムアウトエラー”TIMEOUT
Section titled “TIMEOUT”説明: タイムアウト期間内に FIX レスポンスを受信できませんでした。 解決方法: FIX 接続の状態を確認してください。ブローカーの応答が遅い可能性があります。 接続状態を確認した後に操作をリトライしてください。
FIX_PROTOCOL_ERROR
Section titled “FIX_PROTOCOL_ERROR”説明: 予期しない FIX プロトコルエラー。 解決方法: 詳細についてはサーバーログを確認してください。プロトコルの不一致を示している可能性があります。
BROKER_REJECTED
Section titled “BROKER_REJECTED”説明: ブローカーがリクエストを明示的に拒否しました。 解決方法: エラー詳細の拒否理由を確認してください。
INTERNAL_ERROR
Section titled “INTERNAL_ERROR”説明: 予期しないサーバーサイドのエラー。 解決方法: サーバーログを確認してください。バグを示している可能性があります。
LOCK_TIMEOUT
Section titled “LOCK_TIMEOUT”説明: タイムアウト期間内にトレードロックを取得できませんでした。 解決方法: 先行する取引操作に時間がかかりすぎています。待ってリトライしてください。 高負荷時、または FIX レスポンスが遅延した場合に発生することがあります。
