
MT5 MT5 取引サーバーのリターンコード
10006
- 定数名
TRADE_RETCODE_REJECT- メッセージ
rejected- 意味
- 注文が拒否された
MT5エラー10006とは
取引サーバーやブローカーが注文を拒否したときのリターンコードです。理由は返らないことが多く、相場状況・口座の状態・ブローカー側のルールを確認する必要があります。
ログの表示例
CTrade::OrderSend: market sell 1.00 EURUSD [rejected]
「エキスパート」タブまたは「操作履歴」タブに表示されます。数値や表記の細部は、ビルド・ブローカー・EAの作りによって異なります。
MT5エラー10006の主な原因
- ブローカー側のリスク管理や取引制限(指標発表前後など)
- 口座や銘柄の状態による拒否
- サーバー側の一時的な問題
MT5エラー10006の対処法
- 少し時間をあけて再送する
- 手動で同じ注文が通るか確認する
- 頻発する場合はブローカーに問い合わせる
コード例(MQL5)
// OrderSend が失敗したら retcode を必ず記録する(4756 対策)(MQL5)
#include <Trade\Trade.mqh>
CTrade trade;
bool BuyAndLog(double lots)
{
if(trade.Buy(lots, _Symbol))
{
uint rc = trade.ResultRetcode();
if(rc == TRADE_RETCODE_DONE || rc == TRADE_RETCODE_PLACED) return true;
}
// 4756 は「送信に失敗した」という意味だけ。本当の原因は retcode にある
PrintFormat("注文失敗 error=%d retcode=%u (%s) comment=%s",
GetLastError(), trade.ResultRetcode(),
trade.ResultRetcodeDescription(), trade.ResultComment());
return false;
}
// CTrade を使わない場合
bool SendRaw(MqlTradeRequest &req)
{
MqlTradeResult res;
ZeroMemory(res);
if(!OrderSend(req, res))
{
PrintFormat("OrderSend error %d, retcode=%u, comment=%s", GetLastError(), res.retcode, res.comment);
return false;
}
return true;
}MetaEditor(MT5)でコンパイルできることを確認済みです。自分のEAに組み込むときは、変数名や設定値を合わせてください。












