MetaTrader 5 build 3800: ордера Book or Cancel, помощь AI при написании кода и расширенная поддержка ONNX

В новой версии мы добавили поддержку ордеров Book or Cancel. Такие ордера могут быть только выставлены в стакан цен, но не исполнены сразу. Они используются для реализации пассивной торговли на бирже

8 июня 2023

Terminal

  1. Добавлена поддержка новой политики исполнения ордеров — Пассивная / Book or Cancel (BOC).


    Новая политика исполнения ордеров — Пассивная / Book or Cancel


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

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

  2. Платформа переходит на использование компонента Microsoft Edge WebView2 для отображения HTML-страниц.

    По сравнению с устаревшим MSHTML новый компонент существенно расширяет возможности для отображения веб-контента, предоставляя доступ к современным технологиям. Переход на WebView2 позволит улучшить внешний вид некоторых разделов платформы, увеличить их производительность, создать более отзывчивые интерфейсы. В частности, это коснется разделов "Маркет", "Сигналы" и "VPS".
    Полноценная поддержка WebView2 появилась только в Windows 10. Мы рекомендуем всем пользователям по возможности переходить на последние версии операционной системы. При работе под Windows 7 и Wine платформа продолжит использовать устаревший компонент MSHTML, и новые функции в них не будут доступны. Также мы настоятельно рекомендуем устанавливать все доступные обновления операционной системы. Сейчас минимальной рекомендуемой версией является Windows 10 21H2 (build 19044 от ноября 2021).

  3. Улучшена система безопасности в Маркете. Теперь для запуска продукта пользователь должен быть авторизован в платформе своим MQL5-аккаунтом, через который продукт был приобретен. Аккаунт должен быть указан в разделе "Сервис \ Настройки \ Сообщество":


    Укажите аккаунт MQL5 в настройках платформы


    Если аккаунт не указан или указан неверный аккаунт, продукт не запустится, а в журнале платформы появится сообщение вида:
    'ProductName' requires active MQL5 account in Tools->Options->Community
  4. Добавлена команда "Обзор" в контекстное меню раздела истории. Она позволяет открыть торговый отчет по счету:


    Команда для перехода к торговому отчету


  5. Исправлены ошибки отображения диалога двухфакторной авторизации. При наличии в терминале нескольких счетов с одинаковым номером у разных брокеров в форме подключения к счету могло не отображаться поле для ввода одноразового пароля.
  6. Ускорена отрисовка индикаторов со стилем отображения DRAW_COLOR_CANDLES.
  7. Исправлены ошибки построения торгового отчета. В некоторых случаях значения прибыли и эквити на графиках могли отображаться некорректно.
  8. Добавлено отображение показателя "Издержки" в торговом отчете. Он показывает сумму издержек по сделке относительно текущей средней цены инструмента (mid-point spread cost). Фактически это сумма, которую трейдер теряет на спреде при торговле. Доступность этого показателя зависит от брокера.
  9. Обновлены переводы пользовательского интерфейса.
  10. Улучшена стабильность при работе под Wine, в особенности — в системах macOS. Рекомендуем полностью удалить старые терминалы и установить их заново:


  11. Ускорена установка и скачивание обновлений, а также улучшен учет доступности AVX на компьютере пользователя при выборе дистрибутива.
  12. Включена поддержка TLS 1.3 в веб-протоколах. TLS 1.0 отключен как устаревший и небезопасный.
  13. Исправлен учет агентской комиссии в отчетах по торговой истории. Соответствующие операции могли не учитываться при подсчете итоговой прибыли.
  14. Исправлена ошибка, приводившая к невозможности изменить сервер в диалоге подключения к счету. Проблема возникала при наличии в терминале нескольких счетов с одинаковым номером у разных брокеров.
Инсталляторы переводятся на работу только с 64-битными версиями платформы. Поддержка 32-битных версий завершается. Ранее установленные 32-битные версии платформы будут работать до 1 января 2024 года.

MQL5

  1. Добавлено новое значение STAT_COMPLEX_CRITERION в перечисление ENUM_STATISTICS. Оно позволяет получить значение комплексного критерия, рассчитанного в результате оптимизации.
  2. Доработан метод RegressionMetric, используемый для расчета регрессионной метрики по переданной матрице или вектору. Добавлены параметры vector_true и matrix_true для передачи истинных значений, по которым оценивается качество предсказанных данных.
    double vector::RegressionMetric(
       const vector& vector_true,            // истинные значения
       const ENUM_REGRESSION_METRIC  metric  // метрика
       );
     
    double matrix::RegressionMetric(
       const matrix& matrix_true,            // истинные значения
       const ENUM_REGRESSION_METRIC metric   // метрика
       );
     
    vector matrix::RegressionMetric(
       const matrix& matrix_true,            // истинные значения
       const ENUM_REGRESSION_METRIC metric,  // метрика
       const int                      axis   // ось
       );
  3. Добавлен метод LinearRegression. Он возвращает вектор/матрицу с рассчитанными значениями линейной регрессии для переданного вектора/матрицы.
    vector vector::LinearRegression();
     
    matrix matrix::LinearRegression(
       ENUM_MATRIX_AXIS axis=AXIS_NONE       // ось, вдоль которой считается регрессия 
       );
    Пример:
    vector vector_a;
    //--- заполним вектор ценами
    vector_a.CopyRates(_Symbol,_Period,COPY_RATES_CLOSE,1,100);
    //--- получим линейную регрессию
    vector vector_r=vector_a.LinearRegression();
    Визуализация результата в виде графика:


    Визуализация результата, возвращенного методом LinearRegression


  4. Добавлен метод HasNan — возвращает количество NaN значений в матрице/векторе.
    ulong vector::HasNan();
    ulong matrix::HasNan();
    Методы Compare и CompareByDigits при сравнении соответствующей пары элементов, имеющих значения NaN, считают эти элементы равными, тогда как при обычном сравнении чисел с плавающей точкой NaN != NaN.

  5. Изменена структура OnnxTypeInfo, используемая для работы с моделями ONNX (Open Neural Network Exchange):

    struct OnnxTypeInfo
      {
       ENUM_ONNX_TYPE       type;            // тип параметра
       OnnxTensorTypeInfo   tensor;          // описание тензора
       OnnxMapTypeInfo      map;             // описание карты
       OnnxSequenceTypeInfo sequence;        // описание последовательности
      };

    Теперь тип данных в ней указывается при помощи новых подструктур:

    • OnnxTensorTypeInfo — тензор
    • OnnxMapTypeInfo — карта
    • OnnxSequenceTypeInfo — последовательность

    struct OnnxTensorTypeInfo
      {
       ENUM_ONNX_DATATYPE   data_type;       // тип данных в тензоре
       long                 dimensions[];    // количество элементов
      };
    
    struct OnnxMapTypeInfo
      {
       ENUM_ONNX_DATA_TYPE  key_type;        // тип ключа
       OnnxTypeInfo         type_info;       // тип значения
      };
    
    struct OnnxSequenceTypeInfo
      {
       OnnxTypeInfo         type_info;       // тип данных в последовательности
      };
    В зависимости от OnnxTypeInfo::type (ONNX_TYPE_TENSOR, ONNX_TYPE_MAP или ONNX_TYPE_SEQUENCE) заполняется соответствующая подструктура.

  6. Доработана поддержка моделей ONNX.
  7. Добавлены методы CopyIndicatorBuffer, позволяющие получить данные буфера индикатора в вектор.
    bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,ulong start_pos,ulong count);
    bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,ulong count);
    bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,datetime stop_time);
  8. Исправлена работа с массивами с двумя и более измерениями в методах FrameAdd и FrameNext.
  9. Исправлена работа метода CRedBlackTree::Remove в стандартной библиотеке.
  10. Внесены исправления в библиотеку нечеткой логики Fuzzy.

MetaEditor

  1. Добавлена интеграция с AI Assistant — продвинутым инструментом для автоматического дополнения кода. Его работа основывается на моделях OpenAI. Вы вводите комментарий или часть функции, отправляете запрос (промпт), нейросеть анализирует его и предлагает вам варианты кода для реализации вашей идеи.

    В зависимости от типа файла, в котором вы работаете, в начало каждого промпта автоматически добавляется строка "MQL5 language", "Python language" или "C++ language". Так нейросеть будет выдавать результат на нужном языке.

    В данный момент AI Assistant работает бесплатно, его не нужно отдельно включать. В разделе Сервис \ Настройки \ AI Assistant доступно несколько настроек:


    Настройки AI Assistant


    Настройки оплаты:

    • Использовать MQL5-аккаунт — в данный момент этот режим работает бесплатно. В последующем вы сможете оплачивать подписку напрямую с баланса вашего аккаунта MQL5.
    • Использовать ключ OpenAI — если вы уже оплатили подписку и у вас есть ключ, можете использовать его.

    Настройки запросов:

    • Модель — нейросеть, которая будет обрабатывать ваши запросы. На данный момент доступны text-davinci-003 и gpt-3.5-turbo. В последующем будет добавлена поддержка gpt-4.
    • Максимум токенов — количество единиц текста, которое модель может возвращать в ответ на промпт.
    • Вариативность — влияет на то, насколько строго нейросеть будет придерживаться промпта. Чем больше значение, тем более случайным может быть результат. В моделях OpenAI соответствует параметру temperature.

  2. Добавлена возможность просматривать свойства моделей ONNX.

    Теперь прямо в редакторе можно в удобном виде посмотреть содержимое файла *.onnx. Чтобы посмотреть, как это выглядит, найдите проект ONNX.Price.Prediction в разделе "Инструменты \ Публичные проекты", а затем нажмите "Присоединиться" в контекстном меню. Проект загрузится на компьютер и появится в Навигаторе.


    Открывайте модели ONNX прямо в MetaEditor


  3. Добавлена возможность визуализации моделей машинного обучения и нейронных сетей через Netron. Этот просмотрщик поддерживает множество популярных моделей: ONNX, TensorFlow Lite, Caffe, Keras, ncnn и т.д.

    Для просмотра модели выберите ее файл в Навигаторе и нажмите "Открыть в Netron". Если эта утилита еще не установлена, будет открыта ее страница на GitHub, откуда вы можете скачать установочный файл для своей операционной системы. Например, Netron-Setup-X.X.X.exe — для Windows. После установки программы модель сразу же будет открываться на просмотр из Навигатора.


    Визуализируйте модели машинного обучения через Netron


    Поддерживаемые форматы:

    • armnn, caffemodel, circle, ckpt, cmf, dlc, dnn, h5, har, hd5, hdf5, hn, keras, kmodel,
    • lite, mar, meta, mge, mlmodel, mlnet, mlpackage, mnn, model, nb, ngf, nn, nnp,
    • om, onnx, ort, paddle, param, pb, pbtxt, pdiparams, pdmodel, pdopt, pdparams, prototxt, pt, pth, ptl,
    • rknn, t7, tfl, tflite, tmfile, tm, tnnproto, torchscript, uff, xmodel

  4. Обновлены переводы пользовательского интерфейса.

Tester

  1. Исправлен расчет показателя "Средняя убыточная сделка" в отчете тестирования. Ранее в расчете могли ошибочно учитываться сделки входа, если за них взималась комиссия.
  2. Доработана настройка пользовательских комиссий в тестере стратегий. Чтобы задать символ, теперь достаточно указать только его название, а не путь целиком.
  3. Обновлены иконки в тестере стратегий. Новые метафоры и современный вид облегчат восприятие информации.

Исправления по крешлогам.

Web Terminal

  1. Доработан раздел торговой истории:

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


    Обновленный раздел торговой истории

  2. Дополнена спецификация контракта по инструментам. Теперь в ней также показываются лимит по объемам, размер и стоимость тика, начальная и хеджированная маржа.
  3. Улучшены цветовые схемы:

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

  4. Добавлен перевод интерфейса на арабский, болгарский, вьетнамский, греческий, индонезийский, малайский, нидерландский, персидский, польский, тайский, украинский и хинди. Теперь веб-терминал доступен уже на 24 языках.
  5. Исправлен перевод на турецкий язык.
  6. Исправлена модификация и удаление отложенных ордеров в мобильной версии веб-терминала.
  7. Исправлена подсказка о закрытом рынке, отображаемая на графике.
  8. Исправлено отображение прибыли на кнопке закрытия позиции в торговом диалоге. Ошибка возникала при частичном закрытии.
  9. Исправлено отображение торговых уведомлений на графике.
  10. Исправлено изменение объема при помощи стрелок в стакане цен.
  11. Исправлена ошибка, в некоторых случаях приводившая к сбросу настроек индикаторов на графике.
  12. Исправлена проверка имени пользователя при открытии новых счетов. Ранее наличие апострофа в имени считалось ошибкой.
  13. Исправлена обработка реквотов. В некоторых случаях диалог с предложением новых цен мог не отображаться.
  14. Исправлено отображение индикатора Ichimoku Kinko Hyo. Теперь линии Chikou-span, Up kumo и Down kumo отображаются с корректным смещением.
  15. Исправлена проверка начальной маржи при открытии нового ордера. Ошибка возникала при использовании хеджинговой системы учета позиций.
  16. Исправлена прокрутка в окне спецификации контракта.

MQL5.community

  1. Полностью обновлен сайт сети распределенных вычислений MQL5 Cloud Network — https://cloud.mql5.com.

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


    Посетите обновленный сайт MQL5 Cloud Network


  2. Улучшен раздел скриншотов для продуктов в Маркете. Теперь авторы могут загружать иллюстрации размером до 1920*1800 пикселей, что позволит лучше демонстрировать работу приложений. Помимо этого, обновлена галерея скриншотов. В удобной карусели показываются миниатюры изображений, а по клику на них можно открыть полноразмерные картинки.


    Улучшенный раздел скриншотов в Маркете


  3. Улучшен раздел Фриланс. Теперь при размещении первых заказов пользователи будут получать больше подсказок:

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

    Все это поможет не запутаться в процессе и получить желаемый результат.


    Фриланс стал более дружелюбным


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