КАК ЭТО ВООБЩЕ ВОЗМОЖНО ????

 
Вот код, условие понятные я надеюсь самое главное это и для меня не понятное как может быть НЕ РАВНЫ OrderOpenPrice() != SellOpenOrder5 если их значения одинаковы что и показывает Print...

if( IsTradeAllowed() == true && (buyorder1>0 || sellorder1>0) )
{
for(int d1=OrdersTotal()-1;d1>=0;d1--) // просмотр всех ордеров и позиций
{
if(OrderSelect(d1, SELECT_BY_POS, MODE_TRADES)==true)
{
if(OrderSymbol() == TSymbol && OrderMagicNumber() == inumber && OrderType() == 3 && OrderOpenPrice() != SellOpenOrder5)
{
Print("УДАЛЕНИЕ ОРДЕРА");
bool resultSellOrderDel = OrderDelete(OrderTicket(), CLR_NONE);
Print("resultSellOrderDel ", resultSellOrderDel, " OrderOpenPrice() ",DoubleToStr(OrderOpenPrice(), 8)," SellOpenOrder5 ",DoubleToStr(SellOpenOrder5, 8) );
}
}
else
Print("OrderSelect() вернул ошибку - ", GetLastError());
}
}

вот что пишет Print:

02:17:03 2007.01.02 09:24 Сf2 EURUSD,H4: УДАЛЕНИЕ ОРДЕРА
02:17:03 2007.01.02 09:24 Сf2 EURUSD,H4: delete #6 sell limit 0.80 EURUSD at 1.3318 sl: 0.0000 tp: 1.3255 ok
02:17:03 2007.01.02 09:24 Сf2 EURUSD,H4: resultSellOrderDel 1 OrderOpenPrice() 1.33180000 SellOpenOrder5 1.33180000
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: open #7 sell limit 0.80 EURUSD at 1.3318 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: УДАЛЕНИЕ ОРДЕРА
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: delete #7 sell limit 0.80 EURUSD at 1.3318 sl: 0.0000 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: resultSellOrderDel 1 OrderOpenPrice() 1.33180000 SellOpenOrder5 1.33180000
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: open #8 sell limit 0.80 EURUSD at 1.3318 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: УДАЛЕНИЕ ОРДЕРА
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: delete #8 sell limit 0.80 EURUSD at 1.3318 sl: 0.0000 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: resultSellOrderDel 1 OrderOpenPrice() 1.33180000 SellOpenOrder5 1.33180000
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: open #9 sell limit 0.80 EURUSD at 1.3318 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: УДАЛЕНИЕ ОРДЕРА
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: delete #9 sell limit 0.80 EURUSD at 1.3318 sl: 0.0000 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: resultSellOrderDel 1 OrderOpenPrice() 1.33180000 SellOpenOrder5 1.33180000
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: open #10 sell limit 0.80 EURUSD at 1.3318 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: УДАЛЕНИЕ ОРДЕРА
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: delete #10 sell limit 0.80 EURUSD at 1.3318 sl: 0.0000 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: resultSellOrderDel 1 OrderOpenPrice() 1.33180000 SellOpenOrder5 1.33180000
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: open #11 sell limit 0.80 EURUSD at 1.3318 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: УДАЛЕНИЕ ОРДЕРА
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: delete #11 sell limit 0.80 EURUSD at 1.3318 sl: 0.0000 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: resultSellOrderDel 1 OrderOpenPrice() 1.33180000 SellOpenOrder5 1.33180000
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: open #12 sell limit 0.80 EURUSD at 1.3318 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: УДАЛЕНИЕ ОРДЕРА
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: delete #12 sell limit 0.80 EURUSD at 1.3318 sl: 0.0000 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: resultSellOrderDel 1 OrderOpenPrice() 1.33180000 SellOpenOrder5 1.33180000
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: open #13 sell limit 0.80 EURUSD at 1.3318 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: УДАЛЕНИЕ ОРДЕРА
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: delete #13 sell limit 0.80 EURUSD at 1.3318 sl: 0.0000 tp: 1.3255 ok
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: resultSellOrderDel 1 OrderOpenPrice() 1.33180000 SellOpenOrder5 1.33180000
02:17:03 2007.01.02 09:25 Сf2 EURUSD,H4: open #14 sell limit 0.80 EURUSD at 1.3318 tp: 1.3255 ok
 
А Вы знаете про особенности сравнения вещественных чисел (в любых С-подобных языках)?
 

Это одна из самых постоянных тем на форуме. А поиском люди как не пользовались, так и не будут. А к похожим, видимо, ещё не привыкли :-)

Tigritto, вот одна тема из "похожих":
Сравнение вещественных чисел

 
Надо чтобы перед входом на форум страница открывалась с плакатом:

ТЫ НОРМАЛИЗОВАЛ DOUBLE?!

 

получаем два значения double 1.3318 и 1.3318 и что мне тут надо нормализовывать ?
Если применять NormalizeDouble результат будет тот же

 
Вы, конечно, хорошо разбираетесь в вопросе, читали справку по Print()
void Print( ...)
Печатает некоторое сообщение в журнал экспертов. Параметры могут иметь любой тип. Количество параметров не может превышать 64.

Массивы нельзя передать в функцию Print(). Массивы должны быть напечатаны поэлементно.

Данные типа double выводятся с 4 десятичными цифрами после точки. Чтобы получить большую точность, следует использовать функцию DoubleToStr().
Данные типов bool, datetime и color будут напечатаны в виде чисел.
 
Rosh, хорошо если Вы думаете что я не читал справку и так далие то я думаю Вы сможете мне помочь и добавить в мой код "нормализацию" для double, помогите пожалуйста
 
Tigritto:
Rosh, хорошо если Вы думаете что я не читал справку и так далие то я думаю Вы сможете мне помочь и добавить в мой код "нормализацию" для double, помогите пожалуйста
Не мучтесь, просто никогда не проверяйте вещественные числа на равернство.
НИКОГДА.
 
всем спасибо я сделаю как написано в статье Сравнение вещественных чисел
Причина обращения: