取引エラーの対処方法
約定、待機注文、ブローカー拒否を区別。 再注文する前に結果を確認します。
手順を読む
- 0:00
取引エラーの対処方法
この動画では MT5 の取引結果とエラーの読み方を説明します。全量約定、一部約定、待機注文、ブローカーによる拒否、結果が未確定の状態を区別します。
- 0:18
取引メソッドのガイドを開く
エムティー五、ドット、エムアールピーシー、ドット、プロを開きます。取引操作の Order Send を選び、コード例の下にある成功確認ガイドを展開します。他の取引メソッドでは、そのメソッドのガイドを使います。
- 0:39
1. HTTP ステータスコードを確認
最初に HTTP ステータスコードを確認します。HTTP ステータスコード二百は、API がリクエストを受信して応答を返したことを示します。次に JSON の本文を読みます。それ以外のコードでは、HTTP エラーと応答本文を先に確認してください。
- 1:05
2. error とブローカー情報を確認
error が null でなければ errorCode と errorMessage を確認します。mqlErrorTradeIntCode と説明が含まれている場合は、そちらも読みます。ブローカーの拒否がこの構造で返ることもあるため、実際のコードに従って対処します。
- 1:28
3. ブローカーの結果を読む
取引リクエストで HTTP ステータスコード二百、かつ API エラーなしの場合、リクエストはブローカーへ送信されています。ただし約定したとは限りません。data の returnedCode、returnedStringCode とメソッド固有の結果を読みます。
- 1:51
成行注文:全量約定か一部約定か
成行の Buy または Sell では、一万九の Done が完了を示します。一万十の Done Partial は一部約定です。約定数量、価格、約定情報を読み、ポジションと履歴で残りの状態を確認します。
- 2:12
注文の受付と約定は別です
成行注文で一万八の Placed は、実行を受け付けた状態で、約定確認ではありません。待機注文では Placed または Done が登録完了を示します。data の order を保存し、Opened Orders を確認します。注文はまだ発動価格を待っています。
- 2:37
市場閉鎖はブローカーによる拒否
error がなくても、data に拒否結果が入ることがあります。一万十八は市場が閉まっている状態です。銘柄の取引時間まで待ちます。data の存在ではなく、返されたコードで取引結果を判断してください。
- 2:59
報告された原因を修正する
資金不足なら数量を減らすか必要な余剰証拠金を確保します。ストップ値が無効なら価格と距離を修正します。数量が無効なら銘柄の範囲と刻みに合わせます。価格がなければ新しい気配値を待ちます。ガイドにはコードと対処が並んでいます。
- 3:24
タイムアウト後は口座状態を確認
タイムアウトやブローカーとの通信切断では、取引結果が未確定になります。再送前に注文、ポジション、履歴を確認し、重複注文を防ぎます。同じブローカーコードが data の returnedCode または error の mqlErrorTradeIntCode に現れる場合があります。
- 3:50
決済と変更には個別のルール
Order Close では決済結果と残りのポジションを確認します。一部決済なら数量が残ります。Order Modify では Done が変更完了、No Changes が指定値はすでに設定済みという意味です。Order Send のルールをすべての取引に適用しないでください。
- 4:15
事前チェックでは注文されません
Order Check は Order Send と異なります。data の mqlTradeCheckResult 内にある返却コードとコメントを読みます。ゼロと Done は事前チェックの成功ですが、注文は作られません。取引は別途送信し、その実行結果を確認します。
- 4:40
取引結果は三つの手順で確認
取引ごとに HTTP ステータスコード、error、そのメソッドのブローカー結果を確認します。注文、約定、ポジションの識別子を適切に保存します。タイムアウトや通信切断の後は、再送前に口座状態を確認してください。