(‘both’, ‘MQL4 / MQL5 両対応’)数学
NormalizeDouble小数の桁数を丸めて誤差を防ぐ
計算の途中で出てくる、コンピューター特有の細かい誤差(0.1+0.2が0.30000000004になる、など)を取り除く。注文の価格・ロット数を送る前に必ず通す関数。
1書式
double NormalizeDouble(
double value,
int digits // 残したい小数点以下の桁数
);
書式はMQL4・MQL5で同じ。
2引数
| 引数 | 内容 |
|---|---|
| value | 丸めたい値 |
| digits | 残す小数点以下の桁数(価格ならDigitsを渡すのが定石) |
3戻り値
指定した桁数に丸めた値。
4使用例
double price = Ask + 20 * Point; price = NormalizeDouble(price, Digits); Print(price);
MetaEditorでコンパイル0エラー・0警告を確認済み。
6よくある罠
⚠ 実務で踏んだもの
- 注文の価格・損切り・利確を送る前は、必ずこれを通す。通さずに送ると、見た目は同じ数字でも内部の誤差のせいで「不正な価格」としてエラーになることがある。