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

 
wlad:

#property description



значение надо, строчное " " хотя бы
wlad:

в индикаторе не работает, задаю любое значение

#property indicator_height 90

вероятно работает только для индикаторов, отображающихся в отдельном окне. хотя да, высота не меняется.
 
evillive:

вероятно работает только для индикаторов, отображающихся в отдельном окне.

на них и пробывал, но не работает


#property description

работает - ложная тревога

 
VCup:

Приветствую!

void OnStart()
  {
//---int 
   ENUM_TIMEFRAMES tf;
   tf = ENUM_TIMEFRAMES(Period());
   //
  }
Прошу разъяснить, что значит это предупреждение.

Типы разные.
 
Zhunko:
Типы разные.


А как же тогда понимать это?

 
VCup:


А как же тогда понимать это?

Тогда одинаковые. Может ошибка компилятора?
 
Barbabiya:

Здравствуйте, уважаемые форумчане.

После обновления терминала до 600 билда неожиданно столкнулся с проблемой некорректных математических расчетов в новом MQL4.

Вот часть кода для примера, простейшие арифметические действия:



А вот результат исполнения:

Почему неправильный результат получился? В результате деления почему-то отбрасывается дробная часть. Преобразование DoubleToString(х, 5) дает тот-же результат.

Как бороться с таким косяком?

Вчера тоже решал эту проблему.
В новой справке по MQL4 в разделе : Основы языка --> Типы данных --> Приведение типов, многое описано, и есть вот такой пример:

double x=1/2; // выражение типа int приводится к целевому типу double,
Print("x = 1/2; ",x); // результат: 0.0

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

double y = (double) 5/10;   // результат: 0,5
 
Пользовательские enum'ы -в них похоже сортировка не работает в выпадающем списке - когда свойства вызываешь.
 
Zhunko:
Тогда одинаковые. Может ошибка компилятора?


Хотя вот так компилятор предупреждения не выдает. Значит ошибка в документации.

void OnStart()
  {
//---int 
   int tf = Period();
   //
  }
 

Доброго времени суток, в пятницу обновился до 600 билда. И мой индикатор стал не корректно отображаться.

Обвел кружком справа.... И нынешнее отображение:....

Подскажите, как можно исправить?! Если что-то нужно то пожалуйста опишите, что нужно. Я предоставлю, ибо я в этом ничего не понимаю....

 
VCup:

Приветствую!

Прошу разъяснить, что значит это предупреждение.

void OnStart()
  {
//---int 
   ENUM_TIMEFRAMES tf;
   tf = Period();
   //
  }

Как-то так лучше:

//---
enum workingPeriod 
   {
   wtfMN=PERIOD_MN1,       //  Monthly
   wtfW1=PERIOD_W1,        //  Weekly
   wtfD1=PERIOD_D1,        //  D1
   wtfH4=PERIOD_H4,        //  H4
   wtfH1=PERIOD_H1,        //  H1
   wtfM30=PERIOD_M30,      //  M30
   wtfM15=PERIOD_M15,      //  M15
   wtfM5=PERIOD_M5,        //  M5
   wtfM1=PERIOD_M1,        //  M1
   wtfM0=PERIOD_CURRENT,   //  Текущий
   };
input workingPeriod workTF  = wtfM0; // Рабочий период:
//---
Причина обращения: