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

История обновлений десктопной, мобильной и веб-платформ

14 октября 2021

MetaTrader 5 build 3081: Улучшения в MQL5-сервисах и обновленный дизайн

Terminal

  1. Улучшена навигация по сервисам MQL5.community.

    Подразделы Маркета, Сигналов и Хостинга вынесены в Навигатор из рабочей области. Это облегчит поиск продуктов, а также работу со своими покупками и подпискам. Для каждого сервиса добавлен раздел "Как это работает" с полезной информацией о его использовании.


    Улучшена навигация по сервисам MQL5.community


  2. Полностью обновлены иконки всех меню, панелей инструментов и диалогов. Благодаря им интерфейс терминала и MetaEditor стал более простым для восприятия:

    • Снижено количество мелких деталей, которые сложно различить
    • Используется меньшее количество цветов, чтобы снизить цветовой шум
    • Используется меньше градиентов, чтобы повысить читаемость
    • Используются более понятные метафоры


    В платформе обновлены все меню, панели инструментов и диалоги


  3. Добавлен показ издержек при совершении сделок в торговой истории. Эта функция используется у брокеров, регулируемых NFA.


    В истории счета теперь показываются издержки по сделкам


    Если ваш брокер включит расчет соответствующего показателя на своей стороне, в торговой истории среди доступных колонок появится "Издержки". Она показывает стоимость совершения сделки относительно средней цены инструмента (mid-point spread cost).

  4. Добавлена поддержка корейской версии MQL5.com.

    Это уже восьмой язык, на котором доступно крупнейшее сообщество трейдеров MQL5.community. Мы полностью перевели интерфейс сайта, статьи, экономический календарь, важные темы форума. В скором времени появится перевод документации MQL5.

  5. Исправлена загрузка пользовательских торговых инструментов. В некоторых случаях настройки вновь создаваемых символов могли переписывать настройки уже имеющихся.
  6.  Исправлено отображение торговой истории сигнала на графике. При включении соответствующей опции на графике помечались сделки сразу по всем инструментам, а не только по инструменту графика.
  7. Добавлен экспорт колонки "Сбор" в отчет по торговой истории. Ранее этот показатель отображался только в истории, но не сохранялся в файл.
  8. Оптимизирована и значительно ускорена работа панелей для торговли одним кликом в Обзоре рынка и на графиках.
  9. Исправлена работа поля "Коэффициенты маржи" у пользовательских торговых инструментов. В некоторых случаях заданные значения могли сбрасываться к нулевым.
  10. Продолжаются работы над сервисом подписок на дополнительные услуги от брокеров. Исправлены ошибки в окне подписки на котировки.
  11. Исправлено отображение аналитического объекта "Трендовая линия". Она могла исчезать при масштабировании и изменении размера окна графика.
  12. Исправлено отображение аналитического объекта "Прямоугольник". При выходе одной из точек привязки за область видимости графика объект мог исчезать.
  13. Исправлена и значительно ускорена работа встроенных чатов MQL5.community.
  14. Исправлено округление параметра "Стоимость" в списке открытых позиций. Ранее дробная часть значения могла не показываться.
  15. Исправлена проверка мобильных телефонов при открытии счетов. Для некоторых операторов из Китая телефон мог определяться как указанный некорректно.
  16. Добавлена поддержка паролей длиной более 32 символов в MQL5-аккаунтах.
  17. Исправлен экспорт сертификатов при работе в Wine. Эта функция используется для счетов с расширенной аутентификацией при их переносе из десктопной платформы в мобильную.
  18. Исправлена работа кнопок перехода к MQL5-сервисам, расположенным на нижней панели окна "Инструменты". При откреплении окна кнопки становились неактивными.
  19. Ограничен размер меню "Файл \ Новый график": не более 128 подменю с группами символов и не более 32 символов в каждом подменю. Это позволяет ускорить работу терминала и избежать зависаний при добавлении в "Обзор рынка" большого количества инструментов (2000 и более).

MQL5

  1. Продолжаются работы по добавлению поддержки векторов и матриц. Новые функции существенно расширят возможности для разработчиков решений на основе нейросетей.
  2. Добавлены значения DEAL_SL и DEAL_TP в перечисление ENUM_DEAL_PROPERTY_DOUBLE — уровни Стоп Лосс и Тейк Профит сделки.

    Для сделок входа и разворота эти свойства устанавливаются в соответствии со значением Стоп Лосс/Тейк Профит у ордеров, в результате исполнения которых они были совершены. Для сделок выхода используются значения Стоп Лосс/Тейк Профит соответствующих позиций на момент их закрытия.

  3. Добавлено значение MQL_HANDLES_USED в перечисление ENUM_MQL_INFO_INTEGER — количество активных объектов классов (хэндлов) у MQL-программы. Здесь учитываются как динамические (созданные через new), так и нединамические объекты, глобальные/локальные переменные или члены классов. Чем больше хэндлов использует программа, тем больше она потребляет ресурсов.

  4. Добавлены новые методы для работы со структурой MqlCalendarValue, описывающей событие экономического календаря:

    • HasActualValue(void) — возвращает true, если актуальное значение события задано, иначе false
    • HasForecastValue(void) — возвращает true, если прогнозное значение события задано, иначе false
    • HasPreviousValue(void) — возвращает true, если предыдущее значение события задано, иначе false
    • HasRevisedValue(void) — возвращает true, если пересмотренное значение события задано, в противном случае false
    • GetActualValue(void) — возвращает актуальное значение события (double) или nan, если оно не задано
    • GetForecastValue(void) — возвращает прогнозное значение события (double) или nan, если оно не задано
    • GetPreviousValue(void) — возвращает предыдущее значение события (double) или nan, если оно не задано
    • GetRevisedValue(void) — возвращает пересмотренное значение события (double) или nan, если оно не задано

  5. Исправлена отладка MQL5-программ, использующих библиотеки в виде EX5-файлов.
  6. Ускорена компиляция программ, содержащих большие массивы, инициализируемые последовательностью.
  7. Исправлена ошибка в функции CopyTicksRange, возникавшая при работе с данными пользовательских торговых инструментов. В некоторых случаях функция могла возвращать данные, не соответствующие запрошенному периоду.
  8. Исправлена проверка на наличие всех параметров шаблона при специализации по параметрам. В некоторых случаях компиляция кода с шаблонами под отладку могла приводить к ошибке "code generation error".

Signals

  1. Добавлена возможность автоматического продления подписки на Сигналы.

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


    Включите автоматическое продление подписки на Сигналы


    Если при оплате была выбрана карта, но платеж за продление с нее не удастся, система попытается использовать баланс вашего MQL5-аккаунта.

    Не беспокойтесь об изменении стоимости подписки. Если цена увеличится, автоматическое продление не произойдет. Вы будете уведомлены об этом по почте, указанной в вашем MQL5-аккаунте.

    Автопродление можно включить или отключить в любой момент через раздел "Мои подписки" на MQL5.com.


    Управляйте автопродлением в разделе "Мои подписки" на MQL5.com


  2. Исправлены ошибки в отображении витрины сигналов. Теперь система будет более правильно учитывать совместимость сигналов с текущим счетом.

Market

  1. Добавлен поиск по имени и логину автора продукта на витрине Маркета. Ранее поиск работал только по названию и описанию продуктов.

VPS

  1. Улучшена система автоматического продления подписки на VPS.

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

    Теперь вам не придется думать о своевременном пополнении аккаунта. Для автопродления система будет использовать тот же способ оплаты, что вы использовали при первичном оформлении подписки. Если вы оплатили хостинг картой и включили автоматическое продление, при истечении текущего срока система продлит подписку по тому же тарифу, списав средства с той же карты. Если оплата картой не удастся, система попытается использовать баланс вашего MQL5-аккаунта как раньше.


    Для автопродления теперь можно использовать карты и другие способы оплаты


    С новой функцией вы можете быть уверены, что подписка не истечет, ваши советники продолжат работу и копирование сигналов не остановится. Вам не нужно проверять и пополнять баланс вручную.
    Функция работает только для новых подписок. Для существующих будет использоваться старая схема автоматического продления с оплатой через баланс MQL5-аккаунта.

MetaEditor

  1. Исправлен переход к объявлению функции или переменной при помощи клавиш Alt+G. Если объявление находилось ниже строки, из которой происходит вызов, переход не осуществлялся.
  2. Добавлен показ типа объекта для ссылок на объекты классов в отладчике.
  3. Добавлена поддержка отображения union в списке наблюдаемых выражений.

Tester

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

MetaTrader 5 iPhone/iPad, MetaTrader 5 Android

  1. Добавлено отображение диалога с отказом от ответственности при запуске приложения. Пожалуйста, внимательно прочтите его. Также некоторые брокеры могут создать вам демо-счет автоматически при первом запуске приложения. В этом случае вам будет показан диалог, предупреждающий о правилах.


    В MetaTrader 5 для iPhone/iPad добавлены специальные предупреждения

  2. Добавлена возможность подключить счет к мониторингу в сервисе "Сигналы" прямо из мобильного приложения. Для этого выберите "Мониторинг счета" в меню. Для удобства в окно регистрации сразу подставляется номер счета и название брокера. Вам остается указать только имя сигнала и инвесторский пароль.

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

  3. Добавлена поддержка Huawei AppGallery и HMS Services для мобильных терминалов, работающих на Android OS. Владельцы смартфонов от Huawei смогут устанавливать приложение из своего магазина и работать с Push-уведомлениями.

Обновлена документация.

18 июня 2021

MetaTrader 5 build 2980: Push-уведомления о торговых операциях

Terminal

  1. Добавлена возможность получать Push-уведомления о сделках с торгового сервера — они работают, даже когда ваш терминал выключен.



    Ранее вы могли получать уведомления на мобильные устройства только от собственного десктопного терминала. Как только происходила торговая операция, терминал отправлял соответствующее сообщение на MetaQuotes ID, указанный в настройках. Соответственно, это работало, только пока он оставался включенным. Теперь таких ограничений нет. Если на сервере сработал Тейк Профит, а ваш компьютер выключен, вы получите уведомление о закрытии позиции на свое мобильное устройство.

    Для получения уведомлений с сервера необходимо:
    • Иметь реальный счет — уведомления с сервера не работают для демо-счетов
    • Установить на свой смартфон мобильный терминал MetaTrader 5 для iOS или Android
    • Открыть в нем раздел сообщений, найти ваш MetaQuotes ID и указать его в настройках десктопного терминала
    • Включить уведомления с сервера в настройках десктопного терминала

    Доступность и детальность уведомлений зависит от вашего брокера

    Всего поддерживаются три типа уведомлений: об ордерах, о сделках и о балансовых операциях. При включении опции доступные виды уведомлений будут выведены в журнал терминала:
    '1222': subscribed to deals, orders, balance notifications from trade server

  2. Обновлена витрина MetaTrader VPS. Мы сделали ее более современной и удобной:
    • Интерфейс адаптируется под любую ширину экрана.
    • Витрина занимает меньше пространства по высоте, чтобы всегда помещаться в рабочем окне.
    • Необходимая информация появляется только в тот момент, когда она нужна. Пока вы не выбрали тариф, вам не показываются лишние детали оплаты.



  3. На панель тестера стратегий добавлены команды для быстрого переключения к MQL5-сервисам и окну "Инструменты". Они отображаются только в разделе "Обзор", в остальных вкладках панель используется для управления тестированием.



  4. Добавлено сохранение состояния окон для MQL5-сервисов. Если вы оставите Маркет открытым перед выключением терминала, вы найдете его в таком же состоянии при последующем включении.
  5. Исправлена периодическая синхронизация состояния MQL5-аккаунта. Ошибка в некоторых случаях могла приводить к невозможности копировать сигналы.
  6. Исправлено отображение подборки рекомендуемых продуктов в Маркете.
  7. Исправлена работа контекстного меню сигналов в Навигаторе. При помощи него можно перейти к просмотру сигнала, на который вы подписаны, а также отменить подписку.

MQL5

  1. В стандартной библиотеке исправлена ошибка в работе оператора "-" в реализации комплексных чисел (файл MQL5\Include\Math\Alglib\complex.mqh).
  2. В инициализирующих последовательностях теперь можно использовать любые выражения, а не только константные. Это повысит удобство использования и улучшит совместимость с кодом С++.
    struct POINT
      {
       int x,y;
      };
    
    int GetYFunc(y)
      {
       return(y * y);
      }
    
    void SomeFunction(int x1,int x2,int y)
      {
       POINT pt={ x1+x2, GetYFunc(y) };
       ProcessPoint(pt);
      };
  3. Исправлена ошибка, возникавшая при компиляции union с огромными массивами данных.
  4. Исправлена работа функции StringToCharArray. Теперь она преобразует всю переданную строку в массив Char, а не останавливается на первом терминирующем нуль-символе.
  5. Добавлен контроль явного присутствия в коде вызова конструктора для классов/структур, у которых родительский класс не имеет конструктора по умолчанию.

MetaEditor

  1. Добавлено отображение места вызова для inline-функций в отчете профилировщика.
    В приведенном ниже примере вызов func(); теперь подсвечивается:




    Сама функция func не подсвечена, так как ее код полностью помещен в OnStart.

  2. Добавлена возможность создавать пустой проект. Это будет удобно при нестандартных разработках с собственной структурой файлов, когда шаблоны по умолчанию не подходят.




    При создании проекта таким образом создается только пустой файл настроек "mqproj". Файлы для исходного кода в последующем необходимо создать самостоятельно.

  3. Ускорен запуск MetaEditor.
  4. Исправлена ошибка отображения данных в списке наблюдаемых выражений при отладке. В некоторых случаях в нем могли показываться некорректные значения переменных.
  5. Исправлено автоматическое добавление расширения ".py" к файлам скриптов на Python, создаваемым через MQL Wizard.

Обновлена документация.

21 мая 2021

MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна

Terminal

  1. Сервисы "Маркет", "Сигналы" и "Виртуальный хостинг" перенесены в основную рабочую область платформы для более удобной работы.

    Ранее разделы для покупки MQL5-сервисов располагались в окне "Инструменты", где доступно только небольшое пространство. Основная рабочая область же позволяет показать пользователям полноценные витрины, где они смогут удобно выбирать необходимые продукты. При этом меньшее количество вкладок в инструментах облегчит работу с другими функциями платформы.



    Мы постарались сделать так, чтобы доступ к дополнительным сервисам не мешал основным задачам трейдеров — торговле и анализу графиков:
    • Вкладки сервисов располагаются в самом конце, после всех графиков.
    • Если окна сервисов не нужны, их можно просто закрыть. Вернуться к ним можно легко: через "Навигатор", панель инструментов или меню "Сервисы".


    Помимо переноса мы полностью обновили дизайн сервисов. Он стал более легким и современным. В сигналах появились дополнительные данные, которые ранее были доступны только на витрине сайта MQL5.community: диаграмма-паутинка с основными характеристиками, показатель надежности и активности и т.д.



  2. Добавлена полная поддержка IPv6-адресов.

    Протокол IPv4, который сейчас используется в каждой сети, был создан более 30 лет назад. IP-адреса в нем состоят из 32 бит и представлены в виде четырех чисел по 8 бит, разделенных точками. Это позволяет получить более четырех миллиардов уникальных IP-адресов. Однако сейчас количество устройств и сайтов по всему миру выросло настолько, что адресов перестает хватать всем желающим.

    В связи с этим продукты постепенно переходят на параллельную поддержку более современного протокола — IPv6. В нем адрес состоит из 128 бит и представлен в виде x:x:x:x:x:x:x:x , где каждая буква x - это шестнадцатеричные значения шести 16-битных элементов адреса. Такой формат позволяет получить 5 x 10 ^ 28 уникальных адресов. Помимо значительно большего пространства адресов, протокол обладает рядом других преимуществ перед более старой версией. Прочитать о них можно в специализированных статьях.

    Самое главное, что платформа MetaTrader 5 теперь полностью готова к работе в сетях IPv6. Если ваш брокер или провайдер переведет вас на новую схему работы, вы не почувствуете никаких изменений и продолжите беспрепятственно торговать.

  3. Продолжается работа над диспетчером задач, представленным в билде 2815. Теперь для графиков, на которых запущена отладка или профилирование MQL5-программ, есть явная индикация этого.



  4. Ускорен запуск платформы под Wine на компьютерах с macOS и Linux. Проведена общая оптимизация работы, исправлены ошибки:
    • Улучшено отображение меню, панелей инструментов и диалоговых окон.
    • Исправлены ошибки в отображении разделов "Маркет", "Сигналы" и "VPS". В частности, исправлена загрузка логотипов продуктов на витрине "Маркета".
    • Обновлен DMG-пакет для легкой установки MetaTrader 5 на компьютерах с macOS. При помощи него платформа устанавливается как обычное приложение — нужно перетащить иконку платформы в Applications и дождаться, пока закончится инсталляция.
      В пакет были включены дополнительные компоненты, необходимые для более стабильной и быстрой работы. Тем, кто его использует, настоятельно рекомендуется переустановить MetaTrader 5 по ссылке https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/MetaTrader5.pkg.zip

    Если вы используйте CrossOver, полностью переустановите в нем MetaTrader 5, чтобы получить последнюю 64-битную версию платформы.
  5. Исправлена работа сочетания клавиш "Ctrl+F9". Теперь оно переключает фокус на вкладку торговли в "Инструментах".

MQL5

  1. Продолжается отказ от старых технологий, в том числе 32-битных компонентов:
    • 32-битные терминалы больше не могут загружать программы из "Маркета".
    • 32-битные терминалы не могут использовать сервис хостинга.
    • В 32-битных редакторах MetaEditor больше не доступна функция дополнительной защиты файлов через MQL5 Cloud Protector.
    • MQL5-программы, скомпилированные в слишком старых версиях MetaEditor (выпущенных 5 лет назад и более), не будут запускаться в новой версии терминала.

    Поддержка 32-битной версии платформы была остановлена год назад на билде 2361. Мы настоятельно рекомендуем перейти на 64-битную версию MetaTrader 5, чтобы использовать все возможности платформы.
    Всем продавцам, кто загружал в Маркет 32-битные версии продуктов, настоятельно рекомендуется перекомпилировать их в последнем 64-битном MetaEditor и загрузить обновленные версии. В ближайших версиях мы полностью отключим возможность запуска 32-битных MQL5-программ в терминалах.

  2. Добавлена поддержка работы с комплексными числами.

    Добавлен новый встроенный тип "complex".
    struct complex
      {
       double             real;   // вещественная часть
       double             imag;   // мнимая часть
      };
    Тип "complex" может передаваться по значению в качестве параметра для MQL5-функций (в отличие от обычных структур, которые передаются только по ссылке). Для функций, импортируемых из DLL, тип "complex" должен передаваться только по ссылке.

    Для описания комплексных констант используется суффикс 'i':
    complex square(complex c)
      {
       return(c*c);
      }
      
    void OnStart()
      {
       Print(square(1+2i));  // в качестве параметра передается константа
      }
    
    // будет выведено "(-3,4)" - это строковое представление комплексного числа
    Для комплексных чисел на данный момент доступны только простые операции: =, +, -, *, /, +=, -=, *=, /=, ==, !=.

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

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

MetaEditor

  1. Исправлена остановка отладки и профилирования в невизуальном режиме.
  2. Исправлено профилирование индикаторов на реальных данных. В некоторых случаях оно могло не запускаться.

VPS

  1. Исправлена ошибка миграции окружения на VPS. Она возникала, если переносимый эксперт содержал в себе индикатор в виде ресурса

Signals

  1. Исправлена проверка режима торговли при копировании сигналов. Торговля инструментом может быть ограничена на стороне брокера: могут быть разрешены только длинные позиции, только короткие или только закрытие. Ранее для успешного копирования сервис требовал полного разрешения на торговлю, в ином случае синхронизация прерывалась. Теперь "торгуемыми" будут считаться и символы с частично ограниченной торговлей. Клиенты фондовых брокеров смогут беспрепятственно копировать сигналы.

Tester

  1. Исправлена проверка торговой сессии при тестировании. В некоторых случаях торговые операции во время тестирования могли не выполняться с ошибкой "market closed", несмотря на то, что они попадали в торговую сессию.
Обновлена документация.

2 апреля 2021

MetaTrader 5 build 2875: Улучшения и исправления

Terminal

  1. Исправлена ошибка, в результате которой обновление стандартных программ MQL5 копировалось в корень каталога данных терминала, а не в подкаталог MQL5. Соответственно, пользователи могли обнаружить в нем лишние папки Experts, Images, Include и т.д.

    При обновлении на новую версию платформы лишние каталоги будут автоматически удалены после дополнительной проверки.

  2. Исправлена ошибка, в некоторых случаях приводившая к невозможности авторизоваться в чате MQL5.community, встроенном в терминал.

Tester

  1. Исправлена оптимизация советников через MQL5 Cloud Network. В некоторых случаях она могла не запускаться.

MetaEditor

  1. Исправлены ошибки и падения при отладке и профилировании MQL5-программ.

Обновлена документация.

26 марта 2021

MetaTrader 5 build 2860: Улучшения для Wine и расширение интеграции с SQL

Terminal

  1. Добавлена возможность включать/отключать дополнительные сервисы MQL5.community. Например, если вы не интересуетесь статьями по программированию на MQL5 или копи-трейдингом в сервисе "Сигналы", вы можете их отключить ради экономии ресурсов и рабочего пространства терминала.


    По умолчанию все сервисы включены.

  2. Проведена большая оптимизация работы терминала под Wine на компьютерах с macOS и Linux:
    • Теперь открепленные служебные окна (Навигатор, Инструменты) невозможно перетащить за пределы терминала. Ранее в таких случаях пользователи могли иметь затруднения с возвращением окон в пределы терминала.
    • Исправлено изменение размера содержимого служебного окна при изменении размеров самого окна.
    • Исправлено отображение показателей производительности в диспетчере задач.
    • Улучшено отображение иконок на панели инструментов.
    • Исправлен счетчик непрочитанных сообщений в чате.
    • Исправлен показ системных команд графика: Скрыть, Развернуть, Закрыть.
    • Исправлено отображение журнала.
    • Исправлено отображение всплывающих подсказок у графиков.
    • Исправлена работа команд печати графиков.
    • Исправлено отображение верхнего меню при использовании тем оформления в Linux.
    • Исправлен поиск по GitHub, MSDN и Stack Overflow в MetaEditor.
    Рекомендуем всем пользователям обновиться на последнюю стабильную версию Wine. Это повысит скорость и надежность работы платформы.
  3. Добавлена поддержка ордеров "Market To Limit" при торговле на Стамбульской бирже (BORSA Istanbul). Изначально такой ордер исполняется как рыночный, но если ликвидности не хватает, остаток выставляется в стакан цен в виде лимитного ордера с ценой последней сделки.
  4. Исправлено отображение графика волатильности. Теперь он строится с учетом даты экспирации, выбранной на доске опционов.
  5. Исправлено добавление торговых инструментов в Обзор рынка через строку быстрого поиска. При наличии пробела в названии инструмента он не добавлялся в список.



MQL5

  1. Расширены возможности работы с базами данных на SQL. Теперь в запросах вы можете использовать множество статистических и математических функций.

    Статистические функции

    • mode — мода
    • median — медиана (50-й перцентиль)
    • percentile_25 — 25-й перцентиль
    • percentile_75 — 75-й перцентиль
    • percentile_90 — 90-й перцентиль
    • percentile_95 — 95-й перцентиль
    • percentile_99 — 99-й перцентиль
    • stddev или stddev_samp — стандартное отклонение выборки
    • stddev_pop — стандартное отклонение популяции
    • variance or var_samp — дисперсия выборки
    • var_pop — дисперсия популяции

    Математические функции


    Пример
    select
      count(*) as book_count,
      cast(avg(parent) as integer) as mean,
      cast(median(parent) as integer) as median,
      mode(parent) as mode,
      percentile_90(parent) as p90,
      percentile_95(parent) as p95,
      percentile_99(parent) as p99
    from moz_bookmarks;
  2. Добавлены новые макросы:

    • __COUNTER__ — увеличивается на единицу при каждом обращении. При использовании в шаблонах и макросах ведутся отдельные счетчики.
    • __RANDOM__ — генерирует случайное ulong-число, является аналогом функции MathRand.

  3. Исправлена работа синхронных запросов к графику в случаях, когда символ графика не существует. Теперь вместо бесконечного ожидания результата функции будут возвращать ошибку. Ситуация с несуществующим символом может возникать при переключении между торговыми счетами с разным набором доступных торговых инструментов.
  4. Оптимизирована и значительно ускорена работа функций CopyTicks*.

MetaEditor

  1. Изменен порядок профилирования и отладки на исторических данных.

    Профилирование теперь всегда осуществляется в невизуальном режиме. Отладка по умолчанию также осуществляется в невизуальном режиме, однако вы можете вручную изменить это в настройках MetaEditor:



  2. Добавлена возможность профилировки сервисов. Она осуществляется так же, как и для других типов MQL5-программ.
  3. Исправлено отображение имен функций в отчете профилировщика. В некоторых случаях они могли быть указаны как <unknown>.

Обновлена документация.

26 февраля 2021

MetaTrader 5 build 2815: Доступ к стакану цен из Python, улучшения в отладчике и профилировщике

Terminal

  1. Добавлена возможность получения данных стакана цен через Python API.
    Три новые функции позволят легко и быстро получить данные для статистических вычислений и машинного обучения при помощи огромного количества готовых библиотек Python.
    • market_book_add — производит подписку терминала MetaTrader 5 на получение событий об изменениях в стакане по указанному символу.
    • market_book_get — возвращает кортеж из BookInfo, содержащий записи стакана цен указанного символа.
    • market_book_release — отменяет подписку терминала MetaTrader 5 на получение событий об изменениях в стакане по указанному символу.

  2. Максимальная длина Push-сообщений увеличена с 256 до 1024 символов. Теперь вы можете отправлять гораздо больше информации на мобильные устройства из своих MQL5-программ.
  3. Добавлена предварительная версия "Диспетчера задач", вызываемого по клавише F2.
    Диспетчер задач — это система мониторинга ресурсов, потребляемых платформой. В нем вы можете видеть, сколько памяти потребляют графики, сколько ресурсов процессора используется советниками и т.д. Если что-то замедляет скорость работы вашей платформы, вы легко сможете обнаружить и устранить проблему.




  4. Доработан сервис "Подписки". Для торговых инструментов, чьи данные передаются с задержкой, добавлена специальная индикация:
    • Символы в "Обзоре рынка" помечаются иконкой часов, во всплывающей подсказке отображается значение задержки
    • На графиках выводится уведомление о задержке данных




  5. Исправлено отображение списка подписок при отсутствии подключения к торговому счету.
  6. Исправлена работа ссылок в письмах и новостях. Теперь они открываются в браузере по умолчанию. Ранее для этого использовался только Internet Explorer.
  7. Исправлены подключения из функции WebRequest к хостам с IPv6-адресами и защитой Cloudflare.
  8. Улучшен функционал и отзывчивость VPS сервиса.
  9. Улучшена работа платформы под Wine и MacOS/Crossover, включая версии под macOS Big Sur с процессором M1.

MQL5

  1. Исправлена ошибка в функции ArrayPrint. Ранее в некоторых случаях функция могла не выводить массив.
  2. Оптимизированы файловые операции, выполняемые при помощи функций File*. Теперь чтение и запись файлов осуществляется значительно быстрее.
  3. Снято ограничение, по которому требовалось указывать размер для второй, третьей и четвертой размерностей динамического массива, когда он используется в качестве параметра функции. Это повысит возможности повторного использования и гибкость кода.
    void func(int &arr[ ][ ][ ][ ])
      {
      }
  4.  Исправлена ошибка в работе функции ArrayBsearch. При двоичном поиске значения в отсортированном массиве функция могла некорректно возвращать индекс найденного элемента.

MetaEditor

  1. Продолжаются работы по глобальному обновлению отладчика.
    • При выводе массивов в окно наблюдения учитывается их сортировка, заданная функцией ArraySetAsSeries.
    • Добавлена поддержка локальных статических переменных.
    • Исправлено отображение значения указанного элемента массива.
    • Исправлена обработка static-полей классов.
    • Множество других исправлений для более точной и надежной отладки.

  2. Добавлена опция "Включить оптимизацию при профилировании".
    Чтобы увеличить объем детализации отчета о профилировании, можно отключать режим оптимизации кода. Без оптимизации скорость кода может упасть кратно, но взамен можно увидеть более обширное покрытие кода. При использовании учитывайте, что узкие места кода будут неточными.
    Если вам нужен более щадящий режим профилирования, отключите опцию "Использовать инлайнинг при профилировании".



    Возможность управления оптимизацией кода есть также в настройках проектов.
    • Если в проекте оптимизация отключена, то новая опция игнорируется — для профилировки оптимизация всегда выключена (в том числе инлайнинг).
    • Если в проекте оптимизация включена, то при компиляции под профилировку новая опция будет учитываться.

  3. Добавлено журналирование при отладке и профилировке. При запуске в журнал выводятся параметры окружения, а при остановке — статистика по собранным данным.
    MQL5 profiler    starting 'ExpertMACD.ex5' on history with parameters:
    MQL5 profiler       symbol: 'EURUSD'
    MQL5 profiler       period: 'H1'
    MQL5 profiler       date from: '2021.01.01'
    MQL5 profiler       date to: '2021.02.22'
    MQL5 profiler       ticks mode: 'every tick'
    MQL5 profiler       execution delay: 0 ms
    MQL5 profiler       deposit: 10000
    MQL5 profiler       currency: 'USD'
    MQL5 profiler       leverage: 1:100
    MQL5 profiler       profit in pips: NO
    MQL5 profiler    profile data received (4640 bytes)
    MQL5 profiler    758 total measurements, 0/0 errors, 470 kb of stack memory analyzed
    MQL5 profiler    7782 total function frames found (1929 mql5 code, 342 built-in, 1403 other, 4108 system)

Tester

  1. Исправлена установка неторговых часов в расширенных настройках тестирования.

Обновлена документация

15 января 2021

MetaTrader 5 build 2755: Улучшения в окне котировок и отладчике

Terminal

  1. Переработано окно котировок, позволяющее просматривать цены инструментов на экранах любого размера.

    Теперь информация в нем может выводиться в нескольких колонках, что позволяет более оптимально использовать пространство экрана. Для переключения режима показа воспользуйтесь диалогом свойств окна.


    Помимо этого, внесен ряд небольших улучшений:

    • Дополнено меню выбора колонок. Теперь в нем доступны такие же свойства инструмента, как и в "Обзоре рынка".
    • Оптимизирована работа с большим количеством инструментов. Теперь окно работает одинаково хорошо и при показе 10, и при показе 1000 инструментов.
    • Добавлено отображение краткой информации об инструменте во всплывающей подсказке.
    • Исправлено применение настроек цвета для отображения растущих и падающих цен.

  2. Добавлен показ сделок на тиковом графике синтетического стакана цен.

    Синтетический стакан цен используется для символов, по которым не транслируются цены Level 2. Уровни в нем строятся автоматически — они откладываются от лучших Bid и Ask с шагом изменения цены. Теперь, если по символу транслируются данные о цене и объеме последней сделки, вы сможете наглядно увидеть их на тиковом графике. Информация отображается в виде кругов:
    • Красные круги — сделки на продажу.
    • Синие круги — сделки на покупку.
    • Зеленые круги — направление сделки не определено.

    Чем больше размер круга, тем больше объем совершенной сделки.



  3. Исправлен расчет "греков" на доске опционов. Ошибка возникала, если у базового актива опциона была нулевая цена последней сделки.
  4. Продолжаются работы над новым сервисом "Подписки", позволяющем приобретать дополнительные услуги для трейдинга. В частности, исправлен показ подписок, зависящих от других подписок. Такие подписки используются для пакетных услуг.
  5. Улучшена работа платформы под Wine.

MQL5

  1. Добавлена генерация событий графика ChartEvent при отжатии правой и средней кнопки мыши. Это можно использовать, например, при создании графических панелей. Для работы событий необходимо отключить контекстное меню графика, используя свойство CHART_CONTEXT_MENU.
  2. Исправлена ошибка, приводившая к значительной погрешности времени ожидания в функции Sleep.

MetaEditor

  1. Начаты работы по глобальному обновлению отладчика. В частности, значительно улучшено окно наблюдаемых выражений. В нем добавлена возможность просматривать содержимое массивов и объектов в виде раскрывающихся списков, а также значения указателей.



    Для просмотра массива или объекта дважды нажмите на него в окне наблюдения.

  2. Исправлено зависание при открытии некоторых проектов.

Обновлена документация.

26 ноября 2020

MetaTrader 5 build 2715: Общие улучшения

Terminal

  1. Исправлено зависание платформы при использовании доски опционов. Оно могло возникать при нулевом размере тика в настройках торгового инструмента.
  2. Исправлены ошибки отображения интерфейса на HiDPI-мониторах.

MQL5

  1. Исправлено преобразование строки во время при помощи функции StringToTime. Ошибка возникала при указании времени в формате "yyyymmdd [hhmiss]".
  2. Исправлена ошибка в неявном операторе копирования для объектов, содержащих динамические массивы. Теперь при копировании размер объекта назначения уменьшается до размера копируемого объекта.
    struct MyStruct
    {
      string Array[];
    };
    
    void OnStart()
    {
      MyStruct a1,a2;
      ArrayResize(a1.Array,3);
      ArrayResize(a2.Array,1);
      a1=a2;
    }
    Ранее в результате вызова такой функции массив "а1" имел размер 3. Теперь он будет иметь размер 1.

MetaTester

  1. Обновлен алгоритм расчета рейтинга агентов тестирования в сети облачных вычислений MQL5 Cloud Network. Рейтинг будет определяться более точно и будет меньше изменяться во времени.
Обновлена документация.

12 ноября 2020

MetaTrader 5 build 2690: Улучшения в MetaEditor

Terminal

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

    Синтетический стакан цен используется для символов, по которым не транслируются цены Level 2. Уровни в нем строятся автоматически — они откладываются от лучших Bid и Ask с шагом изменения цены. Это удобный инструмент для выставления, модификации и удаления ордеров с минимальными затратами времени и максимальной наглядностью.




MQL5

  1. Оптимизирован и значительно ускорен доступ к последним ценам из MQL5-программ при помощи функции SymbolInfoTick.
  2. Исправлен сброс параметров индикатора "Ichimoku Kinko Hyo" через диалоговое окно.




  3. Исправлено зависание функций Copy* при отсутствии истории по торговому инструменту.
  4. Продолжаются работы по полному обновлению профилировщика кода. В дополнение к нововведениям версии 2650 мы внесли ряд улучшений в его работу:
    • Улучшено представление данных
    • Сокращено название колонок в отчете
    • Добавлена возможность сохранять отчет профилирования в файл
    • Добавлен показ номера строки во всплывающей подсказке для функций в отчете



MetaEditor

  1. Добавлена возможность отключать слежение за буфером обмена и очищать его историю.
    Функция слежения за буфером позволяет повысить удобство работы с исходным кодом за счет быстрого доступа к последним использованным данным. Нажмите Alt+V в любой позиции исходного кода, выберите в меню любую из ранее скопированных строк, и она будет вставлена по месту.
    Для включения/отключения слежения воспользуйтесь соответствующей командой на панели инструментов или настройками редактора.



  2. Исправлена ошибка вычисления некоторых наблюдаемых выражений при отладке программ.

Tester

  1. Запрещена торговля для советников, запущенных в тестере стратегий в режиме приема фреймов.
  2. Исправлена ошибка, возникавшая при импорте результатов оптимизации в тестер стратегий. Из-за нее значения таймфреймов могли импортироваться некорректно.

Обновлена документация.

9 октября 2020

MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода

Terminal

  1. Добавлена настройка "Заранее загружать данные графиков по открытым позициям и ордерам".

    Для экономии трафика торговая платформа загружает ценовую историю по инструментам только в момент ее фактического запроса, например, при открытии графика или при запуске тестирования. Однако для активно используемых инструментов это может быть не всегда удобно. Если включить новую опцию, то графики инструментов, по которым у вас есть открытые позиции или отложенные ордера, будут обновляться в фоновом режиме каждый раз при запуске платформы. Таким образом, при открытии графиков вам не придется ждать дозагрузки данных, они будут сразу доступны для анализа.




  2. Исправлено формирование дневных баров после выходных дней.
  3. Исправлено обновление графиков. В некоторых случаях после дозакачки обновленных ценовых данных графики могли не перестраиваться.
  4. Оптимизировано обновление кэша торговой истории счета. Это позволило снизить задержки получения данных при помощи функций History*.
  5. Исправлено отображение колонки комментариев при просмотре торговой истории в виде позиций.
  6. Исправлено отображение кнопки продления подписки на "Сигналы".

MQL5

  1. Продолжаются работы по полному обновлению профилировщика кода. В дополнение к нововведениям версии 2615:

    Добавлены новые параметры
    Как уже сообщалось в предыдущем обновлении, для профилирования теперь используется метод "Sampling". Профилировщик делает паузы в работе MQL-программы (~1000 раз в секунду) и собирает статистику того, сколько раз пауза пришлась на тот или иной участок кода. В том числе анализируются стеки вызовов, чтобы определить "вклад" каждой функции в общее время работы кода. В конце профилирования вы получаете информацию о том, сколько раз была выполнена пауза и сколько раз каждая из функций оказывалась в стеке вызовов:

    • Общая активность ЦП [единица измерения, %] — общее количество "появления" функции в стеке вызовов.
    • Собственная активность ЦП [единица измерения, %] — количество "пауз", которые произошли непосредственно внутри указанной функции. Этот счетчик наиболее важен для определения "узких" мест, поскольку по статистике остановка чаще происходит в тех участках программы, которые требуют большего процессорного времени.


    Добавлена возможность отключения инлайнинга функций при профилировании
    При компиляции MQL-программ осуществляется инлайнинг (встраивание) — код функций помещается непосредственно в место их вызова, что позволяет добиться существенного ускорения при работе. Однако это затрудняет профилирование функций. Чтобы получить отчет по "чистым" функциям, вы можете отключить инлайнинг при профилировании в настройках MetaEditor:




    Обновлен дизайн отчета
    Мы переработали отчет профилирования, а также представление информации профилирования в окне исходного кода. Дизайн стал более современным и привычным для пользователей Visual Studio.




  2. Исправлена ошибка в работе функции CopyTicksRange. Из-за нее в некоторых случаях функция возвращала не все данные.
  3. Добавлен новый код ошибки TRADE_RETCODE_HEDGE_PROHIBITED — открытие позиции или выставление отложенного ордера невозможно, поскольку перекрытые позиции запрещены. Ошибка возвращается в ответ на попытку произвести торговую операцию, если для счета запрещено хеджирование и на нем уже есть позиция или ордер в противоположном направлении по тому же символу.
  4. Убрана возможность вызова функции MessageBox при отладке индикаторов. MessageBox не вызывается из индикаторов, поскольку она приостанавливает работу потока исполнения на все время ожидания ответа пользователя.
  5. Оптимизировано и значительно ускорено добавление торговых инструментов в "Обзор рынка" с помощью функции SymbolSelect.
  6. Исправлено поведение функции ArrayInsert для массивов фиксированного размера. Теперь оно соответствует документации: при вставке элементов размер массива-приемника не меняется, при этом начиная с позиции вставки элементы массива-приемника сдвигаются вправо (последние count элементов "выпадают" ), а на освободившееся место происходит копирование элементов из массива-источника.

Tester

  1. Исправлена работа с пользовательскими настройками торговых условий при тестировании, переработан диалог настроек.

    • Исправлено начисление пользовательских комиссий. Теперь для работы комиссии достаточно указать только название символа, а не весь путь к нему.
    • Изменено расположение вкладок для более удобной работы.
    • Переименован диалог и опция, включающая пользовательские настройки, для облегчения понимания.
    • Оптимизирована ширина колонок в таблицах настроек.
    • При отключении опции "Использовать пользовательские настройки" все остальные настройки в диалоге теперь деактивируются. Ранее настройки оставались доступными для редактирования, и пользователи могли ошибочно посчитать, что они будут применены при тестировании.




  2. Исправлена ошибка, возникавшая в некоторых случаях при получении ордеров из торговой истории по тикету.

MetaEditor

  1. Добавлены предустановленные цветовые схемы для окна редактирования кода: светлая (по умолчанию), темная и синяя. Теперь для более комфортной работы в ночное время вам не придется перенастраивать внешний вид редактора вручную.

    Помимо этого добавилась возможность настраивать цвет рамки для окна подсказок по функциям.



     
  2. Полностью обновлены иконки на панелях инструментов для поддержки HiDPI-мониторов.
Обновлена документация.

17 сентября 2020

MetaTrader 5 build 2615: Фундаментальный анализ и комплексный критерий в тестере стратегий

Terminal

  1. Расширены возможности для фундаментального анализа инструментов.
    Добавлены новые свойства торговых инструментов, позволяющие еще более точно категоризировать их:
    • Сектор — сектор экономики, к которому относится инструмент. Например: энергетика, финансы, здравоохранение и т.д.
    • Индустрия — отрасль индустрии, к которой относится инструмент. Например: спортивная одежда и аксессуары, производство автомобилей, ресторанный бизнес и т.д.
    • Страна — страна компании, чьи акции обращаются на бирже.
    Эти свойства позволили реализовать в Обзоре рынка отдельную систему для удобной работы с инструментами по секторам. Выберите нужную категорию из меню, и все доступные инструменты из нее будут добавлены в список для комплексного анализа:



    Также новые свойства теперь доступны в спецификации контрактов:



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



    Доступность новых данных зависит от брокеров, поскольку именно они контролируют настройки. Однако мы постарались сделать так, чтобы информация стала доступна по умолчанию для максимального количества инструментов. Как только брокеры обновят свои серверы на новую версию, данные по странам, секторам и индустрии появятся в ваших платформах.
  2. Улучшена витрина Сигналов и Маркета. В частности, в левую часть окна добавлены кнопки для оформления подписки и для всех вариантов аренды:



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

  3. Исправлено вычисление потенциальной прибыли/убытка для уровней Стоп Лосс и Тейк Профит на графиках.



  4. Исправлены ошибки в расчете синтетических инструментов. В некоторых случаях ошибки могли приводить к зависанию платформы при запуске.
  5. Исправлено отображение значений встроенного индикатора Fractals в Окне данных.
  6. Полностью обновлены иконки на панелях инструментов для поддержки HiDPI-мониторов.
  7. Исправлена ошибка коррекции объема позиции при копировании торговых сигналов. В некоторых случаях корректировка могла не производиться из-за неправильного применения стоп-уровней, что приводило к ошибке "invalid stops".
  8. Оптимизировано перестроение ценовой истории в случае ее изменения на сервере.
  9. Исправлен показ подсказок для торговых уровней на графиках. В некоторых случаях они могли показываться даже при отключенном показе торговых уровней.
  10. Исправлена работа опции "Показать на графиках \ Автообновление" в контекстном меню ордеров и позиций в разделе "Инструменты \ Торговля". Теперь при отключении этой опции показ торговой истории отключается для всех открытых графиков.

MQL5

  1. Добавлена функция MathClassify. Она определяет тип вещественного числа и возвращает результат в виде значения из нового перечисления ENUM_FP_CLASS.
    ENUM_FP_CLASS  MathClassify(
       double  value      // вещественное число
       );
    Перечисление содержит следующие значения:
    • FP_SUBNORMAL — субнормальное число, которое находится ближе к нулю, чем наименьшее представимое нормализованное число DBL_MIN — 2.2250738585072014e-308.
    • FP_NORMAL — нормализованное число, которое находится в диапазоне от 2.2250738585072014e-308 до 1.7976931348623158e+308.
    • FP_ZERO — положительный или отрицательный ноль.
    • FP_INFINITE — число, которое не может быть представлено соответствующим типом — положительная или отрицательная бесконечность.
    • FP_NAN — не является числом.

    Для проверки вещественного числа на валидность можно использовать следующий код:
    if(MathClassify(value)>FP_ZERO)
      {
       Print("value is not a valid number");
      }
  2.  Добавлены новые свойства символов, которые можно получить функциями SymbolInfoString:
    • SYMBOL_COUNTRY — страна компании, чьи акции обращаются на бирже.
    • SYMBOL_SECTOR_NAME — сектор экономики, к которому относится инструмент. Например: энергетика, финансы, здравоохранение и т.д.
    • SYMBOL_INDUSTRY_NAME — индустрия, к которой относится инструмент. Например: спортивная одежда и аксессуары, производство автомобилей, ресторанный бизнес и т.д.

    Свойства возвращаются в виде строки.

    Сектор и индустрия, к которым относится инструмент, также можно получить в виде значения перечисления. Для этого запросите следующие свойства при помощи функции SymbolInfoInteger:
    • SYMBOL_SECTOR
    • SYMBOL_INDUSTRY
    Для работы с этими свойствами добавлены перечисления ENUM_SYMBOL_SECTOR и ENUM_SYMBOL_INDUSTRY.

  3. Реализован новый механизм управления памятью в MQL5-программах. Он выделяет память до 3-х раз быстрее. Также он позволяет избежать ряда потенциальных ошибок доступа к памяти.
  4. Оптимизирована и значительно ускорена работа с торговой историей счета при помощи функций History*.
  5. Исправлен вызов WebRequest из точки входа OnDeinit. Ранее при остановке эксперта эта функция не вызывалась.
  6. Исправлен вызов функции WebRequest из сервисов. Ранее функция могла не вызываться после перезапуска сервиса.
  7. Добавлена проверка поддержки устройством типа double при использовании OpenCL. В финансовых расчетах тип float не подходит из-за слишком большого округления. В связи с этим при расчетах платформа явно требует поддержку double. Теперь при ее отсутствии в журнал платформы будут выводиться сообщения вида device '<name>' does not support type 'double'. Ранее вместо него выдавалось общее сообщение об ошибке.
  8. Значительно ускорено выполнение функции AccountInfoDouble с параметрами ACCOUNT_EQUITY и ACCOUNT_BALANCE.
  9. Исправлена ошибка, возникавшая при применении шаблона к графику при помощи функции ChartApplyTemplate.
  10. Исправлена ошибка вызова функции ChartSetInteger с параметром CHART_BRING_TO_TOP.
  11. В поставляемую библиотеку Alglib добавлен метод Conjugate для расчета сопряженного числа комплексного числа. Библиотека находится в каталоге MQL5\Include\Math\Alglib.
  12. Полностью обновлен профилировщик кода. Новый профилировщик работает значительно быстрее и точнее предыдущего.
    • Для анализа в новом профилировщике используется код, оптимизированный точно также, как при компиляции релизной версии программы. Это позволяет более точно определить скорость работы кода, поскольку именно такой код будет использоваться в реальной работе программы.
    • Новый профилировщик использует метод профилирования "Sampling". Это легковесный и точный метод, который собирает статистические данные о работе приложения: через определенные интервалы времени снимаются данные о стеке вызовов и на основе них производится расчет производительности.
    • В отличие от предыдущей версии, новый профилировщик не вносит никаких изменений в анализируемый код. Ранее используемый метод "Instrumentation" добавлял в код определенные конструкции, которые использовались для замера скорости работы функции. Это могло влиять на скорость работы конечного кода.

    Работа над профилировщиком еще продолжается. Дальнейшие улучшения ожидайте в ближайших версиях платформы.

Tester

  1. Оптимизирована работа с облачной сетью вычислений MQL5 Cloud Network. Исправлены ошибки загрузки экспертов агентами.
  2. Добавлен новый критерий оптимизации "Complex Criterion max". Это интегральный, комплексный показатель качества прохода тестирования. Он учитывает сразу несколько параметров:
    • Количество сделок
    • Просадка
    • Фактор восстановления
    • Мат. ожидание выигрыша
    • Коэффициент Шарпа

    Новый критерий позволяет понять, что максимальное значение одного параметра (например, прибыли) не всегда является лучшим вариантом с точки зрения комплексного анализа. Он позволяет поэтапно выбирать наилучшие проходы: сначала по количеству сделок, затем из этой выборки по мат. ожиданию прибыльности, затем по фактору восстановления и так далее. Таким образом, в результате оптимизации вы получаете наилучшие проходы по всем параметрам, а далее из них вы уже можете выбрать конкретные, например, с наибольшей прибылью.

    Выберите новый критерий в настройках тестера стратегий и запустите оптимизацию.



    В результатах оптимизации значение "Complex Criterion max" будет выведено отдельной колонкой "Result". По ней можно сортировать проходы. Новый критерий также поддерживает цветовую подсветку, которая позволяет визуально определить наиболее удачные проходы. Значения ниже 20 подсвечиваются красным, выше 80 — темно зеленым.



  3. Исправлено начисление пользовательских комиссий в тестере стратегий.

MetaEditor

  1. Начата глобальная переработка функций интеллектуального управления кодом (интеллисенс).
    • Теперь в подсказках указывается полная сигнатура функции, а не только ее название.
    • Шрифт, которым отображаются подсказки, теперь берется из настроек MetaEditor.

    Дальнейшие улучшения ожидайте в ближайших версиях платформы.

Обновлена документация

24 июля 2020

MetaTrader 5 build 2560: Улучшения во встроенной системе обучения

Terminal

  1. В предыдущем обновлении платформы мы полностью переработали встроенную систему обучения. Сейчас мы внесли финальные штрихи:
    • Сделали иконку прогресса более заметной
    • Доработали тексты нескольких советов, чтобы ни один пользователь не запутался
    • Исправили ряд ошибок с расчетом прогресса
    Пройдите все уроки, чтобы использовать возможности платформы на 100%.



  2. Оптимизирована и значительно ускорена обработка больших потоков тиков (десятки тысяч в минуту и более).
  3. Исправлены ошибки в расчете изменения цены относительно закрытия предыдущей сессии. Чтобы увидеть этот показатель, включите колонку "Дневное изменение" в контекстном меню "Обзора рынка".

MQL5

  1. Оптимизирован и значительно ускорен доступ к числовым свойствам графика при помощи функции ChartGetInteger.
  2. Исправлены ошибки поиска пользовательского индикатора, запрашиваемого из MQL5-программ через функцию iCustom.

MetaEditor

  1. Добавлена компиляция C/C++-программ в проектах.

Tester

  1. Значительно оптимизирована работа сети облачных вычислений MQL5 Cloud Network. Сеть стала лучше находить подходящих агентов, быстрее распределять задания и возвращать результаты расчетов.

Обновлена документация.

10 июля 2020

MetaTrader 5 build 2530: Сортировка в Обзоре рынка и удобная работа с результатами оптимизации

Terminal

  1. В Обзор рынка добавлена возможность сортировки данных:

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




  2. Существенно переработана и улучшена встроенная система обучения.

    Теперь все интерактивные советы разделены по темам, чтобы вам было проще ориентироваться при обучении. Для каждой категории показывается количество пройденных и оставшихся советов.



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

  3. Добавлен автоматический расчет цены закрытия предыдущей торговой сессии и открытия текущей сессии по инструменту. Если такие данные не предоставляются напрямую вашим брокером, терминал посчитает их по последней и первой котировкам сессии соответственно, а вы сможете увидеть эти данные в Обзоре рынка. Для этого включите соответствующие колонки в разделе "Символы" или же перейдите в раздел "Детали".



  4. Оптимизировано и значительно ускорено применение цен на открытые позиции. При приходе новых тиков в терминал цены, прибыль и маржевые требования по позициям теперь обновляются быстрее.
  5. Исправлен расчет встроенного индикатора Stochastic Oscillator. Ошибка возникала при ограничении количества баров, отображаемых на графиках.

MQL5

  1. Оптимизирована и значительно ускорена работа функции доступа к свойствам торгового счета AccountInfo*.
  2. Оптимизирован и значительно ускорен доступ к числовым свойствам графика при помощи функции ChartGetInteger.

MetaEditor

  1. Для более удобной работы с версионным хранилищем файлов MQL5 Storage в контекстное меню вкладок редактирования кода добавлены три команды:

    • Сравнение рабочей копии файла с текущей ревизией
    • Откат текущих изменений
    • Просмотр истории изменений файла в хранилище




  2. Изменена подсветка парных скобок. Теперь аккуратно подсвечиваются сами скобки, а не фон под ними. По умолчанию подсветка парных скобок отключена. Ее можно включить в настройках редактора.


  3. Улучшена работа функции поиска и замены:

    • Если выделить текст в файле и вызвать окно поиска, текст будет автоматически подставлен в поле "Найти". Если текст в файле не был выделен, то в поле "Найти" будет вставлен текст из буфера обмена. Если буфер обмена был пуст, то в окне поиска просто будет установлен фокус на поле "Найти".
    • Аналогичное поведение реализовано при вызове окна замены, только после вставки выделенного текста в поле поиска курсор перемещается в поле "Заменить на", чтобы вы могли сразу же ввести нужный текст для подстановки.
    • Результаты поиска и замены теперь выводятся не в отдельное диалоговое окно, а в журнал. Если окно "Инструменты" в этот момент включено, в нем автоматически будет выбрана вкладка журнала. Таким образом, вам не нужно тратить время на закрытие лишних окон.

  4. Исправлен поиск в окне сравнения файлов при работе с версионным хранилищем MQL5 Storage.
  5. Добавлена возможность поиска и замены в файлах, включенных в текущий файл через директиву #include.
    Это позволит быстрее работать с проектами, состоящими из множества файлов. Например, для замены текста во всех файлах программы вам не понадобится указывать их каталоги вручную, редактор найдет их автоматически по директивам #include.



Tester

  1. Изменены критерии оптимизации, в которых учитывалось два показателя — баланс и некий второй фактор. Теперь в них учитывается только второй фактор, без баланса. Такие критерии являются более простыми и понятными для анализа.

    • Баланс + максимальная прибыльность -> Максимальная прибыльность
    • Баланс + максимальное матожидание выигрыша -> Максимальное матожидание выигрыша
    • Баланс + минимальная просадка -> Минимальная просадка
    • Баланс + максимальный фактор восстановления -> Максимальный фактор восстановления
    • Баланс + максимальный коэффициент Шарпа -> Максимальный коэффициент Шарпа




  2. В подменю "Оптимизируемые параметры" добавлены команды для быстрого включения и отключения показа всех колонок входных параметров в таблице результатов оптимизации:



  3. Добавлена раскраска таблицы и графика результатов оптимизации для удобного визуального анализа проходов.
    График раскрашивается градиентом от зеленого до красного в зависимости от значения критерия оптимизации. Для таблицы используются следующие цвета:

    • Баланс — синим цветом раскрашиваются значения выше начального депозита, красным — ниже.
    • Прибыль — синим цветом раскрашиваются значения выше нуля, красным — ниже.
    • Матожидание выигрыша — синим цветом раскрашиваются значения выше нуля, красным — ниже.
    • Просадка — от зеленого (0-5%) до красного (выше 30%).
    • Коэффициент Шарпа — от зеленого (больше 2) до красного (ниже 0).
    • Фактор восстановления — от зеленого (больше 2) до красного (ниже 1).



  4. Добавлены фильтры в таблице результатов оптимизации. Теперь вы можете быстро скрыть из списка неудачные проходы:

    • где не было ни одной сделки
    • где робот показал убытки
    • где просадка более 50%
    • где фактор восстановления ниже 1
    • где коэффициент Шарпа меньше 0.5



  5. Значительно оптимизирована работа сети облачных вычислений MQL5 Cloud Network. Например, теперь при повторной оптимизации советника сеть старается использовать для него тех же агентов тестирования, что и ранее. С высокой долей вероятности на них уже готово все рыночное окружение, включая исторические данные, и расчеты можно запустить сразу же.
