MT4 MT4 実行時エラー
4012
- 定数名
ERR_REMAINDER_FROM_ZERO_DIVIDE- メッセージ
remainder from zero divide- 意味
- 0で割った余り(%)を計算した
MT4エラー4012とは
整数の割り算の余り(% 演算子)で、割る数が 0 だったときのエラーです。0 で割ったとき(エラー4013)と同じく、計算の前に 0 でないか確かめる必要があります。
MT4エラー4012の主な原因
- a % b の b が 0 になっている(入力値の期間や本数が 0 など)
- 計算で求めた値が想定外に 0 になっている
MT4エラー4012の対処法
- 余りを求める前に、割る数が 0 でないか if 文で確認する
- パラメーターに 0 が入らないよう、OnInit() で入力値をチェックする
コード例(MQL4)
// 割り算の前に分母を確認する(zero divide / 4013 対策)(MQL4)
double LotsByRisk(double riskMoney, double slPips)
{
double tickValue = MarketInfo(Symbol(), MODE_TICKVALUE);
double pip = (Digits == 3 || Digits == 5) ? Point * 10 : Point;
double tickSize = MarketInfo(Symbol(), MODE_TICKSIZE);
if(tickValue <= 0 || tickSize <= 0 || slPips <= 0)
return 0; // 値が取れていないので計算しない
double moneyPerLot = slPips * pip / tickSize * tickValue;
if(moneyPerLot <= 0) return 0;
return riskMoney / moneyPerLot;
}MetaEditor(MT4)でコンパイルできることを確認済みです。自分のEAに組み込むときは、変数名や設定値を合わせてください。












