MetaTrader 5 Trading Terminal build 722

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

16 ноября 2012

Trading Terminal

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

    Добавлена команда Test в контекстное меню MQL5-программ

  2. Исправлена работа трейлинг-стопов для отложенных ордеров.
  3. Исправлена ошибка обновления списка продуктов в MQL5 Market.
  4. В информацию о ценовых статистиках торгового инструмента добавлен показ процента изменения цены последней сделки по отношению к её предыдущему значению.
  5. Исправлена навигация по чарту при заданной точке фиксации.
  6. Исправлена работа терминала в корпоративных сетях с прокси-серверами.

Trading Signals

  1. Добавлено автоматическое преобразование торговых символов Forex вида EURUSD*. При наличии у источника сигнала позиций по символу EURUSD!, а у подписчика сигнала символа EURUSD (или наоборот), терминал автоматически распознаёт соответствие подобных торговых инструментов друг другу и подменяет их имена при копировании сигнала.
  2. В описании сигнала добавлен показ открытых ордеров и позиций сигнала.

    В описании сигнала добавлен показ открытых ордеров и позиций сигнала

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

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

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

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

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

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

MQL5

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

    Шаблоны можно сравнить с макросом (#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));  // Явная типизация шаблона пока не доступна!
  2. Расширены целочисленные свойства, получаемые функцией 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

  3. Добавлена функция 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

  4. Добавлена перегрузка функции CLExecute, позволяющая задавать размерности локального пространства задач OpenCL.
  5. Исправлена работа функции ArrayFill.
  6. Убрано предупреждение при использовании в функции sizeof() не инициализированной переменной.
  7. Доработан макрос  __FUNCSIG__ - добавлена информация о том, что параметры являются массивами, и об их константности.
  8. Стандартная библиотека. Исправлен метод CCanvas::FillRectangle.
  9. Стандартная библиотека. Классы работы с файлами переписаны с использованием шаблонных методов.
  10. Стандартная библиотека. Добавлена поддержка operator [] в классы динамических массивов CArray*.
  11. Стандартная библиотека. Расширены методы класса CCheckGroup - элемент управления "группа чекбоксов".
  12. Стандартная библиотека. Добавлен метод CIndicator::BarsCalculated.

Strategy Tester

  1. Добавлена совместимость работы тестера в Wine.
  2. Добавлены дополнительные проверки ошибок работы с диском при тестировании.
  3. Исправлена генерация недельных баров у торговых инструментов с котировочной сессией в воскресенье.
  4. Исправлена генерация недельных и месячных баров - в некоторых случаях неправильно выставлялось время бара.
  5. Облачные агенты, имеющие в своём распоряжении менее 100 мегабайт доступного дискового пространства, не допускаются к расчётам задач.
  6. Убраны сообщения в лог о начислении комиссии при проведении оптимизации.
  7. Исправлено поведение диалога настроек при тестировании индикатора.
  8. Исправлено отображение графика оптимизации при большом количестве проходов.

MetaEditor

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

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

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

Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com