
MT5 MT5 取引サーバーのリターンコード
10019
- 定数名
TRADE_RETCODE_NO_MONEY- メッセージ
not enough money- 意味
- 証拠金が不足している
MT5エラー10019とは
注文に必要な証拠金が口座の余剰証拠金より多いときのリターンコードです。ロット数が大きすぎるか、すでにポジションを多く持っていることが原因です。
ログの表示例
CTrade::OrderSend: market buy 10.00 USDJPY [not enough money]
「エキスパート」タブまたは「操作履歴」タブに表示されます。数値や表記の細部は、ビルド・ブローカー・EAの作りによって異なります。
MT5エラー10019の主な原因
- ロット数が口座残高に対して大きすぎる
- 保有ポジションが多く、余剰証拠金が足りない
- バックテストの初期証拠金が少ない
- ロット計算の単位の誤りで想定より大きなロットになった
MT5エラー10019の対処法
- OrderCalcMargin() で必要証拠金を計算し、ACCOUNT_MARGIN_FREE と比べてから注文する
- ロットの上限を設ける
- バックテストでは初期証拠金と口座通貨を確認する
コード例(MQL5)
// 必要証拠金を計算してから発注する(10019 not enough money 対策)(MQL5)
bool HasEnoughMargin(ENUM_ORDER_TYPE type, double lots)
{
double price = (type == ORDER_TYPE_BUY) ? SymbolInfoDouble(_Symbol, SYMBOL_ASK)
: SymbolInfoDouble(_Symbol, SYMBOL_BID);
double margin = 0;
if(!OrderCalcMargin(type, _Symbol, lots, price, margin))
return false;
double freeMargin = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
if(margin > freeMargin)
{
PrintFormat("証拠金不足:必要 %.2f / 余剰 %.2f", margin, freeMargin);
return false;
}
return true;
}MetaEditor(MT5)でコンパイルできることを確認済みです。自分のEAに組み込むときは、変数名や設定値を合わせてください。












