Ограниченная работа с типом float
Проблема
В MQL очень мало функций, которые бы работали с float напрямую. Есть некоторые функции, которые недокументированно умеют работать с float, но этого мало. Нет даже банального sqrt для float.
Такое ограничение не даёт использовать возможность ускорить некритичные к точности расчёты за счёт использования более "короткого" типа данных (float против double).
Кроме того, ценовые данные изначально имеют очень низкую точность, но есть возможность получить их только в тяжелом double
.
Решение
В пределах MQL - нет.
Варианты:
- Сделать обёртки для типа float. Позволит избавиться хотя бы от предупреждений компилятора.
- Делать расчёты во внешних библиотеках, написанных на языках без этого ограничения. Это в любом случае может дать ещё больший прирост скорости расчётов.
В целом, вся платформа заточена на double
, и вряд ли это изменится. Это надо учитывать, уходя из MQL при появлении необходимости в тяжелых расчётах и возможности использования float.