Обновлена документация.

26 июня 2020

MetaTrader 5 iOS build 2505: Свайпы, новые разделы и цветовые схемы

MetaTrader 5 iOS build 2505

Мы собрали пожелания пользователей iOS-версии MetaTrader 5 и сделали масштабный редизайн приложения

  • Добавлен поиск символов в раздел котировок.
  • Для графиков добавлена цветовая схема "Цветное на белом" по умолчанию.
  • Добавлено отображение сделок на графиках.
  • Панель для смены таймфрейма перенесена наверх и больше не перекрывает график.
  • Добавлено вертикальное масштабирование графиков — просто проведите по шкале цен.
  • Теперь можно переносить счета на другие устройства при помощи QR-кодов.
  • Добавлено отображение изменения цены за сутки в пипсах в разделе котировок. Информация доступна, только если ее предоставляет брокер.
  • В разделы "Котировки", "История" и "Торговля" добавлена поддержка жеста свайпа.
  • Добавлен адаптивный выбор торгового объема для быстрой торговли.
  • Добавлена возможность доступа к генератору OTP по FaceID или отпечатку пальца.
Переработана навигация для iPad
  • Панель быстрой торговли перенесена вверх;
  • Добавлено нижнее меню с разделами и индикаторами;
  • Разделы почты, новостей и управления счетом перенесены в отдельные вкладки;
  • Улучшено управление счетами.

5 июня 2020

MetaTrader 5 build 2485: Улучшения в iCustom и общая оптимизация в MQL5

Terminal

  1. Оптимизировано и значительно ускорено редактирование баровой истории у пользовательских финансовых инструментов, в том числе при помощи функции CustomRatesUpdate.
  2. Исправлены ошибки, возникавшие при экспорте настроек пользовательских инструментов в JSON-файл.
  3. Исправления по крешлогам.

MQL5

  1. Изменен алгоритм загрузки пользовательских индикаторов с помощью iCustom.

    Если перед именем пользовательского индикатора указан обратный слеш '\', то EX5-файл индикатора ищется относительно корневой папки MQL5. Таким образом при вызове iCustom(Symbol(), Period(), "\FirstIndicator"...) индикатор будет загружаться как MQL5\FirstIndicator.ex5. Если по этому пути файла не окажется, вернется ошибка 4802 (ERR_INDICATOR_CANNOT_CREATE).

    Если же путь не начинается с '\', то поиск и загрузка индикатора производятся в следующей последовательности:

    • Сначала EX5-файл индикатора ищется в той же папке, где находится EX5-файл вызывающей программы. Например, советник CrossMA.EX5 находится в папке MQL5\Experts\MyExperts и содержит вызов iCustom(Symbol(), Period(), "SecondIndicator"...) – тогда поиск индикатора производится по пути MQL5\Experts\MyExperts\SecondIndicator.ex5.
    • Если индикатор не найден в том же каталоге, то поиск производится относительно корневой директории индикаторов MQL5\Indicators. То есть ищется файл MQL5\Indicators\SecondIndicator.ex5. Если индикатор не найден по обоим путям, то функция вернет INVALID_HANDLE и будет взведена ошибка 4802 (ERR_INDICATOR_CANNOT_CREATE).

    Если путь к индикатору задан в поддиректории, например как MyIndicators\ThirdIndicator, то сначала поиск ведется в папке вызывающей программы (советник находится в папке MQL5\Experts\MyExperts) по пути MQL5\Experts\MyExperts\MyIndicators\ThirdIndicator.ex5, а затем в случае неуспеха ищется файл MQL5\Indicators\MyIndicators\ThirdIndicator.ex5. При этом разделителем в пути нужно обязательно указывать двойной обратный слеш '\\', например, iCustom(Symbol(), Period(), "MyIndicators\\ThirdIndicator"...).

    Также при обнаружении в коде программы вызова пользовательского индикатора через iCustom, компилятор будет неявно добавлять директиву "#property tester_indicator XXX", если таковая отсутствует.

  2. Оптимизирована и значительно ускорена работа функции HistorySelect, позволяющая запрашивать историю сделок и ордеров.
  3. Исправлена ошибка, возникавшая при запросе тиков через функцию CopyTicksRange. Из-за нее в качестве начала диапазона принималось начало указанного дня без учета указанного времени.
  4. Оптимизировано и значительно ускорено отображение предупреждений с помощью функции Alert.
  5. Добавлено новое свойство SYMBOL_TIME_MSC — время последнего тика символа в миллисекундах. Для получения свойства используется функция SymbolInfoInteger.

1 июня 2020

MetaTrader 5 build 2470

Terminal

  • Исправлена ошибка, из-за которой в "Обзор рынка" была невозможно добавлять финансовые инструменты, в чьих названиях содержались символы '-', '=', '_' и '+'.

MQL5

MetaEditor

  • Исправлен расширенный поиск по символам конца строки '\n' и '\r'.

Обновлена документация.

22 мая 2020

MetaTrader 5 build 2450: Сервис "Подписки", улучшения в интерфейсе и удобные функции в MetaEditor

Terminal

  1. Представляем новый сервис — "Подписки". С ним вы сможете легко получить дополнительные услуги, которые помогут вам в трейдинге. Например, вы можете купить подписку на качественные рыночные данные от известных поставщиков, чтобы потом эти данные анализировать и разрабатывать на них свои стратегии. Или же заказать услуги персонального менеджера, который поможет вам освоить основы торговли и разобраться в тонкостях платформы MetaTrader 5.

    В данный момент сервис находится в активной разработке, и в ближайших версиях платформы вы уже сможете им воспользоваться.

    Как это работает
    В "Навигаторе" платформы появился новый раздел — "Подписки". В нем отображаются доступные услуги. Их перечень зависит от сервера, к которому вы подключены — все они настраиваются на стороне брокера. Для удобства подписки разделяются на категории.



    Выберите услугу, чтобы посмотреть ее подробное описание. Далее нажмите "Подписаться". Для удобства все ваши активные подписки отображаются в отдельном подразделе.



    При подписке на рыночные данные соответствующие торговые инструменты станут доступны для выбора в "Обзоре рынка". Вы сможете работать с ними так же, как с обычными инструментами, которые предоставляет ваш брокер: смотреть котировки в "Обзоре рынка", открывать графики и анализировать их при помощи объектов и индикаторов, использовать данные для проверки экспертов в тестере стратегий и т.д. Единственное ограничение — по этим символам нельзя совершать торговые операции.

    Оплата подписок
    Для оплаты услуг вы сможете использовать средства на торговом счете. Не нужно переходить на другие сайты, все будет совершаться автоматически прямо в платформе.

    Скоро подписку на рыночные данные можно будет купить, подключившись к MetaQuotes-Demo
    Мы планируем настроить на своем демо-сервере подписки на рыночные данные с множества торговых площадок по всему миру. Всего в несколько кликов вы сможете получить котировки в реальном времени с Nasdaq, CME, NYSE, BOVESPA и многих других бирж, чтобы смотреть по ним графики, анализировать динамику цен с помощью встроенных объектов и индикаторов и разрабатывать свои стратегии. Оплачивать подписки можно будет через аккаунт MQL5.community — аналогично тому, как это происходит для Маркета, Сигналов и Хостинга.

  2. В настройки графиков добавлена опция "Показывать тикер". Она позволяет показать/скрыть строку с названием торгового инструмента, таймфреймом и пользовательским комментарием.



  3. В настройки терминала и в настройки графика добавлена опция "Показывать торговую историю". Функция отображения ваших входов и выходов из рынка на графиках была доступна и ранее, однако для управления ею использовался раздел "Инструменты / История". Теперь показ истории сделок настраивается более гибко и удобно. Вы можете определить настройку сразу для всех графиков или же задавать ее отдельно для каждого.

     


    Помимо этого, вы теперь можете быстро включить показ торговой истории и торговых уровней через контекстное меню графика:



  4. В настройки графика добавлена новая цветовая схема "Цветное на белом".



  5. В контекстное меню позиций и ордеров добавлены команды для быстрого открытия стакана цен и графика по соответствующему инструменту:



  6. Добавлена подсветка рамки графиков. При работе с множеством открытых графиков это поможет быстро находить нужный. Выделите символ в Обзоре рынка, строку ордера или позицию в разделе торговли или истории или же алерт, и рамка графика соответствующего символа трижды моргнет.



  7. Улучшено отображение торговых уровней на графике.
    • У позиций, ордеров и уровней больше не показываются тикеты, чтобы не перегружать график
    • Подписи отображаются в верхнем регистре для лучшей читаемости
    • У объемов не показывается дробная часть, если она нулевая
    • При высоте графика менее 80 пикселей уровни скрываются




  8. Теперь в левом верхнем углу графика помимо названия указывается и описание символа, если оно доступно.




  9. В список открытых ордеров и позиций добавлены новые колонки:
    • Изменение — доходность операции в процентах
    • Стоимость — рыночная стоимость позиции
    • Идентификатор эксперта — значение, указываемое экспертом при открытии ордеров и позиций (магический номер)

    Для включения/отключения новых колонок используйте контекстное меню раздела.



    Колонки стоимости позиций и идентификаторов экспертов также добавлены в разделе торговой истории.

    Помимо этого в разделе открытых позиций и истории поле прибыли теперь подсвечивается в зависимости от результата операции.

  10. Добавлена поддержка отрицательных цен. Теперь при возникновении ситуаций, таких как недавнее падение цен на нефть ниже нуля, платформа будет работать корректно:
    • Показывать котировки в Обзоре рынка
    • Показывать графики и стаканы цен
    • Выполнять торговые операции
    • Рассчитывать прибыль и обеспечение и т.д.

  11. Максимальное число инструментов, которые одновременно можно включить в Обзоре рынка, увеличено до 5000.
  12. Исправлена сортировка списка чатов по дате последнего обновления.
  13. Оптимизирована и значительно ускорена работа с большим количеством торговых инструментов (50 000 и более).
  14. Исправлена ошибка, из-за который нельзя было закрыть позицию, чей текущий объем не соответствовал шагу изменения объема по символу.

