Как начать работу с Metatrader 5 - страница 121

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая платформа MetaTrader 5 build 2005: экономический календарь, приложения MQL5 как сервисы и API языка R

MetaQuotes Software Corp. , 20.02.2019 17:20

Обновление платформы MetaTrader 5 выйдет 21 февраля 2019 года. В новую версию внесены следующие изменения:

  1. Терминал: полностью переработан встроенный экономический календарь.

    Экономический календарь — это наше собственное решение. В нем вы найдете более 600 финансовых новостей и показателей, относящихся к 13 крупнейшим экономикам мира: США, Европейскому союзу, Японии, Великобритании, Канаде, Австралии, Китаю и другим. Актуальные данные собираются из открытых источников в режиме реального времени.

    В новой версии обновленный контент и расширенные фильтры событий: по времени, приоритету, валюте и стране.

    Доступ к данным календаря теперь можно получить из программ MQL5. Детали смотрите ниже.




  2. Терминал: Добавлен новый тип MQL5-приложений — Сервисы. Этот новый тип позволяет создавать собственные потоки цен для терминала, т.е. осуществлять доставку цен из внешних систем в режиме реального времени, аналогично тому, как это реализовано на торговых серверах брокеров.

    В отличие от экспертов, индикаторов и скриптов сервисы не привязаны к конкретному графику. Такие приложения работают в фоновом режиме и запускаются автоматически при запуске терминала (если только такое приложение не было принудительно остановлено).

    Сервисами можно управлять из нового раздела в окне Навигатора:





    Как создавать услуги
    Для создания шаблона сервиса используйте соответствующую опцию Мастера MQL5 . Службы имеют одну точку входа OnStart , как и сценарии. На этом этапе можно реализовать бесконечный цикл приема и обработки данных с помощью сетевых функций .

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

    Выберите сервис в Навигаторе и нажмите «Добавить сервис» в его контекстном меню. При этом откроется стандартный диалог программы MQL5, в котором вы сможете включить/отключить торговлю и получить доступ к настройкам сигнала, а также задать различные параметры.




    Экземпляр службы можно запускать и останавливать с помощью соответствующего меню экземпляра. Для управления всеми экземплярами используйте сервисное меню.

  3. Терминал: Добавлена обучающая программа.

    Новая функция поможет новичкам научиться взаимодействовать с платформой. Мы добавили более 100 интерактивных советов по основным возможностям платформы.

    • Подсказки плавно отображаются в виде индикатора выполнения на панели инструментов и, таким образом, не отвлекают пользователя.
    • Подсказки появляются только для тех действий, которые вы никогда не совершали в платформе.
    • Все подсказки содержат интерактивные ссылки, по которым можно перейти к нужным элементам интерфейса. Например, торговый диалог или меню с нужной программой можно запустить прямо из подсказки.

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




  4. Терминал: История торгового счета может быть представлена в виде позиций. Платформа собирает данные о сделках, связанных с позицией (открытие, увеличение объема, частичное или полное закрытие) и группирует информацию в единую запись. Таким образом, вы можете получить доступ к деталям позиции: время открытия и закрытия, объем, цена и результат. Эта эффективная форма представления теперь доступна в исторических отчетах, экспортируемых в файлы.




  5. Terminal: Добавлен новый API, позволяющий запрашивать данные терминала MetaTrader 5 через приложения, использующие язык R.

    Мы подготовили специальный пакет для MetaTrader. Он содержит DLL для взаимодействия между R и терминалом MetaTrader 5, документацию и вспомогательные файлы r. Завершаем регистрацию пакета в репозитории CRAN , после чего он будет доступен для скачивания и установки.




    Пакет можно установить с помощью специальной команды:
    R CMD INSTALL --build MetaTrader

    Доступны следующие команды, связанные с запросом данных:

    • MT5Initialize инициализирует и устанавливает соединение с терминалом MetaTrader 5. При необходимости терминал запускается во время выполнения команды.
    • MT5Shutdown деинициализирует и отключается от MetaTrader 5.
    • MT5Version получает версию терминала MetaTrader 5.
    • MT5TerminalInfo получает состояние и параметры подключения терминала к серверу брокера (номер счета и адрес сервера).
    • MT5WaitTerminal ожидает, пока терминал MetaTrader 5 подключится к серверу брокера.
    • MT5CopyTicksFrom(symbol, from, count, flags) копирует указанное количество тиков, начиная с указанной даты. Дата указывается в миллисекундах с 01.01.1970.
    • MT5CopyTicksRange(symbol, from, to, flags) копирует тики внутри указанного периода. Даты указаны в миллисекундах с 01.01.1970.
    • MT5CopyRatesFrom(symbol, timeframe, from, count) копирует указанное количество одноминутных баров, начиная с указанной даты. Дата указывается в секундах с 01.01.1970.
    • MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) копирует одноминутные бары с указанной позиции относительно последнего бара.
    • MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to) копирует бары из указанного периода. Даты указаны в секундах с 01.01.1970.

    Список поддерживаемых команд будет расширен.

  6. Terminal: Оптимизированный диалог Close By , используемый для закрытия позиции встречной. Теперь диалог не тормозится, даже если у вас большое количество открытых позиций.
  7. Терминал: Исправлены ошибки расчета синтетических символов , из-за которых данные иногда могли пропускаться.
  8. Терминал: при удалении пользовательского символа файлы, хранящие историю его тиков и баров, также удаляются. Это позволяет избежать накопления неиспользуемых данных на жестком диске.
  9. Терминал: исправлено отображение результатов поиска на экранах с высоким разрешением.
  10. MQL5: Реализован доступ к данным экономического календаря из программ MQL5.

    Новые функции

    CalendarCountryById — получает описание страны по идентификатору.
     bool CalendarCountryById(
       const long            country_id,    // country ID
       MqlCalendarCountry&  country        // country description
       );
    CalendarEventById — получает описание события по идентификатору.
     bool CalendarEventById(
       const long            event_id,      // event ID
       MqlCalendarEvent&     event           // event description
       );
    CalendarValueById — получает описание значения события по идентификатору.
     bool CalendarValueById(
       const long            value_id,      // value ID
       MqlCalendarValue&     value           // value description
       );
    CalendarEventByCountry — получает массив доступных событий для страны.
     bool CalendarEventByCountry(
       string                country_code,  // country code
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarEventByCurrency — получает массив доступных событий для затронутой валюты.
     bool CalendarEventByCurrency(
       string                currency,       // currency
       MqlCalendarEvent&    events[]       // array of events
       );
    CalendarValueHistoryByEvent — получает массив значений за указанный период времени по идентификатору события.
     bool CalendarValueHistoryByEvent(
       ulong                 event_id,      // event ID
       MqlCalendarValue&    values[],      // array of values
       datetime              datetime_from, // period beginning date
       datetime              datetime_to= 0  // period end date
       );
    CalendarValueHistory — получает массив значений за указанный период времени для всех событий, отфильтрованных по стране и/или валюте.
     bool CalendarValueHistory(
       MqlCalendarValue&    values[],           // array of values
       datetime              datetime_from,     // beginning of period
       datetime              datetime_to= 0 ,     // end of period
       string                country_code=NULL, // country code
       string               currency=NULL      // currency
       );
    CalendarValueLastByEvent — получает массив значений последних событий по идентификатору. Эта функция позволяет запрашивать значения, появившиеся с момента предыдущего запроса. Для этой операции дополнительно используется входной/выходной параметр «change_id».

    При каждом изменении базы данных календаря свойство change_id (идентификатор последнего изменения) обновляется. При запросе данных вы указываете «change_id», и терминал возвращает события, появившиеся после этого времени, а также текущее значение «change_id», которое можно использовать для следующего запроса. При первом вызове функции укажите нулевой «change_id»: функция не будет возвращать никаких событий, а будет возвращать текущий «change_id» для дальнейших запросов.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[]           // array of values
       );
    CalendarValueLast — получает массив последних значений для всех событий, отфильтрованных по стране и/или валюте. Эта функция позволяет запрашивать значения, появившиеся с момента предыдущего запроса. Аналогично CalendarValueLastByEvent для запроса используется свойство change_id.
     bool CalendarValueHistory(
       ulong                 event_id,           // event ID
       ulong &               change_id,         // last calendar change ID
       MqlCalendarValue&    values[],           // array of values
       string                country_code=NULL, // country code
       string currency=NULL                     // currency
       );

    Новые структуры

    MqlCalendarCountry — описание страны.
     struct MqlCalendarCountry
      {
       ulong              id;                         // country ID in ISO 3166-1
       string             name;                       // text name of the country
       string             code;                       // code name of the country in ISO 3166-1 alpha-2
       string             currency;                   // country currency code
       string             currency_symbol;           // country currency symbol/sign
       string             url_name;                   // country name used in URL on mql5.com
      };
    MqlCalendarEvent — описание события.
     struct MqlCalendarEvent
      {
       ulong                           id;           // event ID
       ENUM_CALENDAR_EVENT_TYPE       type;         // event type
       ENUM_CALENDAR_EVENT_SECTOR     sector;       // sector to which the event belongs
       ENUM_CALENDAR_EVENT_FREQUENCY  frequency;     // event release frequency
       ENUM_CALENDAR_EVENT_TIMEMODE   time_mode;     // event release time mode
       ulong                           country_id;   // country ID
       ENUM_CALENDAR_EVENT_UNIT       unit;         // unit for the event values
       ENUM_CALENDAR_EVENT_IMPORTANCE importance;   // event importance
       ENUM_CALENDAR_EVENT_MULTIPLIER multiplier;   // event importance multiplier
       uint                            digits;       // number of decimal places in the event value
       string                          source_url;   // source URL
       string                          event_code;   // event code
       string                          name;         // text name of the event in the terminal language
      };
    MqlCalendarValue — описание значения события.
     struct MqlCalendarValue
      {
       ulong              id;                         // value ID
       ulong              event_id;                   // event ID
       datetime           time;                       // event date and time
       datetime           period;                     // period, for which the event is published
       int                revision;                   // published indicator revision in relation to the reported period
       long               actual_value;               // current event value
       long               prev_value;                 // previous event value
       long               revised_prev_value;         // revised previous event value
       long               forecast_value;             // forecast event value
       ENUM_CALENDAR_EVENT_IMPACRT impact_type;     // potential impact on the currency rate
      };

    Новые перечисления

     enum ENUM_CALENDAR_EVENT_FREQUENCY
      {
       CALENDAR_FREQUENCY_NONE            = 0 ,   // not used
       CALENDAR_FREQUENCY_WEEK            = 1 ,   // weekly
       CALENDAR_FREQUENCY_MONTH           = 2 ,   // monthly
       CALENDAR_FREQUENCY_QUARTER         = 3 ,   // quarterly
       CALENDAR_FREQUENCY_YEAR            = 4 ,   // yearly
       CALENDAR_FREQUENCY_DAY             = 5 ,   // daily
      };
    
    enum ENUM_CALENDAR_EVENT_TYPE
      {
       CALENDAR_TYPE_EVENT                = 0 ,   // event (meeting, speech, etc.)
       CALENDAR_TYPE_INDICATOR            = 1 ,   // indicator
       CALENDAR_TYPE_HOLIDAY              = 2 ,   // holiday
      };
    
    enum ENUM_CALENDAR_EVENT_SECTOR
      {
       CALENDAR_SECTOR_NONE               = 0 ,   // no
       CALENDAR_SECTOR_MARKET             = 1 ,   // market
       CALENDAR_SECTOR_GDP                = 2 ,   // GDP
       CALENDAR_SECTOR_JOBS               = 3 ,   // jobs
       CALENDAR_SECTOR_PRICES             = 4 ,   // prices
       CALENDAR_SECTOR_MONEY              = 5 ,   // money
       CALENDAR_SECTOR_TRADE              = 6 ,   // trade
       CALENDAR_SECTOR_GOVERNMENT         = 7 ,   // government
       CALENDAR_SECTOR_BUSINESS           = 8 ,   // business
       CALENDAR_SECTOR_CONSUMER           = 9 ,   // consumer
       CALENDAR_SECTOR_HOUSING            = 10 ,   // housing
       CALENDAR_SECTOR_TAXES              = 11 ,   // taxes
       CALENDAR_SECTOR_HOLIDAYS           = 12 ,   // holidays
      };
      
    enum ENUM_CALENDAR_EVENT_IMPORTANCE
      {
       CALENDAR_IMPORTANCE_LOW            = 0 ,   // no
       CALENDAR_IMPORTANCE_NONE           = 1 ,   // low
       CALENDAR_IMPORTANCE_MODERATE       = 2 ,   // moderate
       CALENDAR_IMPORTANCE_HIGH           = 3 ,   // high
      };
    
    enum ENUM_CALENDAR_EVENT_UNIT
      {
       CALENDAR_UNIT_NONE                 = 0 ,   // no
       CALENDAR_UNIT_PERCENT              = 1 ,   // percent
       CALENDAR_UNIT_CURRENCY             = 2 ,   // national currency
       CALENDAR_UNIT_HOUR                 = 3 ,   // number of hours
       CALENDAR_UNIT_JOB                  = 4 ,   // number of jobs
       CALENDAR_UNIT_RIG                  = 5 ,   // number of rigs
       CALENDAR_UNIT_USD                  = 6 ,   // US dollar
       CALENDAR_UNIT_PEOPLE               = 7 ,   // number of people
       CALENDAR_UNIT_MORTGAGE             = 8 ,   // number of mortgages
       CALENDAR_UNIT_VOTE                 = 9 ,   // number of votes
       CALENDAR_UNIT_BARREL               = 10 ,   // number of barrels
       CALENDAR_UNIT_CUBICFEET            = 11 ,   // volume in cubic feet
       CALENDAR_UNIT_POSITION             = 12 ,   // number of job positions
       CALENDAR_UNIT_BUILDING             = 13    // number of buildings
      };
      
    enum ENUM_CALENDAR_EVENT_MULTIPLIER
      {
       CALENDAR_MULTIPLIER_NONE           = 0 ,   // no    
       CALENDAR_MULTIPLIER_THOUSANDS      = 1 ,   // thousands
       CALENDAR_MULTIPLIER_MILLIONS       = 2 ,   // millions
       CALENDAR_MULTIPLIER_BILLIONS       = 3 ,   // billions
       CALENDAR_MULTIPLIER_TRILLIONS      = 4 ,   // trillions
      };
      
    enum ENUM_CALENDAR_EVENT_IMPACRT
      {
       CALENDAR_IMPACT_NA                 = 0 ,   // not available
       CALENDAR_IMPACT_POSITIVE           = 1 ,   // positive
       CALENDAR_IMPACT_NEGATIVE           = 2 ,   // negative
      };
    
    enum ENUM_CALENDAR_EVENT_TIMEMODE
      {
       CALENDAR_TIMEMODE_DATETIME         = 0 ,   // the source publishes the exact time
       CALENDAR_TIMEMODE_DATE             = 1 ,   // the event takes the whole day
       CALENDAR_TIMEMODE_NOTIME           = 2 ,   // the source does not publish the event time
       CALENDAR_TIMEMODE_TENTATIVE        = 3 ,   // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
      };

    Новые коды ошибок

    ERR_CALENDAR_MORE_DATA             = 5400 ,   // the array is small for the whole result (values which fit in the array were passed)
    ERR_CALENDAR_TIMEOUT               = 5401 ,   // timed out waiting for a response to the calendar data request
    ERR_CALENDAR_NO_DATA               = 5402 ,   // data not found

  11. MQL5: Исправления и улучшения скорости работы, связанные с историей тиков и баров.
  12. MQL5: Исправления и значительные улучшения скорости работы, связанные с функциями изменения истории тиков и баров пользовательских торговых символов, CustomTicks* и CustomRates* .
  13. MQL5: Новые функции преобразования данных.

    CharArrayToStruct копирует массив uchar в структуру POD.
     bool   CharArrayToStruct(
       void &         struct_object,    // structure
       const uchar &  char_array[],      // array
       uint           start_pos= 0         // starting position in the array
       );
    StructToCharArray копирует структуру POD в массив uchar.
     bool   StructToCharArray(
       const void &  struct_object,      // structure
       uchar &       char_array[],      // array
       uint          start_pos= 0         // starting position in the array
       );

  14. Добавлена функция MathSwap для изменения порядка байтов в значениях ushort, uint и ulong.
     ushort MathSwap( ushort value );
    uint    MathSwap( uint    value );
    ulong   MathSwap( ulong    value );

  15. MQL5: Добавлены сетевые функции для создания TCP-соединений с удаленными хостами через системные сокеты:

    • SocketCreate создает сокет с указанными флагами и возвращает его дескриптор
    • SocketClose закрывает сокет
    • SocketConnect подключается к серверу с контролем времени ожидания
    • SocketIsConnected проверяет, подключен ли сокет в данный момент
    • SocketIsReadable получает количество байтов, которые можно прочитать из сокета.
    • SocketIsWritable проверяет, возможна ли запись данных в этот сокет в текущий момент времени
    • SocketTimeouts устанавливает время ожидания приема и отправки данных для объекта системного сокета.
    • SocketRead читает данные из сокета
    • SocketSend записывает данные в сокет
    • SocketTlsHandshake инициирует безопасное соединение TLS (SSL) с указанным хостом, используя протокол TLS Handshake.
    • SocketTlsCertificate получает информацию о сертификате, используемом для безопасного сетевого подключения.
    • SocketTlsRead считывает данные из безопасного TLS-соединения.
    • SocketTlsReadAvailable считывает все доступные данные из безопасного соединения TLS.
    • SocketTlsSend отправляет данные, используя безопасное соединение TLS.

    Адрес хоста, к которому устанавливается соединение с использованием сетевых функций, должен быть явно добавлен в список разрешенных адресов в настройках терминала.

    Добавлены новые коды ошибок для работы с сетевыми функциями:

    • ERR_NETSOCKET_INVALIDHANDLE (5270): в функцию передан неверный дескриптор сокета
    • ERR_NETSOCKET_TOO_MANY_OPENED (5271): открыто слишком много сокетов (максимум 128)
    • ERR_NETSOCKET_CANNOT_CONNECT (5272): ошибка при подключении к удаленному хосту
    • ERR_NETSOCKET_IO_ERROR (5273): ошибка при отправке/получении данных из сокета
    • ERR_NETSOCKET_HANDSHAKE_FAILED (5274): ошибка установления защищенного соединения (рукопожатие TLS)
    • ERR_NETSOCKET_NO_CERTIFICATE (5275) — нет данных о сертификате, используемом для безопасного соединения

  16. MQL5: Добавлены новые функции для строковых операций :

    StringReserve резервирует для строки буфер памяти указанного размера.
     bool   StringReserve(
       string &        string_var,           // string
       uint            new_capacity          // buffer size for the string
       );
    StringSetLength задает указанную длину строки в символах.
     bool   StringSetLength(
       string &        string_var,          // string
       uint            new_length           // new string length
       );

  17. MQL5: Добавлена новая функция для операций с массивами :

    ArrayRemove удаляет из массива указанное количество элементов, начиная с указанного индекса.
     bool   ArrayRemove(
       void &         array[],              // array of any type
       uint           start,                // the index to start removal
       uint           count=WHOLE_ARRAY      // number of elements
       );
    ArrayInsert вставляет в массив-получатель указанное количество элементов из исходного массива, начиная с указанного индекса.
     bool   ArrayInsert(
       void &         dst_array[],          // receiver array
       const void &   src_array[],          // source array
       uint           dst_start,            // index in the receiver array where to insert
       uint           src_start= 0 ,           // index in the source array to start copying
       uint           count=WHOLE_ARRAY     // number of inserted elements
       );
    ArrayReverse переворачивает в массиве указанное количество элементов, начиная с указанного индекса.
     bool   ArrayReverse(
       void &         array[],              // array of any type
       uint           start= 0 ,               // index to start reversing
       uint           count=WHOLE_ARRAY      // number of elements
       );

  18. MQL5: В функции CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd и CustomTicksReplace добавлен новый параметр "uint count". Это позволяет указать количество элементов переданного массива, которые будут использоваться для этих функций. Значение WHOLE_ARRAY используется для параметра по умолчанию. Это означает, что весь массив будет использован.
  19. MQL5: Добавлена функция CustomBookAdd для передачи статуса стакана цен для пользовательского символа. Функция позволяет транслировать стакан цен, как если бы цены поступали с сервера брокера.
     int   CustomBookAdd(
       const string         symbol,             // symbol name
       const MqlBookInfo&  books[]             // an array with the DOM elements descriptions
       uint                 count=WHOLE_ARRAY   // number of elements to be used
       );
  20. MQL5: Добавлена перегрузка функции CustomSymbolCreate . Это позволяет создать собственный торговый символ на основе существующего. После создания любое свойство символа можно редактировать с помощью соответствующих функций.
     bool   CustomSymbolCreate (
       const string         symbol_name,       // custom symbol name
       const string         symbol_path= "" ,    // name of the group in which the symbol will be created
       const string         symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
       );
    Имя символа, из которого должны быть скопированы свойства пользовательского символа, указывается в параметре "symbol_origin".

  21. Обновлена функция StringToTime , преобразующая строку с датой/временем в значение даты и времени. Теперь он поддерживает следующие форматы даты:

    • гггг.мм.дд [чч:ми]
    • гггг.мм.дд [чч:ми:сс]
    • ггггммдд [чч:ми:сс]
    • ггггммдд [ччмисс]
    • гггг/мм/дд [чч:ми:сс]
    • гггг-мм-дд [чч:ми:сс]

  22. MQL5: Новое свойство TERMINAL_VPS в перечислении ENUM_TERMINAL_INFO_INTEGER ; он показывает, что терминал работает на сервере виртуального хостинга MetaTrader (MetaTrader VPS). Если приложение запущено на хост-сервере, вы можете отключить все его визуальные функции, так как виртуальный сервер не имеет графического пользовательского интерфейса.
  23. MQL5: Новое свойство SYMBOL_EXIST в перечислении ENUM_SYMBOL_INFO_INTEGER означает, что символ под этим именем существует.
  24. MQL5: Исправлен набор текста при использовании предварительных объявлений функций шаблона.
  25. MQL5: Добавлена переинициализация индикаторов при смене торгового счета.
  26. MQL5: Оптимизирована функция StringSplit .
  27. MQL5: Исправлены ошибки в работе стандартной библиотеки.
  28. Tester: Добавлена функция TesterStop — штатное досрочное завершение работы эксперта на тестовом агенте. Теперь вы можете принудительно прекратить тестирование по достижении заданного количества убыточных сделок, заданного уровня просадки или любого другого критерия.

    Тестирование, выполненное с использованием этой функции, считается успешным. После вызова функции торговая история, полученная при тестировании, и вся торговая статистика передаются в терминал.

  29. Tester: Отключена возможность тестировать и оптимизировать советники через MQL5 Cloud Network в реальном тиковом режиме. Этот режим можно использовать только на локальных агентах и локальных сетевых фермах.
  30. Тестер: Улучшена работа с индикаторами при визуальном тестировании. Теперь график цены и линии индикатора отрисовываются синхронно, даже для максимальной скорости визуализации.
  31. Tester: оптимизировано и значительно ускорено тестирование и оптимизация.
  32. Tester: Исправлена отладка индикаторов на исторических данных. Теперь функции индикатора OnInit и OnDeinit можно корректно отлаживать.
  33. Tester: Реализован более быстрый доступ к историческим данным при тестировании мультивалютных экспертов.
  34. Тестер: исправлено случайное зависание визуального тестера во время отладки на исторических данных.
  35. Tester: Реализован более быстрый запуск проходов оптимизации при обработке пакета задач агентом.
  36. Tester: Изменена политика распределения пакетов задач агентам тестирования. Размер пакета был увеличен, и, таким образом, потребление ресурсов при сетевых операциях было значительно снижено.
  37. Tester: изменено поведение опций, позволяющих использовать локальные, сетевые и облачные агенты. Теперь, когда вы отключаете опции, агенты завершают обработку полученных задач, при этом новые задачи им больше не выдаются. В более ранних версиях поведение было похоже на команду «Отключить», которая немедленно останавливала работу агента.




  38. MetaEditor: в отладчике добавлена поддержка символов, отличных от ANSI. Теперь выражения отображаются правильно, даже если имя переменной указано на кириллице.
  39. MetaEditor: Исправлено отображение результатов поиска на экранах с высоким разрешением.
  40. Добавлен перевод пользовательского интерфейса на хорватский язык.
  41. Документация обновлена.
Обновление будет доступно через систему LiveUpdate.

 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Пакет MetaTrader R - краткое содержание

Сергей Голубев, 2019.02.22 06:47

Основное исследование

----------------

Статьи

----------------

Форум

----------------

больше, чтобы следовать ...


 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Полезные ссылки/темы/инструменты

Сергей Голубев, 2017.10.05 12:33

Мультивалютные советники в МТ5 - бэктестинг и оптимизация


Темы/посты

  • Покупка или продажа всех 7 пар -тема с объяснением.
  • Мультивалютные советники- пост с примерами бэктестинга/оптимизации

Статьи

Документация


...а это пример кода из CodeBase -

----------------

Мультивалютный iMA Trend- эксперт для MetaTrader 5

The multi-symbol adviser uses the MA Trend 2 adviser as the base advisor, while the advisor itself is rewritten as a class.

Этот советник в виде класса первой версии, поэтому пока символы ("EURUSD", "USDCAD", "USDJPY") указаны в коде жестко. Также все входные параметры одинаковы для каждого из трех символов (Stop Loss, Take Profit и так далее...).

 

Опубликована хорошая статья -

----------------

Практическое применение корреляций в трейдинге

Практическое применение корреляций в торговле

Корреляция - это статистическая связь между двумя или более случайными переменными (или величинами, которые можно считать случайными с некоторой приемлемой степенью точности). Изменения в одной или нескольких переменных приводят к систематическим изменениям других связанных переменных. Математической мерой корреляции двух случайных величин является коэффициент корреляции. Если изменение одной случайной величины не приводит к закономерному изменению другой случайной величины, но приводит к изменению другой статистической характеристики этой случайной величины, то такая связь не считается корреляцией, хотя и является статистической.

Практическое применение корреляций в торговле

 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

С чего начать?

Сергей Голубев, 2018.09.20 15:43

Воспользуйтесь советами - инструкцией о HowTo

=========

----------------

----------------

----------------


 

На форуме есть одна тема -
Возможности холста.
Это очень полезная тема.
А это один очень интересный инструмент, который полностью связан с этой темой -

----------------

Система линейных алгебраических уравнений на каждом баре- индикатор для MetaTrader 5

This work has 3 goals: 

  • Продемонстрируйте работу индикатора сразу в двух окнах: в главном и подокне. Это достигается за счет использования классаiCanvas.
  • Компактное решение системы линейных алгебраических уравнений с помощью рекурсии.
  • Продемонстрировать и доказать некоторым поисковикам тот факт, что использование SLAE в алгоритмической торговле содержит потенциал предсказания цены.
 

Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5

Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5


This article is a development of the article "Interaction between MetaTrader 4 and MATLAB" by A. Emelyanov, and it provides information on solving a similar task for modern 64-bit versions of all platforms utilized by users. Over the past period, the method for creating shared DLL libraries has been substantially upgraded in the MATLAB package. Therefore, the method discussed in the original article requires modification. This happened because MATLAB Compiler SDK or MATLAB Coder must now be used instead of MATLAB Compiler. In addition, the practice of working with dynamic memory in MATLAB has changed, which implies certain adjustments of the source code that addresses a library written in the MATLAB language.

 

Разработка кроссплатформенного советника с сеткой ордеров

Разработка кроссплатформенного гридера EA

Most frequent users of this website know pretty well that MQL5 is the best option for developing custom EAs. Unfortunately, not all brokers allow creating accounts available in MetaTrader 5. Even if you currently work with a broker that allows that, you may switch to a broker offering only MetaTrader 4 in the future. What are you going to do with all the MQL5 EAs you have developed in that case? Are you going to spend a huge amount of time to rework them to fit into MQL4? Perhaps, it would be more reasonable to develop an EA able to work both in MetaTrader 5 and MetaTrader 4?

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

 

Как визуализировать историю мультивалютной торговли на основе отчетов HTML и CSV

Как визуализировать историю мультивалютной торговли на основе отчетов HTML и CSV

С момента своего появления MetaTrader 5 предоставляет возможность мультивалютного тестирования. Эта возможность часто используется трейдерами. Однако функция не является универсальной. В частности, после запуска теста пользователь может открыть график с проведенными торговыми операциями. Но это график только одного торгового символа, выбранного в настройках тестера стратегий. Просмотреть всю историю торговли по всем использованным символам после тестирования невозможно, а визуальный осмотр не всегда эффективен. Через некоторое время после тестирования может потребоваться дополнительный анализ. Кроме того, отчет может быть предоставлен другим лицом. Поэтому инструмент для визуализации торговли на нескольких рабочих символах на основе HTML-отчета о тестировании был бы очень полезен.

Как визуализировать историю мультивалютной торговли на основе отчетов HTML и CSV

Как визуализировать историю мультивалютной торговли на основе отчетов HTML и CSV

В предыдущейстатье было представлено описание парсера HTML на основе CSS-селекторов[1]. Парсер извлекает из HTML-отчета список сделок, на основе которого можно формировать трейды (графические объекты). Парсинг CSV-файлов из раздела Сигналы немного проще, а формат файлов сигналов MetaTrader 4 (*.history.csv) и MetaTrader 5 (*.positions.csv) поддерживается встроенными функциями MQL.

 
С чего начать?
https://www.mql5.com/en/forum/212020
Where Do I start from?
Where Do I start from?
  • 2017.07.25
  • www.mql5.com
Hi fam! Am a total newbie in the forex niche... Just signed up here on this platform... Please where do i start from? I need help...