Янв 26

Выпущен MetaTrader 4 build 574 с обновленным языком MQL4 и Маркетом приложений

Posted in Forex, MCP

Для обновления на новый MetaTrader 4 build 574 клиентского терминала MetaTrader 4 достаточно подключиться к серверу demo.metaquotes.net:443
После окончания данного этапа бета-тестирования будет выпущен финальный билд нового терминала MetaTrader 4. Подробности по ссылке http://forum.mql4.com/ru/60074
Язык программирования торговых стратегий MQL4 существенно доработан и приближен по функционалу к языку MQL5. Добавлены классы и структуры, расширен до уровня С++ синтаксис языка, что позволило реализовать все преимущества объектно-ориентированного программирования. Это означает, что теперь писать торговых роботов и технические индикаторы стало гораздо проще и быстрее, а экспертописатели получили новые возможности в единой среде разработке MetaEditor – отладку, профилировку, автодополнение и т.д.
Добавлена вкладка «Маркет» для покупки и скачивания платных и бесплатных экспертов, сигналов и скриптов из MetaTrader 4 Маркет. Теперь любой разработчик MQL4-программ может стать Продавцом и предложить свои продукты миллионам трейдеров, торгующих через MetaTrader 4.
Скачать демоверсию или купить полнофункциональное платное приложение на MQL4 из MetaTrader 4 Маркет можно прямо из терминала. Каждая покупка надежно защищена, разрешает от пяти активаций на разных компьютерах и не имеет никаких ограничений по времени работы, типу счета или брокеру. Любой платный индикатор или советник можно запустить перед покупкой в тестере стратегий MetaTrader 4 в визуальном режиме, чтобы получить представление о товаре.
Добавлена возможность отсылки Push-уведомлений о торговых транзакциях, происходящих на клиентском счете: добавление, изменение и удаление ордеров, активация отложенных ордеров и SL-TP, попадание счета под Margin Call и Stop Out. Push-уведомления приходят на мобильные терминалы, установленные на устройства под управлением iOS и Android, не зависят от номера мобильного телефона и доставляются при наличии интернет-подключения.

Изменения в языке MQL4

Язык MQL4 добавлены новые графические объекты и новые функции по работе с графиками. Стандартная библиотека из MQL5 будет портирована и в MQL4, что предоставит для разработчиков программ новые возможности по созданию собственных графических интерфейсов и торговых библиотек. Теперь в MetaTrader 4 можно создавать полноценные приложения с использованием ресурсов.
Добавлены новые типы данных char, short, long, uchar, ushort, uint, ulong и double. Это позволит легко переносить коды из других C++ подобных языков. Данные разного типа обрабатываются с разной скоростью. Целочисленные данные обрабатываются быстрее всего. Для обработки данных двойной точности используется специальный сопроцессор. Однако из-за сложности внутреннего представления данных с плавающей точкой они обрабатывается дольше, чем целочисленные. Введена операция приведения типов.
Строки теперь представлены в формате Unicode, раньше они были в формате ANSI (однобайтовые). Это необходимо учитывать, если программа использует DLL и передает в них строковые переменные.
Предопределенная переменная Volume теперь имеет тип ulong, таймсерии для доступа к объемам также представлены массивами типа ulong. В старых программах MQL4 рекомендуется делать явное приведение данных этого типа к целевому типу, чтобы избежать ошибки переполнения типа. Добавлены структуры и классы, указатели объектов, тип void и ключевое слово this для получения объектом ссылки на самого себя. Поддерживаются все стандарты объектно-ориентированного программирования:

  • Инкапсуляция и расширяемость типов
  • Наследование
  • Полиморфизм
  • Перегрузка
  • Виртуальные функции

ООП позволяет писать программы с использованием классов, что облегчает отладку и разработку больших программ, позволяет многократно использовать наработки благодаря наследованию. Но это не означает, что теперь нельзя писать на MQL4 в процедурном стиле, как это было раньше. Вы можете писать свои программы как и раньше, если вам не нужны новые возможности.
Предопределенные функции init(), deinit() и start() остались для совместимости, но вместо них теперь можно использовать OnInit(), OnDeinit(), OnStart(), OnCalculate(), OnTick(). Кроме того, добавились новые предопределенные функции-обработчики OnTimer(), OnChartEvent(), OnTester(). В старом MQL4 предопределенные функции могли иметь любые параметры и любой тип возврата, вызов этих функций осуществлялся не по сигнатуре, а по имени. В новом MQL4 все предопределенные функции должны точно соответствовать своим сигнатурам, то есть иметь четко определенный состав параметров и тип возврата.
Имена переменных теперь не могут содержать спецсимволы и точки, а также именами не могут быть новые ключевые слова языка MQL4. Старые программы на MQL4 можно будет прогнать через новый компилятор и легко исправить все такие ошибки по сообщениям компилятора.
Приоритет операций теперь приведен к стандартам языка Cи. В старых программах MQL4 для надежности вы можете расставить круглые скобки для явного указания приоритета, если не уверены.
В логических операциях теперь используется укороченная проверка условия. В старой версии MQL4 вычислялись все выражения, и только потом производилась проверка условия. Например, пусть есть проверка двух условий с использованием логического И if(condition1 && condition2)
{
// некоторый блок операций
}
Если выражение condition1 окажется равным false, то вычисление выражения condition2 проводиться уже не будет, так как результат false && true все равно будет равен false.
ArrayCopyRates() также изменила свое поведение, раньше она производила виртуальное копирование в массив double[][6], теперь же производится виртуальное копирование в массив MqlRates[]. Для совместимости осталось копирование в массив double[][6], но это копирование не виртуальное, а реальное.
В файловых операциях количество одновременно открытых файлов теперь может достигать 64, в старом MQL4 было не более 32. При этом раньше файлы всегда открывались в режиме FILE_SHARE_READ, FILE_SHARE_WRITE, теперь желательный режим открытия нужно указывать явно.
Изменилась также работа с функциями, областью видимости переменных и освобождением памяти в локальных массивах. Так как изменений оказалось достаточно много, то для обеспечения максимальной совместимости со старым подходом к написанию программ MQL4 было решено ввести новое свойство #property strict. При создании новой программы MQL4 с помощью мастера MQL это свойство всегда добавляется в шаблон.

Поделитесь статьей со своими друзьями
Общайтесь со мной:
comments: Closed

Comments are closed.