Я нашел ошибку: при делении 1 на 2 вместо 0.5 получается 0. Как исправить?

Это не ошибка, а особенность языка MQL.

Дело в том что при делении целого числа на целое в языке MQL4 возвращается целое число. Это конечно не привычно, но необходимо запомнить. Если вы хотите получить вещественное число, то числитель или знаменатель так же должен быть вещественным числом.

Например: 1 / 2=0, 1.0 / 2=0.5, 1 / 2.0=0.5 или 1.0 / 2.0=0.5