Ошибки, баги, вопросы - страница 1436

 
Всем доброго дня. Добрался до написания советников. Набрал код из примера, нажал откомпилировать и вылезла ошибка с текстом: EX4 Write error. Помогите решить проблему. Понимаю, что спрашиваю наверно уже в 1000 раз. Что то в интернете нашел по этой ошибке, но так и не понял как исправить. Толи запустить Metatrader с параметром /portable, толи скопировать папку MQL4. Вообщем хелп ми плиз.
 
Mehanik85:
Всем доброго дня. Добрался до написания советников. Набрал код из примера, нажал откомпилировать и вылезла ошибка с текстом: EX4 Write error. Помогите решить проблему. Понимаю, что спрашиваю наверно уже в 1000 раз. Что то в интернете нашел по этой ошибке, но так и не понял как исправить. Толи запустить Metatrader с параметром /portable, толи скопировать папку MQL4. Вообщем хелп ми плиз.
Пожалуйста, приложите код из примера для воспроизведение проблемы.
 
Ну это происходит с любым советником, даже если создать новый и без кода нажать компиляцию.
 

Ошибка компиляции: code generation error. #2

void OnStart()
{
        string text = "" + NULL; //при optimize=1
}
 
void OnStart()
{
   double var1=EMPTY_VALUE*2;
   double var2=var1/var1;
   double var3=42; // Any
   Print("var2 больше var3: ",var2 > var3);
   Print("var3 больше var2: ",var3 > var2);
}

 

 
Ilya Malev:

 

Читайте документацию

В результате некоторых операций математического сопроцессора может получиться недействительное вещественное число, которое нельзя использовать в математических операциях и операциях сравнения, так как результат выполнения операций над недействительными вещественными числами неопределен.

А теперь внимание вопрос: чему равняется значение EMPTY_VALUE*2?

 
Slawa:

Читайте документацию

А теперь внимание вопрос: чему равняется значение EMPTY_VALUE*2?

1. Почему в МТ4 и в МТ5 этот код приводит к разному результату (причем в МТ4 к более логичному)?

2. Как определить во время выполнения, является ли число действительным или нет (например, чтобы из-за него не зациклился алгоритм сортировки)

 
Документация по MQL5: Математические функции / MathIsValidNumber
Документация по MQL5: Математические функции / MathIsValidNumber
  • www.mql5.com
Математические функции / MathIsValidNumber - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Поведение разное, из-за более агрессивного оптимизатора для MQL5 кода.
 
Ilyas:
MathIsValidNumber
Спасибо, не знал