Новая версия платформы MetaTrader 5 build 3300: Быстрая компиляция и улучшенная навигация по коду в MetaEditor

 

В пятницу 20 мая 2022 года будет выпущена обновленная версия платформы MetaTrader 5.

В новой версии мы добавили множество улучшений в редактор исходного кода MetaEditor. Для компиляции теперь можно легко выбрать режим: медленная с оптимизацией кода и быстрая без оптимизации. Последний будет полезен для быстрой проверки кода во время разработки.

Также мы улучшили работу с кодом, добавив команду перехода к реализации метода и включив автоподстановку по нажатию "Tab".

 Новая версия платформы MetaTrader 5 build 3300: Быстрая компиляция и улучшенная навигация по коду в MetaEditor

Помимо этого, мы облегчили процесс отладки MQL5-программ за счет автоматического вывода в список наблюдения локальных переменных.

Подробнее об этих и других изменениях в новой версии платформы MetaTrader 5 читайте ниже.


  1. Terminal: Добавлена возможность изменять размер графического объекта "Прямоугольник", перетаскивая любой из четырех углов.


    Изменяйте прямоугольник, перетаскивая любой из его углов


  2. Terminal: Ускорена отрисовка графического интерфейса.
  3. Terminal: Улучшена поддержка адресов IPv6.
  4. Terminal: Исправлен расчет высоты нижнего поля даты и ширины правого поля цены при первом запуске платформы.
  5. MQL5: Добавлена функция для работы с матрицами и векторами —  RegressionMetric. Она задает метрику для оценки регрессии.
     double vector.RegressionError(const enum lr_error);
     double matrix.RegressionError(const enum lr_error);
     vector matrix.RegressionError(const enum lr_error,const int axis);
    В качестве метрик могут использоваться:
    enum REGRESSION_ERROR
      {
       REGRESSION_MAE,     // Средняя абсолютная ошибка
       REGRESSION_MSE,     // Средняя квадратичная ошибка
       REGRESSION_RMSE,    // Корень из средней квадратичной ошибки
       REGRESSION_R2,      // R в квадрате
       REGRESSION_MAPE,    // Средняя абсолютная ошибка в процентах
       REGRESSION_MSPE,    // Среднеквадратичная ошибка в процентах
       REGRESSION_RMSLE    // Среднеквадратичная логарифмическая ошибка
      };
  6. MQL5: Добавлена возможность записи массивов с размером данных более INT_MAX (массивы структур).
  7. MetaEditor: Доработана панель вкладок:

    • Панель не скрывается, даже если открыто только одно окно. Таким образом, вам всегда остаются доступны команды контекстного меню вкладки.
    • Для каждой вкладки добавлена кнопка 'X' для закрытия. Помимо этого, вкладки можно закрывать средней кнопкой мыши или через контекстное меню.

    Доработана панель вкладок


  8. MetaEditor: Добавлена команда для быстрой компиляции программ. В этом режиме не выполняется оптимизация кода, что значительно сокращает время создания исполняемого файла EX5. Используйте этот режим в активной стадии разработки, когда требуется быстро проверить написанный код. А уже при компиляции программы для реальной работы включайте режим максимальной оптимизации для наилучшей производительности.


    Используйте компиляцию без оптимизации для быстрой проверки кода


    Параметр "Максимальная оптимизация" в настройках проекта выполняет ту же функцию.

    Все операции, связанные с компиляцией, вынесены в отдельное меню "Сборка".

  9. MetaEditor: Улучшено управление кодом:

    • Разделены команды для перехода к объявлению и реализации. Ранее использовалась одна команда, которая выводила меню выбора. Теперь вы сразу можете переходить к необходимой части кода.
    • Добавлена подстановка распознанного ключевого слова по нажатию "Tab" в дополнение в "Enter".


    Переход к реализации метода


  10. MetaEditor: Добавлена возможность автоматического отображения локальных переменных в списке наблюдения в отладчике. Для этого включите опцию "Локальные" в контекстном меню. Во время отладки по мере перехода по коду в список будут автоматически выводиться переменные из текущей области видимости.


    Отображение локальных переменных в списке наблюдения

  11. MetaEditor: Улучшена работа списка наблюдения в отладчике для векторов и матриц.
  12. MetaEditor: Исправлены пути в проектных файлах. Ошибка могла приводить к пропаданию файлов из проектов.
  13. Tester: Улучшена остановка тестерных агентов при завершении работы платформы.
  14. Tester: Добавлен пятый узел для MQL5 Cloud Network, он размещен в Гонконге. Это ускорит оптимизацию роботов с использованием сети в ближайших регионах.
  15. Исправления по крешлогам.

Обновление будет доступно через систему Live Update.

 
MetaQuotes:

  1. MetaEditor: Доработана панель вкладок:

    • Панель не скрывается, даже если открыто только одно окно. Таким образом, вам всегда остаются доступны команды контекстного меню вкладки.
    • Для каждой вкладки добавлена кнопка 'X' для закрытия. Помимо этого, вкладки можно закрывать средней кнопкой мыши или через контекстное меню.

Было-бы очень здо́рово, если добавите в это контекстное меню пункт «Сохранить как…»

 

Исправьте, пожалуйста, отображение строк при отладке, последняя бетта:

Это одна и та же переменная "ss", смотрим значения. Во второй строке, просмотр переменной был уже до точки останова(Shows Local включен), потом сам добавил ту же переменную.

Удалил переменную "is_old":


 

