Выпущен MetaTrader 4 Client Terminal build 600 с обновленным языком MQL4 и Маркетом приложений - страница 20

 
Код
Print(MathLog(-1));
Print(MathLog(0));


При компиляции и исполнении в 509 пишет
-1.#IND
-1.#INF

То же самое при компиляции и исполнении в 600.

Но если скомпилировать в 509 и запустить в 600, то выводит следующее:
0
invalid value for MathLog function
 
Rosh:

Не удается воспроизвести, вот код советника и результат работы:


Приведите в кратком виде свой код, который можно скомпилировать и запустить.


Да все правильно у вас написано, мне тоже не удается...
Посмотрел я код в новом редакторе. У меня в функции int start() есть такая конструкция (после вывода инфы на график):
//——————————————————————————— фильтруем сигнал по времени
    if(begintrade!="" && endtrade!="")
     {
      int now=TimeCurrent(),
          start=StrToTime(TimeToStr(now,TIME_DATE)+" "+begintrade),
          finish=StrToTime(TimeToStr(now,TIME_DATE)+" "+endtrade);
      if(finish <= start)
       {
        if(now > finish)
         finish+=24*60*60;
        else
         start-=24*60*60;
       }
      if(now >= finish)
       {
        //какая-то функция
        return(0);
       }
      if(now < start)
        return(0);
     }
и что я увидел:


может быть то, что название переменной совпадает с названием функции и есть причина? В новом редакторе, я так понимаю переменная start не объявлена?
 

Выложили обновление с 602 билдом на наши тестовые серверы MetaQuotes-Demo и MetaQuotes-New MT4 Test. Обновиться можно при подключении к этим серверам.

Из основного:

  • у индикаторов работает принудительная инициализация глобальных переменных при смене таймфрейма или символа у графика - поведение как в 509 билде
  • защита от двойной инициализации экспертов
  • поправки в отладке программ
  • поправки при одновременной массированной торговле с многих экспертов
  • поправка в ArrayBsearch для интовых элементов
 
Renat:

Обратите внимание, что у OneClick трейдинга есть свое указание рабочего размера лота, а у полноценного окна торговли есть свой сохраненный объем:






спасибо

было бы удобнее иметь одно запоминаемое значение объема чем два разных

 
artmedia70:
В терминале Файл-->Открыть каталог данных. Откроется проводник. Войдите в папку MQL4 и положите свои эксперты в папку experts, индикаторы - в indicators, ну и т.д., и т.п. ...


Я уже делал всё так как вы указали, но ничего не изменилось- та же проблема !!!

 
bergkamp.:

ошибку такого рода как понять ? что это значит ? какие меры должен предпринять ?

Это значит, что нужно представить исходник в сервисдеск вместе с описанием деталей.

 
alexey_pak:
Можете прикрепить полный лог терминала и какая версия ОС? Нужно больше подробностей.


Версия OC: Windows 7 максимальная;

Лог файлы терминала Instatrader v.4.00 build 600 (3 feb 2014):

Файлы:
 

В 600 была ошибка, в 602 она осталась, поэтому повторюсь:

Обнаружил глюк с индикаторами при ошибке деления на ноль, изменил для теста осму, чтобы в ней появилась ошибка деления на 0, смотрите видео

>
 
Renat:

Выложили обновление с 602 билдом на наши тестовые серверы MetaQuotes-Demo и MetaQuotes-New MT4 Test. Обновиться можно при подключении к этим серверам.

Из основного:

  • у индикаторов работает принудительная инициализация глобальных переменных при смене таймфрейма или символа у графика - поведение как в 509 билде
Ренат,
не могу понять зачем поддерживать ошибку которая тянется со старого билда?
В справке ведь уже сколько лет стоит как себя правильно должны вести глобальные переменные.
Зачем они тогда нужны если их функтионал убирается и ради чего?
Если надо проинициализировать, то можно же переменные в init() перенести
Какой смысл поддерживать коды написанные неправeльно?
 
По моему, не надо глобальные переменные переинициализировать насильно. Это дело пользователя.