Список изменений в билдах MetaTrader 5 Client Terminal - страница 15

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes Software Corp.
Модератор
211567
MetaQuotes Software Corp.  

MetaTrader 5 Client Terminal build 630

  1. Terminal: Добавлен пропуск удаления графических объектов, созданных MQL5-программами, при удалении клавишей Backspace.


    В настоящее время с помощью свойства OBJPROP_HIDDEN, выставляемого только из MQL5-программ, графические объекты разделены на созданные вручную и автоматические. По умолчанию в списке объектов показываются только созданные вручную. Это повышает удобство работы, так как в большинстве случаев для объектов, созданных программным путем, не требуется управление из интерфейса клиентского терминала. Чтобы увидеть все объекты, нужно нажать на кнопку "List All".



    В новом билде программно созданные объекты не будут удаляться по команде "Удалить последний (Backspace)".
    Это предотвратит случайное удаление интерфейсных объектов. Удалить их можно будет программно или через окно "Список объектов (Ctrl+B)".

  2. Terminal: Добавлено отображение начала и конца торговли по символу в диалоге настроек символа:



  3. MQL5: В язык MQL5 добавлена поддержка перегрузки операций.

    Перегрузка операций позволяет описывать и применять к созданным программистом типам данных операции, по смыслу эквивалентные уже имеющимся в языке. Например, перегрузка оператора "[]" позволяет реализовать класс с поведением массива, а перегрузка арифметических операторов позволяет реализовать классы для работы с комплексными числами.  В описанных случаях перегрузка операций позволяет использовать привычный синтаксис и избежать создания множества функций вида ComplexPlusComplex, IntegerPlusComplex, ComplexMinusFloat и т.д.

    Кроме того, поддержка перегрузки операторов в MQL5 обеспечивает совместимость с языками программирования общего назначения (в частности с языком С++), облегчая перенос ранее написанного кода (программных библиотек) на MQL5.

  4. MQL5: В язык MQL5 добавлена поддержка статических полей и методов классов и структур.

    Статические поля и методы является собственностью класса, поэтому для доступа к статическим полям не требуется создавать экземпляры соответствующего класса. Наличие статических полей и методов в языке увеличивает его гибкость и выразительность. Например, с помощью этих методов легко реализовать контроль за числом экземпляров (объектов) данного класса.

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

  5. MQL5: Добавлено новое свойство графического объекта "Edit" - OBJPROP_ALIGN - выравнивание текста внутри поля редактирования. Свойство устанавливается и читается методами ObjectSetInteger\ObjectGetInteger.
  6. MQL5: Исправлено поведение функции ArrayIsDynamic. При инициализации динамического массива списком инициализации функция ArrayIsDynamic определяла массив как статический.
  7. MQL5: Исправлена ошибка в неявном преобразовании double в bool, приводящая в некоторых случаях к ошибке "invalid ex5".
  8. MQL5: Обновлена стандартная библиотека - внесены мелкие исправления и улучшения.
  9. MetaTester: Расширен набор характеристик в результатах тестирования - добавлены новые характеристики и диаграммы:




  10. MetaTester: Исправлено зацикливание тестирования при отсутствии ценовой истории.
  11. MetaTester: Исправлен отказ от модификации отложенных ордеров при приближении ко времени истечения ордера.
    Ранее, если до времени удаления отложенного ордера оставалось менее 5 минут, при попытке корректной модификации ордера возвращалась некорректная ошибка TRADE_RETCODE_INVALID_EXPIRATION.
  12. MetaTester: Исправлена ошибка генерации отрицательного спреда при тестировании по ценам открытия.
  13. MetaTester: Оптимизирована передача пользовательских результатов тестирования с помощью функции FrameAdd.

    При запуске эксперта в тестере стратегий можно создать собственный массив данных на основе простых типов или простых структур. Этот набор данных можно сохранить с помощью функции FrameAdd() в специальной структуре, называемой фрейм (кадр). Каждый агент при оптимизации эксперта может посылать в терминал серию фреймов. Все полученные фреймы в порядке поступления от агентов записываются в *.MQD файл в папку каталог_терминала/MQL5/Files/Tester по имени эксперта.
    В результате проведённых работ оптимизирована передача фреймов от тестера клиентскому терминалу и увеличена скорость доступа к полученным фреймам из эксперта в точках входа OnTesterPass.

  14. MetaTester: Исправлена работа контекстного меню во вкладках результатов тестирования.
  15. MetaTester: Исправлена инициализация AccountInfo при оптимизации стратегий (код приведён в точное соответствие с одиночным тестированием). Из-за этой ошибки могла возникать разница между результатами оптимизации и одиночными прогонами на тех же параметрах.
  16. MetaEditor: Убрана подсветка текущей строки по умолчанию. Ранее при начальной установке MetaEditor подсветка текущей строки по умолчанию была включена.







  17. MetaEditor: В мастер создания эксперта MQL5 Wizard добавлена поддержка точек входа OnTester*



    Данные точки входа являются обработчиками событий, которые автоматически генерируются тестером стратегий при тестировании (OnTester) и оптимизации (OnTesterInit, OnTesterPass, OnTesterDeinit) эксперта. Использование этих функций в эксперте предназначено для реализации пользовательской обработки результатов тестирования и оптимизации.

  18. MetaEditor: Добавлены сниппеты для точек входа OnTester*.

    Для облегчения написания кода в MetaEditor предусмотрена возможность вставки сниппетов — небольших шаблонных фрагментов исходного кода, описывающих ту или иную конструкцию языка MQL5. Вставка сниппета инициализируется написанием ключевого слова. После набора ключевого слова курсор изменяется на "Возможна вставка сниппета". После этого необходимо нажать клавишу "Tab". Более подробно о работе со сниппетами можно ознакомиться в справке MetaEditor.

    Ключевыми словами для точек входа OnTester, OnTesterInit, OnTesterPass и OnTesterDeinit будут служить слова OnTester, OnTesterInit, OnTesterPass и OnTesterDeinit.

  19. MetaEditor: Расширены возможности MetaAssist для поддержки перегрузки операторов.

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

  20. MetaEditor: Добавлено окно отображение отличий между локальным файлом исходного текста и версией в MQL5 Storage:





  21. Исправления по крешлогам.
  22. Обновлена документация.

