#property strict в MQL4.

 

Здравствуйте, хотел уточнить особенности режима #property strict.

Если я правильно понимаю то эта инструкция переключает режим компиляции.

При этом изменяется версия MQL4 которая частично повторяет MQL5.

Хотел в советнике добавить коментарии для входных параметров, но без строго режима этого сделать неудалось.

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


Соответственно вопрос:

можноли обойтись без  #property strict для добавления коментариев? 

как искать не критические ошибки ? 

И где полные отличия обновленной версии и старой или можно взять все из   MQL5 ?

 
Vasya Vasya:

Здравствуйте, хотел уточнить особенности режима #property strict.

Если я правильно понимаю то эта инструкция переключает режим компиляции.

При этом изменяется версия MQL4 которая частично повторяет MQL5.

Хотел в советнике добавить коментарии для входных параметров, но без строго режима этого сделать неудалось.

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


Соответственно вопрос:

можноли обойтись без  #property strict для добавления коментариев? 

как искать не критические ошибки ? 

И где полные отличия обновленной версии и старой или можно взять все из   MQL5 ?

Привыкайте к режиму   #property strict.

 
Vasya Vasya:

Здравствуйте, хотел уточнить особенности режима #property strict.

Если я правильно понимаю то эта инструкция переключает режим компиляции.

При этом изменяется версия MQL4 которая частично повторяет MQL5.

Хотел в советнике добавить коментарии для входных параметров, но без строго режима этого сделать неудалось.

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


Соответственно вопрос:

можноли обойтись без  #property strict для добавления коментариев? 

как искать не критические ошибки ? 

И где полные отличия обновленной версии и старой или можно взять все из   MQL5 ?

нет, комменты к переменным без проперти не добавить никак - property strict уже давно как основной режим для написания кода, правьте все переменные, правильно приводите типы и исправляйте ворнинги, а не только криты и будет работать также, качество кода без property strict сильно хуже
 
Aleksey Semenov:
нет, комменты к переменным без проперти не добавить никак - property strict уже давно как основной режим для написания кода, правьте все переменные, правильно приводите типы и исправляйте ворнинги, а не только криты и будет работать также, качество кода без property strict сильно хуже

Спасибо,  посмотрите например  такое предупреждение:

implicit conversion from 'number' to 'string'

для такой строки:

extern string news_2 = 0;

правильно ли я понимаю 0 воспринимется как число. И надо в этом режие его сначало точно приводить к строке например через 


И еще вопрос про версии функций:

в сторой версии MQL4 запись была такой - StrToTime(news_3);

в  MQL5 запись  другая -  StringToTime(news_2);

с  #property strict. какую функцию использовать  StringToTime или  StrToTime.

 
Vasya Vasya:

Спасибо,  посмотрите например  такое предупреждение:

implicit conversion from 'number' to 'string'

для такой строки:

extern string news_2 = 0;

правильно ли я понимаю 0 воспринимется как число. И надо в этом режие его сначало точно приводить к строке например через 

IntegerToString


И еще вопрос про версии функций:

в сторой версии MQL4 запись была такой - StrToTime(news_3);

в  MQL5 запись  другая -  StringToTime(news_2);

с  #property strict. какую функцию использовать  StringToTime или  StrToTime.

extern string news_2 = "0";

это: 5 число

это: "5" строка

 

И все таки  для меня  остался неясным один важный вопрос.

Какой синтаксис при включеном  #property strict

используется конструкции из MQL5 или MQL4 ?

 
Vasya Vasya:

И все таки  для меня  остался неясным один важный вопрос.

Какой синтаксис при включеном  #property strict

используется конструкции из MQL5 или MQL4 ?

Дело не в синтаксисе. "Строгость" означает лишь моё желание закрыть всю вольницу, предоставляемую MQL. Вроде многократной декларации переменных. Могу не использовать. 

В MQL5 смысл не объясню,- там всё не так, как кажется. 

 
Алексей Тарабанов:

Дело не в синтаксисе. "Строгость" означает лишь моё желание закрыть всю вольницу, предоставляемую MQL. Вроде многократной декларации переменных. Могу не использовать. 

В MQL5 смысл не объясню,- там всё не так, как кажется. 

Там #property strict включён по-умолчанию

 
Vasya Vasya:

И все таки  для меня  остался неясным один важный вопрос.

Какой синтаксис при включеном  #property strict

используется конструкции из MQL5 или MQL4 ?

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

 
Valeriy Yastremskiy:

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

вроде как ещё игнорируются некоторые криты вроде выхода за пределы массива - так что это ещё и строгий режим исполнения программы

 
Aleksey Semenov:

вроде как ещё игнорируются некоторые криты вроде выхода за пределы массива - так что это ещё и строгий режим исполнения программы

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