При написании советника для работы с лотами от 0.01 до 0.99 столкнулся с проблемой присваивания переменным дробных чисел. Вместо того чтобы присвоить переменной значение 0.15 ей присваивается иногда значение совершенно другое, которое по алгоритму работы советника просто быть не может. Ошибки в самом советнике нет. Хотелось бы получить толковый совет как решить эту проблему. Ну и для примера еще кусочек кода
double Lot, Lot1, Lot2;
if(Lot1==Lot2)
{Lot=Lot1;}
Значения Lot1 и Lot2 вычисляются по разным алгоритмам и принимают значение от 0.01 до 0.99, при их равенстве значению Lot должно присваиваться значение Lot1, но это происходит не всегда. При работе с целыми числами такой проблемы нет, присвоение происходит нормально. При тестировании именно этого кусочка значения выводились на экран, так что я видел когда должно было произойти присвоение, а когда нет.
Может начать награждать званиями типа "лентяй" или соской авторов подобных постов ? А то, похоже, остальные усилия успеха не имеют: опять по сотне раз одно и то же.....
Да я лентяй, поэтому изучаю язык MQL4 и пишу советник, мне лень самому выставлять ордера и анализировать рынок. А вот из за таких постов становится проблематично найти необходимую инфу.
ЛЕНЬ - ДВИГАТЕЛЬ ПРОГРЕССА
Да я лентяй, поэтому изучаю язык MQL4 и пишу советник, мне лень самому выставлять ордера и анализировать рынок. А вот из за таких постов становится проблематично найти необходимую инфу.
ЛЕНЬ - ДВИГАТЕЛЬ ПРОГРЕССА
В данном случае - это тормоз
Да я лентяй, поэтому изучаю язык MQL4 и пишу советник, мне лень самому выставлять ордера и анализировать рынок. А вот из за таких постов становится проблематично найти необходимую инфу.
ЛЕНЬ - ДВИГАТЕЛЬ ПРОГРЕССА
А почему не
if(NormalizeDouble(lot1,2)==NormalizeDouble(lot2,2)) ??
или интересней:
double lt1, lt2;
lt1=NormalizeDouble(lot1,2);
lt2=NormalizeDouble(lot2,2);
if(lt1==lt2)
{
}
Да я лентяй, поэтому изучаю язык MQL4 и пишу советник, мне лень самому выставлять ордера и анализировать рынок. А вот из за таких постов становится проблематично найти необходимую инфу.
ЛЕНЬ - ДВИГАТЕЛЬ ПРОГРЕССА
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
При написании советника для работы с лотами от 0.01 до 0.99 столкнулся с проблемой присваивания переменным дробных чисел. Вместо того чтобы присвоить переменной значение 0.15 ей присваивается иногда значение совершенно другое, которое по алгоритму работы советника просто быть не может. Ошибки в самом советнике нет. Хотелось бы получить толковый совет как решить эту проблему. Ну и для примера еще кусочек кода
double Lot, Lot1, Lot2;
if(Lot1==Lot2)
{Lot=Lot1;}
Значения Lot1 и Lot2 вычисляются по разным алгоритмам и принимают значение от 0.01 до 0.99, при их равенстве значению Lot должно присваиваться значение Lot1, но это происходит не всегда. При работе с целыми числами такой проблемы нет, присвоение происходит нормально. При тестировании именно этого кусочка значения выводились на экран, так что я видел когда должно было произойти присвоение, а когда нет.