Исправьте, пожалуйста, некорректную работу встроенной функции WebRequest.

Подробнее по ссылке: https://www.mql5.com/ru/forum/425291/page4#comment_39702959

Странное поведение WebRequest в MT5 - через какое-то время выдает ошибку.
Странное поведение WebRequest в MT5 - через какое-то время выдает ошибку.
  • 2022.05.16
  • www.mql5.com
Берём из встроенной в МТ(4/5) Помощи пример для функции WebRequest и копируем его в скрипт WebRequest1.ex5...
 
Быстрая компиляция прям очень в тему, спасибо.
 

Что то поломали в новых билдах.

До 3296 все работало штатно.

Сейчас при добавлении программно фин инструмента в обзор рынка и проверка его на жизнь дает следующее

2022.05.20 17:48:52.211 VR Watch list and linker (EURUSD,H1)    m_name = HUBB 0.0  0.0 первое обращение к ценам, сразу после добавления в обзор рынка
2022.05.20 17:49:11.026 VR Watch list and linker (EURUSD,H1)    m_name = HUBB 186.08  185.82 второе обращение к ценам

Поставил задержку в Sleep(50); в цикле получения информации

Результат

2022.05.20 18:08:22.391 VR Watch list and linker (EURUSD,H1)       0  m_name = VO 0.0  0.0 Отказ
2022.05.20 18:08:23.377 VR Watch list and linker (EURUSD,H1)       1  m_name = VO 206.65  206.62 Получили
 
Привет!
я только начал осваивать МТ5 и возможно чего-то не понимаю, но объясните, какой смысл во всех этих объектах рисования, если они привязаны не к торгуемому инструменту, а к окну графика.. То есть при смене символа в окне, все объекты (уровни,  прямоугольники и проч.) остаются от предыдущего символа. Это делает использование всех этих рисовалок бессмысленным. Заводить для каждого инструмента свой шаблон? Ну так себе удобство. Есть ли шанс увидеть улучшения интерфейса в будущих версиях? 
 
Yurka Tim #:
Привет!
я только начал осваивать МТ5 и возможно чего-то не понимаю, но объясните, какой смысл во всех этих объектах рисования, если они привязаны не к торгуемому инструменту, а к окну графика.. То есть при смене символа в окне, все объекты (уровни,  прямоугольники и проч.) остаются от предыдущего символа. Это делает использование всех этих рисовалок бессмысленным. Заводить для каждого инструмента свой шаблон? Ну так себе удобство. Есть ли шанс увидеть улучшения интерфейса в будущих версиях? 

У Вас просто мало опыта. Как минимум Вы можете при смене финансового инструмента или номера счета или периода удалить все ненужное и нарисовать нужное или перерисовать нужное...

 
Vladimir Pastushak #:

У Вас просто мало опыта. Как минимум Вы можете при смене финансового инструмента или номера счета или периода удалить все ненужное и нарисовать нужное или перерисовать нужное...

Возможно я плохо объяснил. Я не хочу ничего удалять или постоянно перерисовывать. Зачем например мне удалять уровни, которые я буду использовать на протяжении долгого времени. Все объекты рисования должны быть связаны с финансовым инструментом и более того, синхронизированы с другими окнами, в которых открыт тот же инструмент. Это же стандартный функционал всех торговых терминалов вроде бы. Связи окон по инструменту тоже нет, но это удалось решить с помощью стороннего "индикатора". Хотя стакан вот привязывается же. Почему не сделать так же для других окон?  Не знаю, ко всему можно привыкнуть конечно,  вроде серьезный софт но юзабилити мягко говоря тут далеко не айс. 

 
Yurka Tim #:

Возможно я плохо объяснил. Я не хочу ничего удалять или постоянно перерисовывать. Зачем например мне удалять уровни, которые я буду использовать на протяжении долгого времени. Все объекты рисования должны быть связаны с финансовым инструментом и более того, синхронизированы с другими окнами, в которых открыт тот же инструмент. Это же стандартный функционал всех торговых терминалов вроде бы. Связи окон по инструменту тоже нет, но это удалось решить с помощью стороннего "индикатора". Хотя стакан вот привязывается же. Почему не сделать так же для других окон?  Не знаю, ко всему можно привыкнуть конечно,  вроде серьезный софт но юзабилити мягко говоря тут далеко не айс. 

Предполагается, что графики интересующих инструментов будут постоянно открыты, вот и привязка такая. Терминал больше развивался в сторону алготрейдинга, программирования, анализа данных. Ваш вопрос вполне решается созданием соответствующих инструментов на MQL. 
 
Aliaksandr Hryshyn #:
Предполагается, что графики интересующих инструментов будут постоянно открыты, вот и привязка такая. Терминал больше развивался в сторону алготрейдинга, программирования, анализа данных. Ваш вопрос вполне решается созданием соответствующих инструментов на MQL. 
да это все понятно, что как конструктор "сделай сам" МТ5 прекрасен :) , непонятно почему такой серьезный софт, предлагаемый множеством брокеров, снабжен таким примитивным GUI. Роботы роботами, но раз уж есть график и рисование объектов, то почему так неудобно то ( Это же базовые вещи для ручного трейдинга.  Мой изначальный вопрос был скорее к разработчикам. Хотелось бы увидеть какие-то изменения к лучшему. Ну и подумал, что может я по неопытности чего-то не знаю и как-то это это можно настроить. Но видимо есть как есть.
Причина обращения: