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

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

17 сентября 2020

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.

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

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