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

 

Вроде всё работает.

 У меня маленькое пожелание  - а нельзя ли сделать список функций выпадающий  по Alt+M сделать постоянно видимым в окошке "Navigator"? Было бы очень удобно для навигации по коду. 

 
BorisMQL4:
Можно ли как то настраивать Панель инструментов как это было возможно ранее?

Да, кликните правой кнопкой мыши на существующем элементе панели и выберите "Настроить".


Все как в MetaEditor 4.

 
Renat:

Какие есть отличия от старой версией 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, скорость выполнения и гораздо более жесткий контроль качества.

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

Можно еще дополнить? Если это не так, то поправите(нет времени на бета тест и полную проверку). (поэтому буду писать в конце (?) чтобы не выглядело как абсолютная истина):

  • Строки стали юникодные (2 байта). Поэтому алгоритмы основанные на манипуляции 1-байтовыми символами будут работать некорректно или вовсе не будут (?)
  • Нужно явно указывать вторую и выше размерность массива при описании параметров ф-ции (?)
  • Локальные переменные и массивы не инициализируются автоматически. (?)
  • Массивы по умолчанию теперь не static (?)
  • Строки с более чем 256 символов теперь не будут усечены. (?)
  • Некоторые константы изменили свое внутренне представление. Например периоды графиков начина с Н1 (?)
  • ...
Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 

Список точек входа для новых MQL4-программ

1. Для совместимости с существующими исходниками остаются всем известные - init, start, deinit

2. Добавляются:

OnInit, OnDeinit (для экспертов, индикаторов и скриптов, при этом одновременное существование функций init и OnInit, deinit и OnDeinit не допускается)

OnStart для скриптов (одновременное существование OnStart и start не допускается)

OnTick для экспертов (одновременное существование OnTick и start не допускается)

OnCalculate для индикаторов (одновременное существование OnCalculate и start не допускается)

3. Также добавляются:

OnTimer для экспертов и индикаторов

OnChartEvent для экспертов и индикаторов

OnTester для экспертов

 

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

Со строками проблем нет - внутри они юникодные, автоматически конвертируются в ANSI при использовании за пределами терминала (отсылка комментов в ордерах), включая автоматическую перекодировку туда/обратно при передаче в DLL. То есть, совместимость полная.

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

Массивы в MQL4 никогда не были статиком, а наоборот всегда были динамическими.

Нет, ограничение на 256 символов больше нет.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
stringo:

Список точек входа для новых MQL4-программ

1. Для совместимости с существующими исходниками остаются всем известные - init, start, deinit

2. Добавляются:

OnInit, OnDeinit (для экспертов, индикаторов и скриптов, при этом одновременное существование функций init и OnInit, deinit и OnDeinit не допускается)

OnStart для скриптов (одновременное существование OnStart и start не допускается)

OnTick для экспертов (одновременное существование OnTick и start не допускается)

OnCalculate для индикаторов (одновременное существование OnCalculate и start не допускается)

3. Также добавляются:

OnTimer для экспертов и индикаторов

OnChartEvent для экспертов и индикаторов

OnTester для экспертов

А OnTrade и OnTradeTransaction планируються?
 
Renat:

Может студия русская стоит?

Да, русская. Это критично?
 
fyords:
Да, русская. Это критично?

Не критично кроме кракозяб фраз на русском языке. Этот текст вычитывается из ответов студии.

Мы попробуем решить эту проблему.

 
Renat:

Не критично кроме кракозяб фраз на русском языке. Этот текст вычитывается из ответов студии.

Мы попробуем решить эту проблему.

Понятно, спасибо, а насчет нахождения 5м едитором студии вопрос решится или это у меня проблемы какие-то?
 
Urain:
А OnTrade и OnTradeTransaction планируються?
К сожалению, нет.