Обновление доступно через систему LiveUpdate с 11 апреля 2012 года.

MetaQuotes Software Corp.
Модератор
211567
MetaQuotes Software Corp.  


MetaTrader 5 Client Terminal build 642

  1. Terminal: Добавлен глобальный поиск по клиентскому терминалу и MQL5.com.

    Поиск в клиентском терминале позволяет быстро находить необходимую информацию во всех разделах клиентского терминала, Code Base и MQL5.com.
    Используется регистронезависимый поиск подстроки в строке. Поиск осуществляется в разделах, указанных пользователем в настройках:


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




  2. Terminal: Исправлено отображение в стакане цен объёмов собственных ордеров при их частичном исполнении.
  3. Terminal: Исправлена проверка цены истечения отложенного ордера в диалоге выставления отложенных ордеров.
  4. MQL5: Добавлен асинхронный метод отправки торговых запросов OrderSendAsync.

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

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

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

  5. MQL5: Добавлено свойство торгового символа SYMBOL_ISIN (получение через функцию SymbolInfoString) - имя торгового символа в системе международных идентификационных кодов ценных бумаг.

    Международный идентификационный код ценной бумаги (англ. International Securities Identification Number, общепринятое сокращение — ISIN) — 12-разрядный буквенно-цифровой код, однозначно идентифицирующий ценную бумагу.

    Наличие данного свойства символа определяется на стороне торгового сервера.

  6. MetaTester: Расширен отчёт по результатам тестирования, добавлены характеристики MFE-Profit Correlation, MAE-Profit Correlation и графики распределения MFE-Profits и MAE-Profits.






    Maximum Favorable Excursion (MFE) - это максимальный размер потенциальной прибыли, наблюдаемый во время удержания позиции.

    MFE-Profit Correlation - cвязь между результатами позиций и MFE. Каждая позиция в период между открытием и закрытием достигала максимальной прибыли и максимального убытка. MFE показывает прибыль в благоприятном направлении движения цены. Каждой закрытой позиции соответствует результат этой позиции и два показателя - MFE и MAE. Таким образом мы можем нанести каждую позицию на плоскость, где по оси Х откладываем MFE, а по оси Y - результат позиции. Чем ближе результат позиции к значению MFE, тем максимально полно было использовано движение цены в благоприятном направлении. Прямая линия на графике показывает аппроксимацию функцией Profit=A*MFE+B. Показатель Correlation(Profits,MFE) позволяет оценить связь между полученными прибылями/убытками и MFE. Чем ближе к 1 это значение, тем лучше позиции укладываются на прямую аппроксимации. Чем ближе к нулю - тем менее значима связь. MFE более всего характеризует способность реализовывать потенциальную прибыль.


    График распределения MFE-Profits - на диаграмме точками нанесены позиции на плоскости MFE (ось X) - Profits (ось Y). Значения обеих осей даны в валюте депозита. Таким образом, мы видим для каждой позиции не только значение полученной прибыли с учетом свопов по оси Y, но и максимально возможную прибыль за время жизни позиции. Это позволяет оценить насколько хорошо защищается бумажная (нереализованная) прибыль. Хотя само распределение точек на плоскости уже дает достаточно хорошую картину торговой системы, для более объективной оценки показана линейная регрессия, являющаяся аппроксимацией по методу наименьших квадратов. В идеале прямая должна идти под углом 45 градусов.

    Maximum Adverse Excursion (MAE) - максимальный потенциальной убыток, наблюдаемый во время удержания позиции.

    MAE-Profit Correlation
    - связь между результатами позиций и MAE. MAE - Maximum Adverse Excursion. Каждая позиция  в период между открытием и закрытием достигала максимальной прибыли и максимального убытка. MAE показывает убыток в неблагоприятном направлении движения цены. Каждой закрытой позиции соответствует результат этой позиции и два показателя - MFE и MAE. Таким образом мы можем нанести каждую позицию на плоскость, где по оси Х откладываем MAE, а по оси Y - результат позиции. Чем ближе результат позиции к значению MAE, тем максимально полно было произведена защита от движения цены в неблагоприятном направлении. Прямая линия на графике показывает аппроксимацию функцией Profit=A*MAE+B. Показатель Correlation(Profits,MAE) позволяет оценить связь между полученными прибылями/убытками и MAE. Чем ближе к 1 это значение, тем лучше позиции укладываются на прямую аппроксимации. Чем ближе к нулю - тем менее значима связь. MAE характеризует полученную просадку в течение жизни позиции и лучше всего характеризует использование защитного Stop Loss.

    График распределения MAE-Profits
    - точками нанесены позиции на плоскости MAE (ось X) - Profits (ось Y). Значения обеих осей даны в валюте депозита. Таким образом, мы видим для каждой позиции не только значение полученной прибыли с учетом свопов по оси Y, но и максимально просадку за время жизни позиции. Это позволяет оценить позиции на предмет пересиживания просадок. Хотя само распределение точек на плоскости уже дает достаточно хорошую картину торговой системы, для более объективной оценки показана линейная регрессия, являющаяся аппроксимацией по методу наименьших квадратов. Чем меньше позиций с большим отрицательным значением X (MAE) , тем лучше. Позволяет также принять решение на основе графического анализа о максимальном терпимом убытке, после которого вероятность получения прибыли очень мала (если анализ проводится по одной валюте и в пунктах).


  7. MetaTester: В визуальном тестировании реализовано автоматическое добавление используемых индикаторов на графики "чужих" символов-периодов.
  8. MetaTester: Исправлена ошибка при остановке визуального тестирования мультивалютного советника, приводившая к массовым сообщениям "stopped by user" в журнале тестера.
  9. MetaTester: Исправлено зависание оптимизации при добавлении нового агента тестирования в процессе оптимизации.
  10. MetaEditor: Расширены функции управления MQL5 Storage.

    Добавлены новые команды управления хранением исходных файлов, делающие использование MQL5 Storage более удобным:




    • Обновление к ревизии (Update to revision) - выбранные файлы дополняются информацией из аналогичных файлов в указанной ревизии. Для файлов с совпадающими именами происходит слияние данных (merging). Если в ревизию были добавлены файлы, они добавятся в локальную копию. Если в ревизии были удалены файлы, они также будут удалены из локальной копии.
    • Откат к ревизии (Revert to revision) - выбранные файлы безусловно заменяются на файлы из указанной ревизии. Все изменения, внесённые в выбранные файлы, исчезают.




    • Сравнение с рабочей копией - производится сравнение файлов выбранной ревизии с их текущим состояние на локальном компьютере.
    • Сравнение с предыдущей ревизией - сравнение изменений файлов в текущей и предыдущей ревизии.
    • Сравнение двух ревизий - сравнение изменений файлов в двух указанных ревизиях.

  11. Исправления по крешлогам.
  12. Обновлена документация.

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

MetaQuotes Software Corp.
Модератор
211567
MetaQuotes Software Corp.  

MetaTrader 5 Client Terminal build 655

  1. Клиентский терминал поддерживает отправку уведомлений о различных событиях на мобильные устройства под управлением операционных систем iOS и Android при помощи Push-сообщений. Благодаря этой функции трейдер всегда в курсе происходящего.

    Push-уведомления представляют собой короткие сообщения длиной не более 255 символов. Такие уведомления доставляются немедленно и не теряются в пути.

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

    Через MQL5-приложение

    В языке MQL5 доступна специальная функция SendNotification, позволяющая MQL5-программе отсылать push-сообщения на MetaQuotes ID, указанный в настройках терминала.

    Через функцию сигналов

    Клиентский терминал позволяет создавать сигналы, предназначенные для оповещения о событиях на рынке. Работа с ними осуществляется на вкладке "Сигналы" окна "Инструменты". Одним из видов оповещения о событиях является отсылка push-уведомления.

    • Push-уведомления также можно использовать для получения информации об обновлениях на сайте MQL5.community. Для этого укажите ваш MetaQuotes ID в профиле пользователя на вкладке "Контакты".
    • Существует ограничение на количество отсылаемых сообщений: не более 1 сообщения в 0.5 секунды и не более 10 сообщений в минуту.



    Чтобы разрешить клиентскому терминалу отсылать сообщения, включите опцию "Разрешить Push-уведомления".

    Далее укажите один или несколько MetaQuotes ID, разделенных запятыми. Чтобы узнать свой MetaQuotes ID, откройте мобильную версию терминала и перейдите на страницу Настройки -> Сообщения. Так выглядит данная страница в мобильном терминале для iPhone:



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

  2. Terminal: В панели инструментов клиентского терминала добавлена кнопка-ссылка на сайт MQL5.community.






  3. Terminal: В настройках терминала вкладки "Charts" и "Objects" объединены в общую вкладку



  4. Terminal: 32-битная версия терминала скомпилирована с возможностью расширения доступного виртуального адресного пространства. Объём доступной памяти расширяется с 2 Gb:
    • до 3 Gb при использовании 32-битной операционной системы. Для включения этого режима в 32-битной операционной системе, необходимо использовать специальные ключи загрузки операционной системы;
    • до 4 Gb при использовании 64-битной операционной системы. Для включения этого режима в 64-битной операционной системе никаких дополнительных действий не требуется.

  5. Terminal: Добавлен показ размеров графических объектов "Label" и "Bitmap Label" в диалоге их свойств:



  6. Terminal: Исправлена ошибка смены имени объекта после создания при включенной опции "Показывать свойства объекта после создания" - после смены имени объект нельзя было модифицировать или удалить без перезапуска терминала.

  7. Terminal: Добавлен запрет на модификацию путей к изображению у графических объектов "Bitmap", созданных из MQL5 программ.
  8. Terminal: Улучшено сканирование точек доступа торгового сервера - уменьшен период сканирования и уточнён алгоритм выбора наилучшей точки.
  9. Terminal: Улучшено отображение графического объекта "Edit" при использовании шрифта "Wingdings".
  10. Terminal: Исправлено перемещение графических объектов с помощью мыши при отключенной шкале дат.

  11. MQL5: Изменён алгоритм обработки событий таймера. Ранее события таймера поступали в очередь в любом случае, вне зависимости от наличия необработанных событий таймера. Теперь, если в очереди есть хоть одно событие таймера, то новые события таймера не добавляются.

  12. MQL5: Добавлены функции ChartTimePriceToXY и ChartXYToTimePrice - преобразования координат графика из представления время/цена в координаты по оси X и Y, и обратно, для заданного графика и его подокна.

  13. MQL5: Добавлена функции ResourceCreate - для загрузки ресурса из файла или для создания изображения:

    Создание ресурса из файла:
    bool  ResourceCreate(
       const string      resource_name,       // имя ресурса
       const string      path                 // относительный путь к файлу
       );

    Создание изображения на основе массива пикселей:
    bool  ResourceCreate(
       const string      resource_name,       // имя ресурса
       const color&      data[],              // набор данных в виде массива 
       uint              img_width,           // ширина создаваемой картинки-ресурса
       uint              img_height,          // высота создаваемой картинки-ресурса
       uint              data_xoffset,        // смещение левого верхнего угла создаваемой картинки по горизонтали вправо
       uint              data_yoffset,        // смещение левого верхнего угла создаваемой картинки по вертикали вниз
       uint              data_width,          // общая ширина изображения на основе набора данных
       ENUM_COLOR_FORMAT color_format         // способ обработки цвета
       );

    Первый вариант функции позволяет загружать из файлов картинки и звуки, второй вариант предназначен только для динамического создания изображений. Картинки должны быть в формате BMP с глубиной цвета 24 или 32 бита, звуки могут быть только в формате WAV. Размер ресурса не должен превышать 16 Mb.

  14. MQL5: Добавлена функция ChartIndicatorGet - получение хэндла индикатора на указанном графике и подокне по его короткому имени.
  15. MQL5: Добавлена функция IndicatorParameters - получение типа и массива параметров индикатора по его хэндлу.
  16. MQL5: Исправлено поведение при обращении по индексу за пределами массива - при выводе сообщения в журнал экспертов указывается позиция в файле на открывающую [ индекса, при обращении к которому возникает ошибка.

  17. MQL5: Завершены работы по добавлению поддержки профилирования в языке MQL5. В следующем билде планируется добавить функцию профилирования в MetaEditor.

  18. MQL5: Исправлена проверка состояния соединения клиентского терминала при запуске эксперта, увеличивавшая время начала работы эксперта после запуска терминала.

  19. MQL5: Добавлена ошибка компиляции "event handling function not found" при отсутствии в программе точек входа (OnStart, OnTick и т.д.).
  20. MQL5: Исправлена ошибка компиляции, возникающая при вызове статических методов класса из другого класса.
  21. MQL5: Исправлены ошибки в операторе '?'.
  22. MQL5: Переименованы элементы перечисления ENUM_ORDER_TYPE_FILLING:
    • ORDER_FILLING_AON  переименован в ORDER_FILLING_FOK
    • ORDER_FILLING_CANCEL переименован в ORDER_FILLING_IOC

  23. MQL5: Стандартная библиотека.
    • Элементы управления. Исправлено поведение панелей в отдельном подокне индикатора.
    • Элементы управления. Исправлено поведение drag'n'drop элементов управления.
    • Элементы управления. В классы CEdit и CChartObjectEdit добавлено свойство выравненности текста TextAlign.
    • Элементы управления. Класс CRect преобразован в структуру.
    • Добавлен класс CCanvas (Include\Canvas\Canvas.h) для поддержки формирования собственных ресурсов изображений.
    • В класс CTrade добавлена поддержка асинхронной торговли.

  24. MetaTester: Добавлена возможность тестирования индикаторов, в том числе скачанных из MQL5 Market:






    Таким образом появилась возможность оценить поведение индикатора в процессе изменения истории.

  25. MetaTester: Добавлена поддержка использования OpenCL-программ в агентах тестирования.

    Программы на OpenCL предназначены для выполнения вычислений на видеокартах с поддержкой стандарта OpenCL 1.1 или выше. Современные видеокарты содержат сотни небольших специализированных процессоров, которые могут одновременно выполнять простые математические операции над входящими потоками данных. Язык OpenCL берёт на себя организацию таких параллельных вычислений и позволяет добиться огромного ускорения для некоторого класса задач.

  26. MetaTester: Исправления в отчётах результатов тестирования:
    • исправлены графики
    • добавлен учёт выходных дней в расчёте времени жизни позиции.

  27. MetaTester: Добавлен экспорт нового отчёта результатов тестирования в форматах HTML и OpenXML.
  28. MetaEditor: Добавлена поддержка компиляции С++ файлов (*.cpp) при наличии на компьютере Microsoft Visual Studio 2008/2010/Express.


    Таким образом, появляется возможность отлаживать и модифицировать собственные DLL, написанные на С++, прямо в MetaEditor.

  29. MetaEditor: Добавлена возможность автоматического добавления в MQL5-файл экспортируемые функции DLL путём перетаскивания DLL на открытый файл исходного кода MQL5:



  30. MetaEditor: Исправлена проверка модификации файлов в MQL5 Storage из внешнего редактора (не из MetaEditor).
  31. MetaEditor: Исправлено поведение команды Revert при работе с MQL5 Storage.
  32. MetaEditor: Исправлен поиск в файлах в режиме "Только слово целиком". 
  33. MetaEditor: Исправлен переход между параметрами функции при работе MetaAssist.
  34. Исправления по крешлогам.
  35. Обновлена документация.
Обновление доступно через систему LiveUpdate.
MetaQuotes Software Corp.
Модератор
211567
MetaQuotes Software Corp.  
MetaTrader 5 Client Terminal build 674
  1. Terminal: Добавлена возможность публикации скриншотов чартов на сайте MQL5.com. Теперь, при сохранении скриншота чарта, достаточно выбрать соответствующую опцию, после чего скриншот будет автоматически размещён на сайте www.mql5.com, а трейдер получит адрес этого скриншота который может быть использован для публикации на других сайтах и форумах.




  2. Terminal: Используется более точный алгоритм расчёта угла наклона трендовой линии.
  3. Terminal: Исправлен показ числа доступных баров в тултипе чарта.
  4. Terminal: Исправлен показ новостей с одинаковым временем публикации.
  5. Terminal: Добавлена поддержка отображения отменённых сделок.
  6. Terminal: Исправлено отображение кнопки закрытия при закрытии остатка по позиции с объёмом менее минимально разрешённого.
  7. Terminal: Исправлено вычисление спреда и тикового объема в чартах, формируемых терминалом.
  8. MQL5: Добавлена точка входа OnTradeTransaction - получение информации о торговых транзакциях, происходящих с торговым счётом.

    void OnTradeTransaction(const MqlTradeTransaction& trans,const  MqlTradeRequest& request,const MqlTradeResult& result)
    Данная точка входа вызывается для передачи в MQL5-программу информации о торговых транзакциях, происходящих с торговым счётом:
    • добавление, изменение, удаление открытых ордеров
    • добавление, изменение, удаление ордеров в истории
    • добавление, изменение, удаление сделок
    • изменение позиции
    • выполнение торговых запросов клиента и получение результатов.

    Клиентский терминал хранит историю торговых транзакций и при наличии точки входа последовательно передаёт их эксперту. История ограничена по длине 1024 транзакциями и очищается при следующем подключении.

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

  9. MQL5: Исправлено формирование длинных скриншотов чартов средствами MQL5 (функция ChartScreenShot).
  10. MQL5: Исправлена ошибка получения пустого последнего бара у инструментов с построением чартов по Last ценам.
  11. MQL5: Добавлена проверка наличия доступной истории при выполнении функций запроса в синхронных запросах ценовой истории.
  12. MQL5: Добавлена функция заполнения числового массива ArrayFill. Данная функция является аналогом С функции memset, позволяет инициализировать область памяти максимально эффективным образом.
  13. MQL5: Обновлено перечисление ENUM_SYMBOL_SWAP_MODE - параметры начисления свопов по открытым позициям -  добавлены новые значения и переименована часть старых. Поддержка старых значений перечисления оставлена для поддержки совместимости.
  14. MQL5: Расширен набор значений перечисления "типы сделок"  ENUM_DEAL_TYPE, добавлены значения:
    • DEAL_TYPE_BONUS - зачисление бонуса брокером
    • DEAL_TYPE_COMMISSION - списание комиссии брокером
    • DEAL_TYPE_COMMISSION_DAILY - списание комиссии брокером по результатам торгового дня
    • DEAL_TYPE_COMMISSION_MONTHLY - списание комиссии брокером по результатам месяца
    • DEAL_TYPE_AGENT_DAILY - зачисление агентской комиссии по результатам торгового дня
    • DEAL_TYPE_AGENT_MONTHLY - зачисление агентской комиссии по результатам месяца
    • DEAL_TYPE_INTERESTRATE - зачисление накопленных процентов на свободные средства
    • DEAL_TYPE_BUY_CANCELED - отменённая сделка покупки
    • DEAL_TYPE_SELL_CANCELED - отменённая сделка продажи

  15. MQL5: Стандартная библиотека. Добавлена возможность управления элементами списка в классе CComboBox.
  16. MQL5: Стандартная библиотека. Добавлен класс CCanvas (MQL5\Include\Controls\Canvas.mqh).

    Класс CCanvas обеспечивает возможности реализации произвольной графики на пользовательских объектах типа "Bitmap" и "Bitmap Label". Фактически эти объекты становятся поверхностью рисования, на которой может быть нарисовано любое изображение. Таким образом появляется возможность создания собственных графических построений, не связанных с готовыми графическими объектами терминала.

    Класс реализует функции рисования линий, окружностей, прямоугольников, полигонов, их заливки, заливки произвольной области заданным цветом. Кроме того, в дистрибутив клиентского терминала добавлен пример использования этого класса CanvasSample (MQL5\Scripts\Examples\Canvas\CanvasSample.mq5).




  17. MetaTester: Добавлено сохранение промежуточных данных генетической оптимизации - после остановки оптимизации и последующем запуске оптимизация будет начата не с начала, а с места остановки.

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



    Результаты профилирования экспортируются в форматах HTML, CSV и OpenXML. Для перехода на нужную строку кода достаточно сделать двойной щелчок мыши на соответствующей строке отчёта профилирования.

  19. MetaEditor: Исправлено сравнение файлов с содержимым MQL5 Storage.
  20. Исправления по крешлогам.
  21. Обновлена документация.


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

MetaQuotes Software Corp.
Модератор
211567
MetaQuotes Software Corp.  

MetaTrader 5 Client Terminal build 684

  1. Terminal: Добавлена подсветка строки состояния счёта, если счёт находится в состоянии Margin Call или Stop Out.



  2. Terminal: Исправлено рисование графического объекта "Fibonacci Fan".
  3. Terminal: Исправлен расчёт масштаба чарта в режиме "пункты на бар".
  4. Terminal: Исправлено зависание терминала при работе в Wine (для работы в Linux, Mac).
  5. Terminal: Исправлено отображение писем внутренней почты и новостей под Windows XP c Internet Explorer 6.0.
  6. Terminal: Исправлен поиск по сайту MQL5.com при работе в ранних версиях Windows XP.
  7. Terminal: Обновлен перевод клиентского терминала на болгарский язык.
  8. MQL5: В структуру MqlTradeResult добавлено поле request_id - уникальный идентификатор торгового запроса терминала в течение сетевой сессии.

    Данное поле заполняется клиентским терминалом при успешной отправке торгового запроса серверу. В дальнейшем это поле заполняется в параметре result в точке входа OnTradeTransaction. Таким образом обеспечивается возможность однозначного сопоставления вызова функций OrderSend и OrderSendAsync с получением результатов торгового запроса в точке входа OnTradeTransaction.

  9. MQL5: Добавлена совместимость ex5-программ с DLL, созданными с использованием .NET.
  10. MQL5: Исправлена оптимизация функций, возвращающих структуры.
  11. MQL5: Добавлены признаки работы в режиме профилировщика:
    • IS_PROFILE_MODE - макрос, определяющий компиляцию MQL5-программы в режиме профилировки.
    • MQL5_PROFILER - новое значение перечисления ENUM_MQL5_INFO_INTEGER - определение работы программ в режиме профилировщика. Для получения значения следует использовать функцию MQL5InfoInteger.

  12. MQL5: Отключен инлайнинг больших по объему функций, приводивший к чрезмерному размеру EX5-файлов.
  13. MQL5: Введено новое ключевое слово sinput (static input), которое предотвращает ручной ввод значений для перебора входного параметра при оптимизации.
  14. MQL5: Добавлена функция ParameterSetRange(string name, bool enable, double value, double start, double step, double stop), которая позволяет переопределить саму возможность перебора значений, а также диапазон перебираемых значений перед запуском оптимизации. Функция может быть вызвана только из обработчика OnTesterInit. Функция может быть применена к входным параметрам, защищённым ключевым словом sinput.
  15. MQL5: Добавлена функция ParameterGetRange(string name,bool& enable, double& value, double& start, double& step, double &stop). Функция может быть вызвана из обработчиков OnTesterPass и OnTesterDeinit.
  16. MQL5: Стандартная библиотека. В класс CCanvas добавлен метод управления прозрачностью SetTransparentLevel.
  17. MetaEditor: Исправлено автоматическое сохранение всех открытых файлов перед компиляцией.
  18. MetaEditor: Добавлен сниппет для точки входа OnTradeTransaction.

    Для облегчения написания кода в MetaEditor предусмотрена возможность вставки сниппетов — небольших шаблонных фрагментов исходного кода, описывающих ту или иную конструкцию языка MQL5. Вставка сниппета инициализируется написанием ключевого слова. После набора ключевого слова курсор изменяется на "Возможна вставка сниппета". После этого необходимо нажать клавишу "Tab". Более подробно о работе со сниппетами можно ознакомиться в справке MetaEditor.

    Ключевым словом для точки входа OnTradeTransaction служит слово OnTradeTransaction.

  19. MetaEditor: MQL5.Storage - исправлены ошибки работы с MQL5.Storage, связанные с определением наличия изменений.
  20. MetaEditor: В профилировщике исправлено отображение результатов по "инлайн"-коду.
  21. MetaEditor: Исправлен поиск по сайту MQL5.com при работе в ранних версиях Windows XP.
  22. MetaTester: Снято ограничение в 63 одновременно оптимизируемых параметра.

    Теперь для оптимизации можно включать все входные параметры (количество которых ограничено 1024). То есть для генетического поиска оптимальных параметров используется пространство, максимальное значение которого может быть записано в целом 1024-битном числе. Для больших номеров оптимизируемых вариантов был изменён протокол передачи данных между клиентским терминалом и агентами тестирования.

    В связи с этим предыдущие версии тестерных агентов не смогут подключиться к облачной сети и(или) клиентскому терминалу из-за смены протокола, и будут автоматически обновлены через систему LiveUpdate.

  23. MetaTester: Исправлена ошибка, приводящая к неправильному сохранению снапшота генетической оптимизации. Ошибка проявлялась только на "быстрых" математических оптимизациях.
  24. MetaTester: Исправлен отчёт о результатах тестирования при определении последовательностей проигрышей и выигрышей.
  25. MetaTester: Исправлено падение клиентского терминала при остановке агентов тестирования.
  26. Исправления по крешлогам.
  27. Обновлена документация.


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

MetaQuotes Software Corp.
Модератор
211567
MetaQuotes Software Corp.  

MetaTrader 5 Client Terminal build 687

  1. Terminal: Исправлены ошибки, возникающие при покупке в MQL5.Market.
  2. Terminal: Исправлены ошибки, возникающие при работе с MQL5.Market с включенным UAC.
  3. Terminal: Исправлено выставление символа в диалоге открытия нового ордера при использовании контекстного меню чарта и списка открытых позиций и ордеров.
  4. MetaEditor: Исправлены ошибки в диалоге показа изменений при работе с MQL5.Storage.
  5. MetaEditor: Исправлены ошибки при переименовании и удалении файлов, хранящихся в MQL5.Storage.
  6. MetaEditor: Исправлена ошибка при использовании команд расположения окон: Каскадом\Мозаикой\Горизонтально\Вертикально.
  7. MetaTester: Исправлены падения при остановке визуального тестера.
  8. MetaTester: В клиентском терминале исправлена остановка агентов в ходе тестирования.
  9. MetaTester: Исправлен расчёт предполагаемого числа проходов генетической оптимизации.
  10. Исправления по крешлогам.
  11. Обновлена документация.
Обновление доступно через систему LiveUpdate.
MetaQuotes Software Corp.
Модератор
211567
MetaQuotes Software Corp.  

MetaTrader 5 Client Terminal build 695

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



    В случае, если в настройках терминала включена опция "One-click trading", то позиция будет немедленно закрыта по текущей цене (ордер снят). В случае если опция выключена или быстрое закрытие невозможно (например, для торговых инструментов с типом исполнения Request Execution), будет показан стандартный диалог закрытия позиции (снятия ордера).




  2. Terminal: Исправлено представление позиций с типом расчёта "Futures" в окне "Exposure".
  3. Terminal: Исправлена ошибка работы с деревом экспертов в окне "Навигатор".
  4. Terminal: Исправлена ошибка, в некоторых случаях приводившая к отказу от загрузки продуктов из MQL5.Market.
  5. Terminal: Обновлен перевод интерфейса на японский язык.
  6. MQL5: Изменен порядок вызова конструктора объекта, возвращаемого функцией:
    Ранее перед вызовом функции, возвращающей объект, вызывался конструктор по умолчанию, внутри функции на return вызывался оператор копирования.
    Теперь для объекта, возвращаемого из функции, в операторе return вызывается соответствующий конструктор, конструктор копирования или конструктор по умолчанию с вызовом оператора копирования.

  7. MQL5: В перечислении ENUM_SERIES_INFO_INTEGER исправлено написание значения SERIES_SYNCRONIZED -> SERIES_SYNCHRONIZED (исправлена опечатка). Требуется сделать замену в кодах, где оно используется.
  8. MQL5: Исправлена работа с константными указателями.
  9. MQL5: Исправлена загрузка библиотек, состоящих только из ресурсов.
  10. MQL5: Стандартная библиотека. Исправлено поведение диалога CDialog при минимизации. 
  11. MQL5: Стандартная библиотека. В методе CTrade::OrderModify добавлена возможность модификации стоп-лимитных ордеров.
  12. MQL5: Стандартная библиотека. Изменена реализация ряда методов для правильной работы с константными указателями на объекты.
  13. MetaTester: Оптимизирован алгоритм раздачи заданий агентам с учётом потребляемой памяти.
  14. MetaTester: Исправлено формирование объёмов при тестировании по ценам открытия для таймфреймов, превышающих основной.
  15. MetaTester: Исправлена ошибка, приводившая в некоторых случаях к неправильному формированию баров больших таймфреймов при тестировании по ценам открытия.
  16. MetaTester: Исправлено применение сохранённого состояния генетической оптимизации, приводившее в некоторых случаях к "замораживанию" повторно запущенной оптимизации.
  17. MetaTester: Добавлена отсутствовавшая возможность оптимизации "по всем символам из обзора рынка" при отсутствии входных параметров оптимизируемого эксперта.
  18. MetaTester: Исправлена ошибка, приводящая иногда к неправильному выставлению последней цены в обзоре рынка при первом запросе данных по другому инструменту.
  19. MetaTester: Добавлен запрет на подключение к MQL5.Cloud агентов с объёмом физической памяти менее 768 Мб.
  20. MetaTester: Добавлена гарантированная передача полного журнала агента при тестировании.
  21. MetaEditor: Добавлена поддержка проектов в MQL5.com

    Проекты позволяют программистам вести совместную разработку приложений на MQL5. Совместная работа над проектами осуществляется через MQL5 Storage. Соответственно, пользователь должен иметь действующий аккаунт на MQL5.community, а также выполнить подключение к MQL5 Storage.


    Для совместных проектов в каталоге MQL5 предназначена папка Projects. В Навигаторе она отображается синим цветом.
    Несмотря на то, что папка Projects располагается внутри MQL5, в хранилище проекты расположены отдельно от личного каталога пользователя (https://storage.mql5.com/svn/Personal/<MQL5.community account>/MQL5).
    Все проекты хранятся в отдельном разделе https://storage.mql5.com/svn/Projects/

    Проектом считается каталог верхнего уровня в папке Projects. Соответственно, для создания проекта необходимо создать новую папку в разделе Projects при помощи команды "Новая папка", выбрать ее и в контекстном меню выполнить команду "Создать проект".
    После этого проект будет создан. Сообщения об успешном создании проекта будут выведены в журнал MetaEditor.

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


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


  22. MetaEditor: Исправлена работа MetaStyler - исправлен учёт междустрочного выравнивания для строк, начинающихся с #.
  23. MetaEditor: Исправлены ошибки при работе с MQL5.Strorage.
  24. MetaEditor: В MetaAssist исправлен показ списка параметров методов класса при обращении через this.
  25. Обновлена документация.

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

MetaQuotes Software Corp.
Модератор
211567
MetaQuotes Software Corp.  

MetaTrader 5 Client Terminal build 705

  1. Terminal:  Клиентский терминал MetaTrader 5 получил интеграцию с сервисом сигналов MQL5.Signals. Теперь каждый владелец аккаунта MQL5 может подписаться на Источники торговых сигналов, в том числе участников Automated Trading Championship 2012.
    При этом клиентский терминал будет осуществлять копирование торговых сигналов с минимальными задержками в соответствии с установленными настройками сигнала.








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

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

    При синхронизации осуществляется открытие у клиента позиций аналогичных по направлению и торговому инструменту с Источником сигналов. При этом объём открываемой позиции выбирается в соответствии с настройками управления средствами, для открытия позиций используются рыночные ордера с проскальзыванием, установленным в настройках. Кроме того, осуществляется копирование уровней SL и TP. Копирование отложенных ордеров не производится.
    Дальнейшее копирование Сигнала осуществляется только после успешной синхронизации, результаты синхронизации пишутся в журнал терминала с пометкой "Signal".

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

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

    В случае возникновения ошибки при копировании сигнала - потере связи, ошибки выставления ордера и т.д. - осуществляется повторная синхронизация счёта с Источником сигналов.

    В настройках сигнала указывается метод управления средствами - алгоритм выбора объёма сделок по отношению к объёму сделок сигнала:

    • Automatic - объём  выбирается пропорционально соотношению балансов Подписчика и Источника сигналов.
    • Percentage based - объём выбирается как указанный процент от объёма сигнала в Источнике.


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

  2. Terminal: Исправлено выставление значений SL и TP в диалоге редактирования позиции для инструментов с заданным размером тика.
  3. Terminal: Исправлена обработка команд горизонтального и вертикального упорядочивания окон графиков.
  4. Terminal: Исправлен показ списка купленных Продуктов в MQL5.Market.
  5. MQL5: Исправлено значение свойства TERMINAL_LANGUAGE в функции TerminalInfoString при использовании языка по умолчанию.
  6. MQL5: Исправлена проверка на наличие конструктора копирования.
  7. MQL5: Исправлена обработка критических ошибок под х64.
  8. MQL5: Стандартная библиотека. Исправлена передача уникального признака эксперта Magic при выполнении торговых операций в классе CTrade.
  9. MQL5: Стандартная библиотека. Исправлен расчёт рисков классом CMoneyFixedRisk.
  10. MetaTester: Исправлена утечка памяти при очистке списка использованных индикаторов.
  11. MetaTester: Добавлен расчёт комиссий при тестировании и оптимизации.
  12. MetaEditor: Переработана и оптимизирована локальная база редактора для работы с MQL5.Storage.
  13. Обновлена документация.
Обновление доступно через систему LiveUpdate.
MetaQuotes Software Corp.
Модератор
211567
MetaQuotes Software Corp.  


MetaTrader 5 Client Terminal build 712

  1. Terminal: Сигналы. Добавлена опция копирования SL и TP от источника сигнала.




  2. Terminal: Сигналы. Усовершенствован алгоритм автоматического расчёта объёма сделки при входе в рынок. При расчёте учитывается соотношение размера и валюты депозита, а также плеча счёта. Полученный результат приводится к процентам и округляется до десятков (10%, 20% и т.д.).
  3. Terminal: Сигналы. Добавлена поддержка поиска по базе сигналов.



  4. Terminal: Сигналы. Исправлено рисование графиков на странице информации о сигнале при недостатке данных.
  5. Terminal: Сигналы. Исправлено построение мини-графиков в списке доступных сигналов.
  6. Terminal: Сигналы. Добавлена защита от одновременного срабатывания SL\TP и прихода сигнала на закрытие.
  7. Terminal: Сигналы. Расширено журналирование на синхронизации счёта с источником сигнала.
  8. Terminal: Сигналы. Исправлено отображение информации о сигнале и зависание навигации между сигналами при работе под Wine.
  9. MQL5: Исправлен тип, возвращаемый функцией ObjectDelete, - int заменяется на bool.
  10. MQL5: Добавлено свойство чарта CHART_FIXED_POSITION для функций ChartGetDouble\ChartSetDouble - управление точкой фиксации чарта.
  11. MQL5: Добавлена поддержка Named Pipes, включая класс стандартной библиотеки CFilePipe.
  12. MetaTester: Исправлена ошибка в определении сохранённого файлового снимка состояния генетической оптимизации.
  13. MetaTester: Исправлен сдвиг даты начала тестирования при нехватке ценовой истории.
  14. MetaTester: Исправлено падение тестера после тестирования советника, работающего с пользовательским индикатором, который в свою очередь использует любой другой индикатор.
  15. Обновлена документация.
Обновление доступно через систему LiveUpdate.
MetaQuotes Software Corp.
Модератор
211567
MetaQuotes Software Corp.  


MetaTrader 5 Client Terminal build 722

  1. Terminal: Добавлена команда "Test" в контекстное меню MQL5-программ - при выборе данной опции появляется панель тестирования с MQL5-программой, выбранной для тестирования.



  2. Terminal: Исправлена работа трейлинг-стопов для отложенных ордеров.
  3. Terminal: Исправлена ошибка обновления списка продуктов в MQL5 Market.
  4. Terminal: В информацию о ценовых статистиках торгового инструмента добавлен показ процента изменения цены последней сделки по отношению к её предыдущему значению.
  5. Terminal: Исправлена навигация по чарту при заданной точке фиксации.
  6. Terminal: Исправлена работа терминала в корпоративных сетях с прокси-серверами.
  7. Signals: Добавлено автоматическое преобразование торговых символов Forex вида EURUSD*. При наличии у источника сигнала позиций по символу EURUSD!, а у подписчика сигнала символа EURUSD (или наоборот), терминал автоматически распознаёт соответствие подобных торговых инструментов друг другу и подменяет их имена при копировании сигнала.
  8. Signals: В описании сигнала добавлен показ открытых ордеров и позиций сигнала.




  9. Signals: Добавлен диалог согласия с синхронизацией позиций счёта подписчика с позициями сигнала при положительной плавающей прибыли сигнала:



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

  10. Signals: Добавлен диалог автоматического закрытия позиций и ордеров счёта подписчика перед синхронизацией с позициями и ордерами сигнала:




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

  11. MQL5: Добавлена поддержка шаблонных функций и методов.

    Шаблоны можно сравнить с макросом (#define), но представляющим из себя не выражение, а целую функцию. Подстановка шаблона в код происходит при встрече вызова шаблонной функции на основе параметров данного вызова.
    При этом, для каждого из существующего в коде набора параметров вызова шаблонной функции компилятором будет добавлена отдельная функция (со своими отдельными статическими переменными).

    Пример шаблонной функции вычисления максимального значения для массива:
    template<typename T>                       // В < > указываются параметры шаблона через запятую, не более 8.
    T ArrayMax(const T &data[],const T defval) // В качестве параметра может выступать только тип
      {
       T    result=defval;
       uint size  =ArraySize(data);
    //---
       for(uint i=0;i<size;i++)
         {
          if(result<data[i])
            {
             result=data[i];
            }
         }
    //---
       return(result);
      }

    Следует помнить, что автоматическое приведение параметров при вызове шаблонной функции недопустимо. Поэтому следует явно указывать тип параметра. Например, при вызове функции ArrayMax для массива типа char и CHAR_MIN в качестве defval, следует явно указать тип второго параметра как char:

    char a[];
       
       Print(ArrayMax(a,CHAR_MIN));       // ошибка, невозможно применить шаблон, т.к. T может быть или char или int
       Print(ArrayMax(a,(char)CHAR_MIN)); // ошибки нет, параметр шаблона T может быть только char

    Количество параметров шаблона ограничено, их не должно быть более 8. Подстановка шаблонов в код производится только по параметрам вызова, явная типизация шаблона не поддерживается.
    Пример явной типизации:

    Print(ArrayMax<char>(a,CHAR_MIN));  // Явная типизация шаблона пока не доступна!

  12. MQL5: Расширены целочисленные свойства, получаемые функцией CLGetInfoInteger:

    • CL_DEVICE_VENDOR_ID  - id производителя устройства OpenCL
    • CL_DEVICE_MAX_COMPUTE_UNITS  - число вычислительных юнитов устройства OpenCL
    • CL_DEVICE_MAX_CLOCK_FREQUENCY - частота вычислительных юнитов устройства OpenCL
    • CL_DEVICE_GLOBAL_MEM_SIZE - размер глобальной памяти устройства OpenCL
    • CL_DEVICE_LOCAL_MEM_SIZE - размер локальной памяти устройства OpenCL

  13. MQL5: Добавлена функция CLGetInfoString, которая возвращает следующие свойства OpenCL:

    • CL_PLATFORM_PROFILE - тип профиля платформы OpenCL
    • CL_PLATFORM_VERSION - версия платформы OpenCL
    • CL_PLATFORM_NAME - имя платформы OpenCL
    • CL_PLATFORM_VENDOR - имя поставщика (производителя) платформы OpenCL
    • CL_PLATFORM_EXTENSIONS - возможности (расширения) платформы OpenCL
    • CL_DEVICE_NAME - имя устройства OpenCL
    • CL_DEVICE_VENDOR - имя производителя устройства OpenCL
    • CL_DRIVER_VERSION - версия драйвера устройства OpenCL
    • CL_DEVICE_PROFILE - тип профиля устройства OpenCL
    • CL_DEVICE_VERSION - версия устройства OpenCL
    • CL_DEVICE_EXTENSIONS  - возможности (расширения) устройства OpenCL
    • CL_DEVICE_OPENCL_C_VERSION - поддерживаемая версия компилятора OpenCL

  14. MQL5: Добавлена перегрузка функции CLExecute, позволяющая задавать размерности локального пространства задач OpenCL.
  15. MQL5: Исправлена работа функции ArrayFill.
  16. MQL5: Убрано предупреждение при использовании в функции sizeof() не инициализированной переменной.
  17. MQL5: Доработан макрос  __FUNCSIG__ - добавлена информация о том, что параметры являются массивами, и об их константности.
  18. MQL5: Стандартная библиотека. Исправлен метод CCanvas::FillRectangle.
  19. MQL5: Стандартная библиотека. Классы работы с файлами переписаны с использованием шаблонных методов.
  20. MQL5: Стандартная библиотека. Добавлена поддержка operator [] в классы динамических массивов CArray*.
  21. MQL5: Стандартная библиотека. Расширены методы класса CCheckGroup - элемент управления "группа чекбоксов".
  22. MQL5: Стандартная библиотека. Добавлен метод CIndicator::BarsCalculated.
  23. MetaTester: Добавлена совместимость работы тестера в Wine.
  24. MetaTester: Добавлены дополнительные проверки ошибок работы с диском при тестировании.
  25. MetaTester: Исправлена генерация недельных баров у торговых инструментов с котировочной сессией в воскресенье.
  26. MetaTester: Исправлена генерация недельных и месячных баров - в некоторых случаях неправильно выставлялось время бара.
  27. MetaTester: Облачные агенты, имеющие в своём распоряжении менее 100 мегабайт доступного дискового пространства, не допускаются к расчётам задач.
  28. MetaTester: Убраны сообщения в лог о начислении комиссии при проведении оптимизации.
  29. MetaTester: Исправлено поведение диалога настроек при тестировании индикатора.
  30. MetaTester: Исправлено отображение графика оптимизации при большом количестве проходов.
  31. MetaEditor: Добавлена поддержка шаблонных функций и методов в MetaAssist.
  32. Исправления по крешлогам.
  33. Обновлена документация.
Обновление доступно через систему LiveUpdate.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий