Бета версия MetaTrader 4 IDE, включающая в себя новый компилятор MQL4 и редактор

 

Начало темы:

Ниже приложена бета-версия IDE, единая для MetaTrader 4/MQL4 и MetaTrader 5/MQL5. Это предварительная версия для публичного ознакомления.

Какие есть отличия от старой версией MQL4:

  • Изменился приоритет логических операций И/ИЛИ. Теперь всё как в классическом C/C++

  • Введена укороченная оценка логических выражений. Теперь при досрочном вычислении логического выражения оставшиеся подвыражения не вычисляются. Как в C/C++.

  • В операторе switch теперь используются исключительно целочисленные значения. Раньше можно было использовать вещественные

  • Теперь нельзя использовать точку в именах переменных. Также в именах переменных нельзя использовать символ '@', '$', '?'

  • Ужесточились требования к функции start. Раньше в функции start можно было указывать параметры. Теперь все точки входа init, start, deinit, OnInit, OnStart, OnTick, OnTimer и тд. должны точно соответствовать своим сигнатурам

  • В связи с расширением состава ключевых слов теперь нельзя использовать имена типа short, long, float, const, virtual, input, delete, new, do, char

  • Теперь импортируемые dll-функции не могут принимать в качестве параметра массивы строк. Как в MQL5

  • Теперь появились предопределённые имена переменных _Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed, которые могут войти в конфликт с простыми переменными, объявленными в существующих исходниках под такими же именами

  • Тип datetime стал 8ми байтовым как в MQL5.

Различия не фатальные и легко исправляются в коде. Взамен становятся доступна масса возможностей MQL5, скорость выполнения и гораздо более жесткий контроль качества.


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

Обсуждение на MQL5 форуме: https://www.mql5.com/ru/forum/13651

Файлы:
 

Меня больше всего это напрягло:

Renat:

Теперь импортируемые dll-функции не могут принимать в качестве параметра массивы строк. Как в MQL5

Почему нельзя сохранить совместимость? Опять переписывать? Массивы MQL4-строк остаются? Если остаются, то непонятно, как вы это запретили и зачем?
 
Речь только о передаче в DLL.
 
Renat:

Обсуждение на MQL4 форуме: https://www.mql5.com/ru/forum/13651

:)
 
Может действительно сделать МТ4 форум как раздел МТ5 форума ?
 
Раньше, при компилировании, не выдавались предупреждения если имена глобальных и локальных переменных совпадали, а теперь выдает - " declaration of 'dist' hides global declaration at line 63", также это предупреждение выдает при совпадении имен формальных параметров функции и имен глобальных переменных. Это критично и может повлиять на поведение программы? или это чисто стилистически неправильно, например, чтобы не было путаницы в сложных проектах? (Уже привык области видимости переменных держать в голове и сходные по назначению переменные часто называю одинаковыми именами)
 
zenz:
... Это критично и может повлиять на поведение программы?...
Поведение программы не изменится, если было ошибочное использование переменной в 4ке, оно сохранится и в новом компиляторе.
 
Скомпилировал файл в новом редакторе и подсунул его МТ4.509 - тот его удалил... :(
 
TarasBY:
Скомпилировал файл в новом редакторе и подсунул его МТ4.509 - тот его удалил... :(

Это закономерно, так как старый терминал ничего не знает про новый формат языка.

Пока мы выпустили для предварительного тестирования только редактор и компилятор. Через пару недель выпустим бета-версию нового терминала, который может работать с новым форматом программ.

Рекомендую почитать приведенные в исходном сообщении ссылки - там практически все рассмотрено.

 
Renat:

Это закономерно, так как старый терминал ничего не знает про новый формат языка.

Пока мы выпустили для предварительного тестирования только редактор и компилятор. Через пару недель выпустим бета-версию нового терминала, который может работать с новым форматом программ.

Рекомендую почитать приведенные в исходном сообщении ссылки - там практически все рассмотрено.


Пока не смотрел, но, лучше тестер бы сделали как МТ5, с котировками :), да и к ресурсам процессоров не мешало бы прикрутить тестер.
 
M2012K:

Пока не смотрел, но, лучше тестер бы сделали как МТ5, с котировками :), да и к ресурсам процессоров не мешало бы прикрутить тестер.


Помните мультфильм "Каша из топора"? ;)))

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