MQL5

  1. Оптимизирована и значительно ускорена работа с тиковой историей.
  2. Добавлены новые функции для работы с базами данных:
    • DatabaseReset — сбрасывает запрос в начальное состояние, как после вызова DatabasePrepare. Функция предназначена для многократного исполнения запроса с разными значениями параметров. Например, при массовом добавлении данных в таблицу с помощью команды INSERT для каждой записи необходимо сформировать собственный набор значений каждого поля.
    • DatabaseBind — устанавливает значение параметра в запросе. Функцию следует использовать в случае, когда SQL запрос содержит параметризируемые значения "?" или "?N", где N означает номер параметра (начиная с единицы).
    • DatabaseBindArray — устанавливает массив в качестве значения параметра.
  3. Добавлен флаг FSD_FILE_MUST_EXIST для функции FileSelectDialog. Он указывает, что выбранные файлы должны существовать.
  4. В перечисление ENUM_SYMBOL_INFO_DOUBLE добавлены значения для описания опционов:
    • SYMBOL_PRICE_CHANGE — изменение текущей цены относительно конца предыдущего торгового дня, выраженное в процентах.
    • SYMBOL_PRICE_VOLATILITY — волатильность цены в процентах.
    • SYMBOL_PRICE_THEORETICAL — теоретическая цена опциона.
    • SYMBOL_PRICE_DELTA — дельта опциона/варранта. Показывает, на сколько единиц изменится цена опциона при изменении цены базового актива на 1 единицу.
    • SYMBOL_PRICE_THETA — тета опциона/варранта. Количество пунктов, которое будет терять цена опциона каждый день из-за временного распада, т.е. при приближении даты экспирации.
    • SYMBOL_PRICE_GAMMA — гамма опциона/варранта. Показывает скорость изменения дельты — насколько быстро или медленно меняется опционная премия.
    • SYMBOL_PRICE_VEGA — вега опциона/варранта. Показывает количество пунктов, на которое изменится цена опциона при изменении волатильности на 1%.
    • SYMBOL_PRICE_RHO — ро опциона/варранта. Отражает чувствительность теоретической цены опциона к изменению процентной ставки на 1%.
    • SYMBOL_PRICE_OMEGA — омега опциона/варранта. Эластичность опциона — относительное процентное изменение цены опциона на процентное изменение цены базового актива.
    • SYMBOL_PRICE_SENSITIVITY — чувствительность опциона/варранта.  Показывает, на сколько пунктов должна измениться цена базового актива опциона, чтобы цена опциона изменилась на один пункт.

  5. В функции DatabaseExport добавлен экспорт BLOB-полей в формате HEX.
  6. В перечисление ENUM_CHART_PROPERTY_INTEGER добавлено свойство CHART_SHOW_TICKER — отображение в левом верхнем углу тикера символа. Установка CHART_SHOW_TICKER в значение false одновременно также устанавливает CHART_SHOW_OHLC в значение false и отключает показ OHLC.   
  7. Улучшено качество кода, генерируемого компилятором. Это увеличило скорость его исполнения.
  8. Исправлен ряд ошибок при компиляции и исполнении шаблонных функций и классов. В частности:
    • Ошибка несоответствия приоритетов для вызовов перегруженных шаблонных функций
    • Ошибка при генерации шаблонного метода/класса
    • Ошибка при попытке доступа к internal class для шаблонного параметра шаблонной функции
    • Ошибка генерации кода шаблонного класса при использовании internal class
    • Ошибка при использовании шаблонного объекта B<int> перед B<void*>
    • Ошибка при создании сложных несколько раз обернутых объектов с внутренним типом "С"
    • Ошибка при передаче в качестве const ref template аргумента указателя на функцию
    • Ошибка при передаче internal struct в шаблонную функцию
    • Ошибка несоответствия приоритетов выполнения шаблонных функций
    • Некорректный подсчет скобок в циклах for и do-while
    • Некорректный подсчет фигурных скобок в описании структуры класса
    • Медленная работа при добавлении по одному элементу в массив с помощью ArrayResize
    • Ошибка при выборе подходящей перегруженной функции
  9. Исправлена ошибка, возникавшая в некоторых случаях в функции CustomTicksReplace.
  10. Исправлен выбор периода для отображения истории торговых ордеров. Теперь при задании диапазона используется дата исполнения ордеров, а не дата создания, как это было раньше.

Python

  1. В метод initialize добавлен параметр path —  путь к файлу metatrader.exe или metatrader64.exe. Если путь не указан, модуль попытается найти исполняемый файл самостоятельно.
  2. Добавлены новые методы:
    • symbols_get — получает все финансовые инструменты из терминала MetaTrader 5.
    • symbols_total — получает количество всех финансовых инструментов в терминале MetaTrader 5.

  3. Добавлена возможность фильтрации по группе символов для функций orders_get, positions_get, history_orders_get и history_deals_get. Используйте формы вызова с параметром "group".
  4. В возвращаемом значении order_send и order_check теперь передается полное описание изначального запроса  — в поле "request". Например:
    ...
    comment=Request executed
    request_id=55
    retcode_external=0
    request=TradeRequest(action=1, magic=234000, order=0, symbol='USDJPY', volume=0.1, price=108.018, stoplimit=0.0, ...
        traderequest: action=1
        traderequest: magic=234000
        traderequest: order=0
        traderequest: symbol=USDJPY
        traderequest: volume=0.1
        traderequest: price=108.018
        traderequest: stoplimit=0.0
    ...
  5. Теперь Python-скрипты при запуске на графике получают в качестве аргументов имя символа и период этого графика в минутах.
    import sys
    
    chart_symbol='unknown'
    chart_tf=1
    
    if len(sys.argv) == 3:
        chart_symbol, chart_tf = sys.argv[1:3];
    
    print("Hello world from", chart_symbol, chart_tf)
    
    >> Hello world from T.NYSE 15

MetaEditor

  1. Добавлена команда "Добавить существующую папку". Она позволяет массово добавить в проект все поддерживаемые файлы из выбранного каталога.



  2. Расширены возможности поиска и замены.

    Добавлена возможность расширенного поиска с частичной поддержкой регулярных выражений. Используйте \r, \n, \t для указания в поисковых запросах символов переноса строки и табуляции. Диалоги поиска и замены объединены в один с несколькими вкладками.



    Добавлена отдельная вкладка для поиска по сообществам программистов. Среди них теперь не только MQL5.community, но и GitHub, MSDN и Stack Overflow.



    Результаты поиска по внешним ресурсам также удобно выводятся в окно инструментов MetaEditor:


    Для GitHub сразу же доступна возможность скачать исходные файлы. Загрузка осуществляется в отдельный подкаталог папки "Projects", именуемый в соответствии с названием проекта на GitHub.

    Помимо этого в окно результатов поиска добавлена возможность их сортировки по дате.

  3. Добавлена возможность быстро изменять размер шрифта в окне редактирования кода. Для этого зажмите "Ctrl" и прокрутите колесо мыши.
  4. Добавлена возможность импорта таблиц из CSV файлов в таблицы базы данных. При импорте можно задать параметры:
    • Имя для таблицы в базе данных
    • Автоматическое или ручное определение кодировки файла
    • Тип разделителя данных
    • Пропуск определенного количества строк в начале
    • Префикс комментариев
    • Есть ли в файле названия колонок
    • Как будут определяться переносы строк
    • Добавить данные в новую таблицу или уже имеющуюся
    • Какие кавычки использовать для строк



  5. Добавлены команды для быстрой вставки времени и цвета в исходный код программ. Теперь их достаточно выбрать из интерактивного календаря и палитры, соответственно, а редактор вставит их в код в нужном формате.



  6. Отключена поддержка MQL4, так как теперь генерируется только 64-битный код.
  7. Исправлена работа сниппета "Class".
  8. Исправлена поддержка абсолютных путей в проектах.

Обновлена документация.

8 марта 2020

MetaTrader 5 build 2360: Расширение интеграции с SQLite
  1. MQL5: Ошибки работы с базами данных SQLite теперь можно анализировать стандартными средствами MQL5. Для этого в язык добавлены следующие коды ошибок:

    • ERR_DATABASE_ERROR — общая ошибка.
    • ERR_DATABASE_INTERNAL — ошибка внутренней логики SQLite.
    • ERR_DATABASE_PERM — отказано в доступе.
    • ERR_DATABASE_BUSY — файл базы данных заблокирован.
    • ERR_DATABASE_LOCKED — таблица в базе данных заблокирована.
    • ERR_DATABASE_NOMEM — для завершения операции недостаточно памяти.
    • ERR_DATABASE_READONLY — попытка записи в базу данных, доступной только для чтения.
    • ERR_DATABASE_IOERR — ошибка дискового ввода-вывода.
    • ERR_DATABASE_CORRUPT — образ диска базы данных испорчен.
    • ERR_DATABASE_FULL — ошибка вставки, так как база данных заполнена.
    • ERR_DATABASE_CANTOPEN — невозможно открыть файл базы данных.
    • ERR_DATABASE_PROTOCOL — ошибка протокола блокировки базы данных.
    • ERR_DATABASE_SCHEMA — схема базы данных изменена.
    • ERR_DATABASE_TOOBIG — строка или BLOB превышает ограничение по размеру.
    • ERR_DATABASE_CONSTRAINT — прервано из-за нарушения ограничения.
    • ERR_DATABASE_MISMATCH — несоответствие типов данных.
    • ERR_DATABASE_MISUSE — ошибка неправильного использования библиотеки.
    • ERR_DATABASE_AUTH — отказано в авторизации.
    • ERR_DATABASE_RANGE — ошибка применения параметра, неверный индекс.
    • ERR_DATABASE_NOTADB — открытый файл не является файлом базы данных.

  2. MQL5: Исправлена работа функции DatabaseImport, позволяющей импортировать информацию из файла в таблицу базы данных.
  3. MetaEditor: Исправлен вывод в журнал строк длиной более 32Кб.
  4. MetaEditor: Исправлена ошибка, связанная с использованием неверной кодировки при выводе сообщений из консоли Python (stdout, stderr) в раздел "Ошибки" редактора.
  5. Обновлена документация.

21 февраля 2020

MetaTrader 5 build 2340: Управление настройками счета в тестере и расширение интеграции с Python

MetaEditor

  1. Добавлена возможность удобной работы с SQLite базами данных.

    В предыдущем обновлении платформы мы добавили поддержку работы с базами данных SQLite прямо из MQL5. Теперь основные функции стали доступны и через пользовательский интерфейс MetaEditor:

    • Создание и подключение к базам данных
    • Просмотр таблиц и быстрый запрос данных
    • Составление и выполнение SQL-запросов, откат изменений

    Как это работает
    Для быстрого создания баз данных воспользуйтесь "Мастером MQL5". Здесь вы можете сразу создать первую таблицу и определить список ее полей.



    Создав базу, вы перейдете в новый раздел "Навигатора". Из него происходит вся работа с данными.

    В левой части отображаются таблицы базы данных. Для быстрого запроса первой 1 000 записей дважды нажмите на имя таблицы. Здесь же вы можете создавать и открывать другие базы, а также работать с таблицами.

    В основной части редактора происходит работа с базой: заполняйте таблицу данными, делайте поиск и выборки, вводите SQL-запросы и т.д.


    Более подробно о работе с базами данных в MetaTrader 5 читайте в статье "SQLite: нативная работа с базами данных на SQL в MQL5".

  2. Продолжается работа по добавлению поддержки мультиязычных проектов. В этой версии мы расширили функции для работы со скриптами на Python:

    • Теперь их можно удобно создавать через "Мастер MQL5", сразу включая в код зависимости от необходимых библиотек.
    • В навигаторе для них добавлены специальные иконки, в редакторе — подсветка синтаксиса.
    • При запуске скрипта через MetaEditor сообщения из консоли Python (stdout, stderr) выводятся в раздел "Ошибки".



    Для запуска скрипта в редакторе нажмите "Компилировать":



    Для работы с Python не забудьте указать путь к нему в разделе "Настройки / Компиляторы" в MetaEditor. А для работы с библиотекой MetaTrader 5 установите ее командой:
    pip install MetaTrader5
    Подробнее об интеграции с Python читайте в документации.
  3. MetaEditor: Добавлен показ файлов баз данных SQLite (*.db;*.sdb;*.sqlite;*.db3;*.s3db;*.sqlite3) в "Навигаторе".
  4. MetaEditor: Исправлены ошибки при сохранении свойств проекта.

MQL5

  1. : Полностью переработана интеграция с Python. Добавлено множество новых функций и изменено именование команд.

    Новое именование команд
    Имеющиеся команды были переименованы:
    MT5Initialize       -> initialize
    MT5Shutdown         -> shutdown
    MT5TerminalInfo     -> terminal_info
    MT5Version          -> version
    MT5CopyRatesFrom    -> copy_rates_from
    MT5CopyRatesFromPos -> copy_rates_from_pos
    MT5CopyRatesRange   -> copy_rates_range
    MT5CopyTicksFrom    -> copy_ticks_from
    MT5CopyTicksRange   -> copy_tick_range

    Новые команды
    Список поддерживаемых команд значительно расширен. Добавлены функции торговли и работы с торговой историей, получения информации о финансовых инструментах и текущем счете.

    • account_info() — получение информации о текущем счете. Аналог AccountInfoInteger , AcountInfoDouble и AccountInfoString.
    • positions_total() — получение количества открытых позиций. Аналог PositionsTotal.
    • positions_get(symbol, ticket) — получение открытых позиций по символу или тикету.
    • orders_total() — получение количества ордеров. Аналог OrdersTotal.
    • orders_get(symbol, ticket) — получение открытых ордеров по символу или тикету.
    • history_orders_total(from, to) — получение количества ордеров в истории в заданном промежутке времени.
    • history_orders_get(from, to, position, ticket) — получение ордеров из истории в заданном промежутке по тикету или с фильтрацией по позиции.
    • history_deals_total() — получение количества сделок в истории. Аналог HistoryDealsTotal.
    • history_deals_get(from, to, position, ticket) — получение сделок из истории в заданном промежутке по тикету или с фильтрацией по позиции.
    • symbol_info(symbol) — получение информации о финансовом инструменте. Аналог SymbolInfoInteger, SymbolInfoDouble, SymbolInfoString.
    • symbol_info_tick(symbol) — получение последнего тика по символу. Аналог SymbolInfoTick.
    • symbol_select(symbol, enable) — включение/выключение символа в "Обзоре рынка". Аналог SymbolSelect.
    • order_check(request) — проверка маржи для ордера. Аналог OrderCheck.
    • order_send(request) — отправка ордера на сервер. Аналог OrderSend.
    • order_calc_margin(action, symbol, volume, price) — расчет маржи для ордера. Аналог OrderCalcMargin.
    • order_calc_profit(action, symbol, volume, price_open, price_close) — расчет прибыли. Аналог OrderCalcProfit.

    Запуск скриптов Python на графиках
    Теперь скрипты на Python можно запускать прямо на графиках в платформе, аналогично обычным MQL5-программам. В "Навигаторе" они будут отображаться специальными иконками.


    Сообщения скрипта будут выводиться в раздел "Инструменты / Эксперты". Если в скрипте используется библиотека MetaTrader 5, то он сможет получать информацию об инструменте, счете и торговать.

    Python-скрипты можно запускать на одном и том же графике параллельно с другими MQL5-скриптами и советниками. Для остановки скрипта, если его исполнение зациклено, просто удалите его с графика.

    Дополнительная защита
    Чтобы дополнительно защитить ваши счета при использовании сторонних библиотек Python, в настройки терминала добавлена опция "Отключить автоматическую торговлю через внешний Python API".


    Скриптам на Python будут разрешены торговые операции только при явном отключении этой опции.

  2. Значительно ускорен повторный запуск MQL5-программ и повторное создание пользовательских индикаторов из MQL5-программ. В некоторых случаях скорость повысилась в сотни раз.
  3. Добавлены функции для работы с базами данных:

    DatabaseImport
    Импортирует в таблицу данные из файла.
    long  DatabaseImport(
       int           database,          // хендл базы данных, полученный в DatabaseOpen
       const string  table,             // имя таблицы для вставки данных
       const string  filename,          // имя файла для импорта данных
       uint          flags,             // комбинация флагов
       const string  separator,         // разделитель данных 
       ulong         skip_rows,         // сколько первых строк пропустить 
       const string  skip_comments      // строка символов, которые определяют комментарии
       );

    DatabaseExport
    Экспортирует таблицу или результат выполнения SQL-запроса в CSV-файл. Файл создается в кодировке UTF-8.
    long  DatabaseExport( 
       int           database,           // хендл базы данных, полученный в DatabaseOpen 
       const string  table_or_sql,       // имя таблицы или SQL-запрос 
       const string  filename,           // имя CSV-файла для экспорта данных 
       uint          flags,              // комбинация флагов 
       const string  separator           // разделитель данных в CSV-файле 
       );

    DatabasePrint
    Печатает таблицу или результат выполнения SQL-запроса в журнал экспертов.
    long  DatabasePrint(
       int           database,          // хендл базы данных, полученный в DatabaseOpen
       const string  table_or_sql,      // таблица или SQL-запрос
       uint          flags              // комбинация флагов
       );

  4. Добавлена функция FileSelectDialog, которая вызывает системный диалог создания/открытия файла или папки.
    int  FileSelectDialog(
       string   caption,              // заголовок окна
       string   initial_dir,          // начальная папка
       string   filter,               // фильтр расширений
       uint     flags,                // комбинация флагов
       string&  filenames[],          // массив с именами файлов
       string   default_filename      // имя файла по умолчанию
       );
    Новая функция позволит реализовать удобное взаимодействие пользователя с MQL5-программой.

  5. В перечисление ENUM_DEAL_PROPERTY_DOUBLE добавлено значение DEAL_FEE — оплата за проведение сделки. Фактически, это отдельный вид комиссии, которая может взиматься брокером.

Tester

  1. Добавлена возможность задавать собственные настройки торгового счета при тестировании стратегий — торговые ограничения, настройки маржи и комиссии. Таким образом, вы получаете еще больше возможностей для моделирования различных торговых условий у брокеров.



    Общие настройки
    В этом разделе вы можете задать максимальное количество открытых ордеров и позиций, которое можно одновременно иметь на счете. Также здесь можно настроить сессии, когда тестируемой программе будет запрещено торговать.

    Маржа
    Здесь вы можете полностью контролировать, как будет резервироваться маржа и какая система учета позиций будет использована при тестировании:

    • Управление рисками — модель управления рисками: внебиржевые и биржевые, с неттингом и хеджингом. Подробная информация о них доступна в справке.
    • Уровень "Margin call" — уровень средств на счете, при достижении которого он переходит в состояние Margin call.
    • Уровень "Stop out" — уровень средств, при достижении которого на счете принудительно снимаются ордера и закрываются торговые позиции. Оба уровня можно указывать в деньгах и в процентах. В первом случае уровни определяются как значение показателя "Средства" на счету. При выборе опции "В процентах" уровни определяются как значение показателя "Уровень маржи" на счету (Средства/Маржа*100).
    • Нереализованная — в данном поле указывается, каким образом будет учитываться текущая незафиксированная прибыль/убыток в свободной марже:
      • Не использовать нереализованную прибыль/убыток — не учитывать открытые позиции при расчете.
      • Использовать нереализованную прибыль/убыток — использовать при расчете убыток и прибыль по открытым позициям.
      • Использовать нереализованную прибыль — использовать только прибыль.
      • Использовать нереализованный убыток — использовать только убыток.
    • Дневная фиксированная — в данном поле указывается, каким образом будет учитываться прибыль/убыток, зафиксированный трейдером в течение торгового дня, в свободной марже:
      • Использовать дневную фиксированную прибыль/убыток — учитывать прибыль и убыток, зафиксированные в течение торгового дня, в свободной марже.
      • Использовать дневной фиксированный убыток — учитывать только убыток, зафиксированный в течение торгового дня, в свободной марже. В течение дня накопленная прибыль фиксируется в отдельном поле счета ("Заблокировано"). По окончании торгового дня накопленная прибыль освобождается (обнуляется) и отражается на балансе счета (учитывается в свободной марже).
    • Освобождать накопленную прибыль в конце дня — данная опция доступна только при включении опции "Использовать дневной фиксированный убыток". Если она включена, то в конце торгового дня прибыль, накопленная в течение дня, будет освобождаться и записываться на баланс (а соответственно учитываться в свободной марже). В ином случае — не будет.

    Комиссия
    В этом разделе вы полностью контролируете, как взимается комиссия со всех торговых операций.

    • Комиссии могут быть одноуровневыми и многоуровневыми, т.е. взиматься в одинаковом размере независимо от объема сделки/оборота или разниться в зависимости от их величины. Соответствующая информация выводится в спецификации.
    • Комиссии могут взиматься сразу при совершении сделки или в конце торгового дня/месяца.
    • Комиссии могут взиматься в зависимости от направления сделки: за вход, за выход или за оба типа операций.
    • Комиссии могут взиматься за каждый лот или за каждую сделку.
    • Комиссии могут взиматься в разных величинах: в деньгах, процентах или пунктах.


  2. Оптимизирована и значительно ускорена работа в режиме "Сканирование рынка", когда производится несколько проходов тестирования по всем символам из "Обзора рынка".
  3. Tester: При расчете прибыли в пипсах теперь учитывается размер сделки или позиции. Ранее расчет велся без учета объема — как для одного лота.
  4. Улучшено управление графиком результатов оптимизации. При увеличении масштаба обычного графика оптимизации появилась возможность его прокручивать. Двойной клик на точке графика теперь выделяет соответствующий результат в таблице проходов.
Обновлена документация.

13 декабря 2019

MetaTrader 5 build 2280

Terminal

  1. Исправлена ошибка, не позволявшая удалить эксперта с графика, для которого нет данных.
  2. Исправлено отображения заголовков графиков при работе под Wine.

MQL5

  1. Ускорена загрузка и компиляция MQL5 программ.
  2. Теперь при двойном клике на графике MQL5-программе передается событие одиночного клика. Ранее такие события не обрабатывались.
  3. Исправлена ошибка в работе функции StringTrimRight.
  4. Добавлена документация по функциям DirectX для 3D-визуализации.

Tester

  1. Исправлена ошибка, из-за которой символ для тестирования в настройках мог оказаться пустым. Такое могло происходить при переключении между торговыми счетами с разным набором торговых инструментов. Как это происходит сейчас: если ранее выбранный в настройках символ отсутствует среди доступных на торговом счете, вместо него автоматически выбирается первый доступный символ из Обзора рынка.

MetaEditor

  1. Исправлена загрузка иконки приложения при переоткрытии свойств проекта.

Обновлены переводы пользовательского интерфейса.
Исправления по крешлогам.
123456789