MARKET
MT4ツールを、数字で作る。— Team REI|平日の朝に「相場分析」を更新しています|

エラー138(ERR_REQUOTE)― リクオート・約定できなかった|MQLエラーコード

MQL4 よく見るエラーコードERR_REQUOTE

エラー138ERR_REQUOTE ― 価格が動いて約定できなかった

送った注文の価格が、サーバー側の現在値からもう離れてしまい、その価格では約定できなかったときに出る(いわゆるリクオート)。

1主な原因

  • 値動きが速い時間帯(指標発表直後等)に発注した
  • Slippage(許容ずれ幅)を0など厳しい値にしていた
  • 処理に時間がかかり、その間に価格が動いた

2対処法

✓ 許容ずれ幅を持たせ、取り直して再試行する

OrderSendのslippage引数を0にせず、数pips分の余裕を持たせる。それでも失敗したらRefreshRatesで最新値を取り直し、数回までリトライする作りにする。

3発生する例と直し方

// 悪い例:slippage=0で1回だけ送る
bool ok = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 0, 0, 0) > 0;

// 直した例:許容ずれ幅を持たせ、失敗したら取り直して再試行
int ticket = -1;
for(int i = 0; i < 3 && ticket < 0; i++)
{
   RefreshRates();
   ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0);
}

4MQL5では

🔁 差分

MQL5ではTRADE_RETCODE_REQUOTE(コード10004)。この状況自体はMQL4・MQL5どちらでも起こり得る。

5関連するエラー

ERR_OFF_QUOTES(136)ERR_PRICE_CHANGED(135)

REI-FX&BO OFFICIAL LINE

ツールのダウンロードパスワードは
公式LINEで、すぐ届きます。

友だち追加の自動返信でパスワードをお送りします。
新しいツールの公開や、検証でわかったことも先にお知らせします。

全ツールのパスワード新作ツールをいち早く配信は月1〜2回だけ
LINEで友だち追加 パスワードを受け取る ›

追加後にひとことメッセージをいただけると、ツールづくりの参考にします。