Скачать MetaTrader 5

MathCeil тупит (или я?)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пиши статьи, помогай другим разработчикам и зарабатывай
JohnGotti
60
JohnGotti 2015.03.13 06:32 

Начал писать программу, опыта в mql5 ноль, но данная ситуация выходит за рамки приличия:

  Lot = MathCeil((Plan-prs)*100/TP)/100; // Определим размер лота с точностью 0.01 до большего

 Прогонял на тестере и демосчете неделю, никаких математических проблем не было, но сегодня случайно столкнулся со сказочным числом 230:

 Print ("размер позы = ", MathCeil((230*0.01-0)*100/230)/100);  высчитывает  0.02 !!!!

MathCeil((230*0.01-0)*100/230)  дает 2

(230*0.01-0)*100/230   Слава Богу, дает 1, но от этого не легче - ошибка в расчете позы.

 При том, с числами 229 и 231 уже все правильно, другие параметры тоже не были замечены в таких фокусах.

Может, есть какой то Бермудский треугольник чисел в mql5 , где функции и операторы не действуют?

Dmitry Fedoseev
42919
Dmitry Fedoseev 2015.03.13 06:50  

Нормализацию надо делать для предварительных вычислений.

Alert ("размер позиции = ",MathCeil(NormalizeDouble((230.0*0.01-0)*100.0/230.0,8))/100.0);   

JohnGotti
60
JohnGotti 2015.03.13 07:14  
Спасибо) Хорошо, дети и жена не видят мой позор.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий