Бета-версия платформы MetaTrader 5 build 1910: Свободное перетаскивание графиков и .Net библиотеки в MQL5

 

14 октября 2018 года будет выпущена обновленная версия платформы MetaTrader 5 в бета-режиме. Мы обновим наш публичный демо-сервер MetaQuotes-Demo, находящийся по адресу access.metatrader5.com:443. Призываем всех трейдеров присоединиться к тестированию новой версии платформы, чтобы самостоятельно опробовать все ее возможности и помочь разработчикам в исправлении найденных ошибок.

Для обновления на новый 1910 билд платформы MetaTrader 5 достаточно подключиться к серверу access.metatrader5.com:443.

После окончания данного этапа бета-тестирования будет выпущен финальный билд новой платформы MetaTrader 5.

Обновление содержит следующие изменения:

  1. Terminal: Теперь вы можете выносить графики финансовых инструментов за пределы окна торгового терминала.

    Это удобно при работе с несколькими мониторами. Например, на одном можно расположить основное окно платформы и следить за состоянием счета, а на другом — графики для оценки ситуации на рынке. Чтобы отделить график от терминала, отключите опцию " Закреплен" в его контекстном меню. После этого расположите график на нужном мониторе.



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

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

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



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

    Минимальный объем и шаг его изменения зависит от настроек финансового инструмента на стороне брокера.




  4. Terminal: В окно "Инструменты" добавлена вкладка статей, опубликованных на MQL5.community.  Более 600 подробных материалов о разработке торговых стратегий на MQL5 теперь доступны не выходя из терминала. Новые статьи публикуются каждую неделю.



  5. Terminal: Добавлена поддержка расширенной авторизации с использованием сертификатов при работе под Wine.
  6. Terminal: Исправлено отображение стакана цен при ограничении его глубины одним уровнем.
  7. Terminal: На панель инструментов "Стандартная" добавлена команда "Сохранить как рисунок". Делать снимки графиков и делиться ими в сообществе стало еще легче.




  8. Terminal: Исправлено применение сдвига времени при импорте баров и тиков. Ранее в некоторых случаях сдвиг не применялся.



  9. MQL5: Добавлена нативная поддержка .NET библиотек с "умным" импортом функций. Теперь библиотеки .NET можно использовать без написания специальных оберток —  MetaEditor берет это на себя.

    Для работы с функциями .NET бибилиотеки достаточно импортировать саму DLL без указания конкретных функций. MetaEditor автоматически импортирует все функции, с которыми возможна работа:
    • Простые структуры (POD, plain old data)
    • Структуры с простыми типами данных
    • Публичные статические функции, в параметрах которых используются только простые типы и структуры POD или их массивы

    Для вызова функций из бибилиотеки, просто импортируйте ее:
    #import "TestLib.dll"
    
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       int x=6;
       TestClass::Inc(x);
       Print(x);
      }
    C# код функции Inc класса TestClass выглядит следующим образом:
    public class TestClass
    {
       public static void Inc(ref int x)
       {
        x++;
       }
    }
    В результате выполнения скрипт вернет значение 7.

  10. MQL5: Добавлена поддержка спецификаторов inline, __inline, __forceinline при синтаксическом анализе кода. Наличие этих спецификаторов в коде не будет вызывать ошибки, но и не будет влиять на компиляцию. На данный момент это позволит легче переносить С++ код в MQL5.
    Более подробная информация о спецификаторах доступна в MSDN.

  11. MQL5: Проведена существенная оптимизация исполнения MQL5 программ. В некоторых случаях прирост производительности может достигать 10%. Чтобы получить прирост скорости, перекомпилируйте ваши программы в новой версии MetaEditor.
    К сожалению, дополнительная оптимизация привела к потере совместимости новых программ с предыдущими версиями терминала. Все программы, скомпилированные в MetaEditor версии 1910 и выше, не будут запускаться в терминалах версии ниже 1880. При этом программы, скомпилированные ранее в предыдущих версия MetaEditor, будут в работать в новых терминалах.

  12. MQL5: Проведена большая работа по оптимизации множества функций MQL5.
  13. MQL5: Добавлены новые свойства для прикрепления/открепления графиков от основного окна терминала и управления их положением.

    В перечисление ENUM_CHART_PROPERTY_INTEGER добавлены:

    • CHART_IS_DOCKED — окно графика закреплено. Если установить значение false, то график можно перетащить  за пределы терминала.
    • CHART_FLOAT_LEFT — левая координата открепленного графика относительно виртуального экрана.
    • CHART_FLOAT_TOP — верхняя координата открепленного графика относительно виртуального экрана.
    • CHART_FLOAT_RIGHT — правая координата открепленного графика  относительно виртуального экрана.
    • CHART_FLOAT_BOTTOM — нижняя координата открепленного графика  относительно виртуального экрана.

    В перечислены ENUM_TERMINAL_INFO_INTEGER добавлены:

    • TERMINAL_SCREEN_LEFT — левая координата виртуального экрана. Виртуальным экраном является прямоугольник, охватывающий все мониторы. Если в системе имеется два монитора и их порядок задан справа налево, то левая координата виртуального экрана может оказаться на границе двух мониторов.
    • TERMINAL_SCREEN_TOP — верхняя координата виртуального экрана.
    • TERMINAL_SCREEN_WIDTH — ширина терминала.
    • TERMINAL_SCREEN_HEIGHT — высота терминала.
    • TERMINAL_LEFT — левая координата терминала относительно виртуального экрана.
    • TERMINAL_TOP — верхняя координата терминала относительно виртуального экрана.
    • TERMINAL_RIGHT — правая координата терминала относительно виртуального экрана.
    • TERMINAL_BOTTOM — нижняя координата терминала относительно виртуального экрана.

  14. MQL5: Добавлено поле volume_real в структуры MqlTick и MqlBookInfo. Оно предназначено для работы объемом повышенной точности. Значение volume_real имеет больший приоритет по сравнению с volume. Сервер будет использовать именно это значение, если оно указано.

    struct MqlTick
      {
       datetime         time;          // Время последнего обновления цен
       double           bid;           // Текущая цена Bid
       double           ask;           // Текущая цена Ask
       double           last;          // Текущая цена последней сделки (Last)
       ulong            volume;        // Объем для текущей цены Last
       long             time_msc;      // Время последнего обновления цен в миллисекундах
       uint             flags;         // Флаги тиков
       double           volume_real;   // Объем для текущей цены Last c повышенной точностью
      };

    struct MqlBookInfo
      {
       ENUM_BOOK_TYPE   type;            // тип заявки из перечисления ENUM_BOOK_TYPE
       double           price;           // цена
       long             volume;          // объем
       double           volume_real;     // объем с повышенной точностью
      };

  15. MQL5: В перечисление ENUM_SYMBOL_INFO_DOUBLE добавлены новые свойства:

    • SYMBOL_VOLUME_REAL — объем последней совершенной сделки;
    • SYMBOL_VOLUMEHIGH_REAL — максимальное значение объема совершенной сделки за текущие сутки;
    • SYMBOL_VOLUMELOW_REAL — минимальное значение объема совершенной сделки за текущие сутки;

    Для получения этих свойств используйте функцию SymbolInfoDouble.

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

    Для следующего кода:
    enum Main
      {
       PRICE_CLOSE_,
       PRICE_OPEN_
      };
    
    input Main Inp=PRICE_CLOSE;
    //+------------------------------------------------------------------+
    //| Start function                                                   |
    //+------------------------------------------------------------------+
    void OnStart()
      {
      }
    Компилятор выдаст предупреждение:
    implicit conversion from 'enum ENUM_APPLIED_PRICE' to 'enum Main'
    'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
    Ранее в этом случае выдавалась ошибка:
    'PRICE_CLOSE' - cannot convert enum
    При неправильном использовании перечислений в параметрах функций компилятор по-прежнему будет выдавать ошибку.

  18. MQL5: Исправлены ошибки компиляции шаблонных функций. Теперь при использовании перегруженных шаблонных функций инстанцируется только нужная перегрузка, а не все имеющиеся.
    class X {  };
    
    void f(int)  {  }
      
    template<typename T>
    void a(T*) { new T(2); }  // ранее в этом месте компилятор выдавал ошибку
      
    template<typename T>
    void a()  { f(0); }
      
      
    void OnInit()  { a<X>(); }  
    
  19. MQL5: Оптимизированы некоторые случаи доступа к тиковой истории через CopyTicks* функции.
  20. Tester: Исправлен учет точности валюты депозита при тестировании/оптимизации и формировании соответствующих отчетов.
  21. Tester: Оптмизирована и ускорена работа тестера стратегий.
  22. MetaEditor: Исправлен поиск слова целиком. Теперь при поиске знак подчеркивания учитывается как обычный символ, а не разделитель слов.
  23. Обновлена документация.
 
MQL5: Добавлено поле volume_real в структуры MqlTick и MqlBookInfo. Оно предназначено для работы объемом повышенной точности. Значение volume_real имеет больший приоритет по сравнению с volume. Сервер будет использовать именно это значение, если оно указано.
Очень жаль, что платформа меняется в сторону криптовалют, а в биржевую сторону - нет. Как видно MqlBookInfo доработана. Добавлен объем повышенной точности. А почему не добавить время прихода снапшота стакана в терминал с точностью до миллисекунд? Здесь обсуждалось, @Renat Fatkhullin говорил, разработчики подумают. Очень жаль, что все еще не реализовано. Призываю разработчиков обратить внимание на этот вопрос! Очень нужный параметр для синхронизации тиков и стакана между собой!
 
MetaQuotes Software Corp.:

14 октября 2018 года будет выпущена обновленная версия платформы MetaTrader 5 в бета-режиме. Мы обновим наш публичный демо-сервер MetaQuotes-Demo, находящийся по адресу access.metatrader5.com:443. Призываем всех трейдеров присоединиться к тестированию новой версии платформы, чтобы самостоятельно опробовать все ее возможности и помочь разработчикам в исправлении найденных ошибок.

Для обновления на новый 1910 билд платформы MetaTrader 5 достаточно подключиться к серверу access.metatrader5.com:443.

После окончания данного этапа бета-тестирования будет выпущен финальный билд новой платформы MetaTrader 5.

Обновление содержит следующие изменения:

  1. Terminal: Теперь вы можете выносить графики финансовых инструментов за пределы окна торгового терминала.

Не знаю как в английской версии, а в русской как-то коряво звучит, откреплённое окно "Закреплён". На мой взгляд надо заменить на "Открепить" и "Закрепить". Как-то так.


 
Уже доступно на сервере MetaQuotes-Beta.
 
Общение через терминал. Круто. Сначала люди будут общатся с людьми, потом общаться будут люди и роботы, а потом только роботы...  Мне нравится.)))
 
Посмотрите еще в /include/winapi - там сотни функций и определений из Windows API для удобного использования.
 
Renat Fatkhullin:
Посмотрите еще в /include/winapi - там сотни функций и определений из Windows API для удобного использования.

А как теперь будет в маркете? Советники использующие эти функции будут проходить не смотря на то, что будут использовать .dll? Или нет?

 

MetaQuotes Software Corp.:

12. MQL5: Проведена большая работа по оптимизации множества функций MQL5.

21. Tester: Оптмизирована и ускорена работа тестера стратегий.

Возможны ли подробности по этим пунктам?

 
Alexey Viktorov:

А как теперь будет в маркете? Советники использующие эти функции будут проходить не смотря на то, что будут использовать .dll? Или нет?

Нет конечно.

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

 
fxsaber:

Возможны ли подробности по этим пунктам?

Там сотни мелких улучшений по всему фронту.

 

С DLL отличное решение. Действительно очень удобно будет. Открепление окон - тоже классно. Отличные обновления.

(Не думал, что перейду как раз на последний билд МТ5. Удачно дождался. А так, все переписывать бы пришлось повторно, раз версии не совместимы.)