
MT5 MT5 取引サーバーのリターンコード
10014
- 定数名
TRADE_RETCODE_INVALID_VOLUME- メッセージ
invalid volume- 意味
- ロット数(取引数量)が不正
MT5エラー10014とは
注文のロット数が、銘柄の最小ロット・最大ロット・刻み幅に合っていないときのリターンコードです。
ログの表示例
CTrade::OrderSend: market buy 0.015 USDJPY [invalid volume]
「エキスパート」タブまたは「操作履歴」タブに表示されます。数値や表記の細部は、ビルド・ブローカー・EAの作りによって異なります。
MT5エラー10014の主な原因
- ロットが SYMBOL_VOLUME_MIN より小さい、または SYMBOL_VOLUME_MAX より大きい
- ロットが SYMBOL_VOLUME_STEP の倍数になっていない
- 一部決済の数量が不正(残りが最小ロット未満になるなど)
- ロット計算の結果を丸めていない
MT5エラー10014の対処法
- SYMBOL_VOLUME_MIN / MAX / STEP を取得し、刻み幅で切り捨ててから範囲内に収める
- 計算したロットを Print() で出力して確認する
コード例(MQL5)
// ロット数を銘柄の最小・最大・刻み幅に合わせる(10014 invalid volume 対策)(MQL5)
double NormalizeVolume(const string symbol, double lots)
{
double minV = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN);
double maxV = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX);
double step = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP);
if(step <= 0) return 0;
lots = MathFloor(lots / step) * step;
lots = MathMax(minV, MathMin(maxV, lots));
int digits = (int)MathMax(0, -MathFloor(MathLog10(step)));
return NormalizeDouble(lots, digits);
}MetaEditor(MT5)でコンパイルできることを確認済みです。自分のEAに組み込むときは、変数名や設定値を合わせてください。












