MetaTrader 5 build 4260: общие улучшения

Что нового в MetaTrader 5?

22 марта 2024

Terminal

  1. Исправлена ошибка подписки на бесплатные продукты в сервисе «Подписки». В некоторых случаях соответствующая кнопка могла отсутствовать в диалоге.
  2. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Расширена поддержка событий клавиатуры:

    • Добавлено событие CHARTEVENT_KEYUP для обработчика OnChartEvent. Оно позволяет отслеживать, когда пользователь отпускает клавишу на клавиатуре.
    • Добавлена обработка «Мертвых» клавиш (Dead keys) — это клавиши, позволяющие изменить вид следующего вводимого символа. Например, в греческой раскладке для установки ударений над гласными ά, έ, ύ и т.д. требуется нажать клавишу «;», а затем ввести букву. Теперь нажатие таких клавиш можно отслеживать при помощи функции TranslateKey.
    • Доработаны функции TranslateKey и TerminalInfoInteger. Теперь при получении событий CHARTEVENT_KEYUP или CHARTEVENT_KEYDOWN в OnChartEvent вы можете получить полное состояние клавиатуры на момент возникновения события. Например, если пользователь нажал клавишу Z, вы сможете узнать, была ли в тот момент нажата клавиша Ctrl или Shift. Для остальных событий функции будут работать как раньше — возвращать состояние клавиатуры на текущий момент.

  2. Обновлена библиотека Alglib. В связи с обновлением изменены следующие методы в классах CMatrixDouble и CMatrixComplex:
    vector<double/complex> operator[](const int i) const;
    vector<double/complex> operator[](const ulong i) const;
    Теперь вместо них используется один метод с константным возвращаемым значением:
    const vector<double/complex> operator[](const ulong i) const;
    Внесенная правка позволит отловить некорректное использование результата по месту: в новой версии Alglib код mat[row][col]=x работает не так, как в старой. Ранее это была запись в матрицу, а теперь — запись во временный объект vector<double/complex>, который после записи сразу же уничтожается.

    Добавление const к возвращаемому значению делает невозможным использование записи mat[row][col]=x. Поскольку mat[row] теперь возвращает константный вектор, попытка перезаписать его элемент через mat[row][col] приведет к ошибке компиляции.

  3. Исправлена ошибка, в некоторых случаях приводившая к некорректной работе функций ChartGet*.

MetaEditor

  1. Добавлен поиск по книге «Нейросети в алготрейдинге на MQL5». Теперь он объединен в одном разделе с ранее вышедшей книгой «Программирование на MQL5 для трейдеров».

    Добавлен поиск по недавно вышедшей книге «Нейросети в алготрейдинге на MQL5»


Tester

  1. Исправлена оптимизация на большом количестве удаленных агентов. В некоторых случаях ошибка могла приводить к чрезмерной нагрузке на CPU.

MetaTrader 5 Web Terminal

  1. Исправлено выставление лимитных ордеров для инструментов с биржевым исполнением. Теперь при изменении цены выставляемого ордера относительно текущей (выше или ниже) предлагаемый тип ордера не будет изменяться с Buy Limit на Sell Limit и обратно, как это происходит для инструментов остальных типов. Таким образом, пользователь при необходимости сможет выставлять ордера Buy Limit выше рынка и Sell Limit ниже рынка, чтобы гарантированно ограничить цену сделки.
  2. Исправлено отображение счетчиков выбранных символов в «Обзоре рынка».