Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Планируешь заказать программу? Узнай, как получить желаемый результат
Владислав
14
Владислав 2015.11.07 19:56 

Есть такая проблема. Не пойму почему советник считает равным два одинаковых числа.

ask=Ask;

bid=Bid; 

if (ask<=TP){usp=1; Alert("tip1 usp1");}

 if (ask>=SL){usp=0; Alert("tip1 usp0");} 

 tiptek=(SL-ask)*100;//вычисление разницы значений

 if(ask<SL) Alert("ask<SL! ",tiptek);

 

И вот что выдаёт при тестировании:

2015.11.07 22:54:44.623 2015.10.20 13:12  skalp EURUSD,M30: Alert: ask<SL!  ask 1.1382 SL1.1382 разность 0


 Не пойму почему программа воспринимает значение ask меньше чем SL. 

Помогите пожалуйста кто-нибудь!

Vasyl Nosal
18213
Vasyl Nosal 2015.11.07 21:28  

Проблему ты конечно класно описал!

 А сколько аск ровняется, а какое значение в SL?????

Mislaid
557
Mislaid 2015.11.08 02:30  
vlad69793:

... Не пойму почему советник считает равным два одинаковых числа.

...

 Я пост не дочитал, но, постановка вопроса мне понравилась.

Мне это напоминает, когда в наш призыв, мы писали сочинения, и перлы из них были опубликованы в газете "Вестник ЛГУ"

"До поступления в ФМШ мои знания равнялись нулю. Теперь они стали во много раз больше." 

Victor Nikolaev
Модератор
14061
Victor Nikolaev 2015.11.08 05:30  
vlad69793:



 Не пойму почему программа воспринимает значение ask меньше чем SL. 


А почему решили что два равных числа?
Ihor Herasko
8453
Ihor Herasko 2015.11.08 07:28  

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

Топикстартеру: для сравнения вещественных чисел нужно либо нормализовать их перед сравнением, либо производить сравнение их абсолютной разницы с DBL_EPSILON

Vasyl Nosal
18213
Vasyl Nosal 2015.11.08 08:23  

Дык.

А что не нормализованые числа плохо сравниваются?

 

Понял о чём вы. 

Владислав
14
Владислав 2015.11.08 18:32  
Scriptong:

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

Топикстартеру: для сравнения вещественных чисел нужно либо нормализовать их перед сравнением, либо производить сравнение их абсолютной разницы с DBL_EPSILON. 

Спасибо. Уже понятнее.

В основном работает нормально, но примерно в 1 из  30 случаев сравнивает не правильно.

Буду пробовать исправлять. 

Владислав
14
Владислав 2015.11.11 17:53  

Всё, исправил. Просто прогнал через NormalizeDouble с 5 знаками.

Всём большое спасибо за участие!

Особая благодарность  Scriptong

Алексей Тарабанов
7220
Алексей Тарабанов 2015.11.11 19:38  
vlad69793:

Всё, исправил. Просто прогнал через NormalizeDouble с 5 знаками.

Значит, Вас ожидает новая встреча с этой проблемой. 
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий