Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 593

 

Так как в использовании dll я ниже чайника, рискну спросить здесь: подскажите пожалуйста, как в текущих билдах правильно оформить WinExec("shutdown /r", 0)?

Не обязательно shutdown, у меня пока вообще ничего запустить не удаётся.

Спасибо.

 
Всё, нашёл.
 

Как вариант, спасибо. Хотя мне всё равно не понятно почему такое происходит учитывая нормализацию.

Ещё возможное решение - может кому понадобиться - я перевёл дабл в инт. Так как у меня заранее известна необходимая точность.

 

Здравствуйте. В советнике строка оператора if не выполняется

Alert("sell_stop_open= ", sell_stop_open, " Middle= ", Middle);

if (sell_stop_open != Middle)

{

Alert ("sell_stop_open= Middle");

L=L2;

int ticket3=OrderSend(Symb, OP_SELLSTOP, L, Middle, 2, Maximum+4*Point,Minimum_30, Com, Magic);

}

Когда появляется сообщения Alert перед if я вижу значения sell_stop_open=1.3080, Middle =1.3080, но if не выполняется.

Подскажите, пожалуйста от чего может быть такая ошибка?

 
Garik27p:

Здравствуйте. В советнике строка оператора if не выполняется

Alert("sell_stop_open= ", sell_stop_open, " Middle= ", Middle);

if (sell_stop_open != Middle)

{

Alert ("sell_stop_open= Middle");

L=L2;

int ticket3=OrderSend(Symb, OP_SELLSTOP, L, Middle, 2, Maximum+4*Point,Minimum_30, Com, Magic);

}

Когда появляется сообщения Alert перед if я вижу значения sell_stop_open=1.3080, Middle =1.3080, но if не выполняется.

Подскажите, пожалуйста от чего может быть такая ошибка?


А так.
if (sell_stop_open == Middle)
 
r772ra:

А так.
Так тоже пробовал. Но когда работает на тестере, иногда выполняется, иногда нет.
 
Desead:

Как вариант, спасибо. Хотя мне всё равно не понятно почему такое происходит учитывая нормализацию.

Ещё возможное решение - может кому понадобиться - я перевёл дабл в инт. Так как у меня заранее известна необходимая точность.

Числа типа double имеют свои особенности, поэтому при переводе их в текстовое значение и применяется DoubleToString (функция из нового языка MQL4) или DoubleToStr (функция из прежнего языка). Эти функции преобразуют числовое значение в текстовую строку, содержащую символьное представление числа в указанном формате точности.

Рекомендую почитать "Особенности работы с числами типа double в MQL4". Ну и по форуму можно поискать более подробную инфу.

P./S.: Не думаю, что вариант перевода double в int, когда нужно увидеть double - является подходящим решением.

 
Garik27p:
Так тоже пробовал. Но когда работает на тестере, иногда выполняется, иногда нет.

Вот здесь, ответ.
 
r772ra:
Вот здесь, ответ.


Спасибо!!!
 
Desead:
P./S.: На всякий случай всё же упомяну, что и в справке по NormalizeDouble, в "Примечание", есть частичный ответ на ваш вопрос.

Сама, бывало забывала прописать DoubleToS... и затем удивлённо рассматривала многие цифры после точки. :)

Причина обращения: