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

 

Привет

Я новичок, хочу следовать стратегии cut and paste. Как мне начать? Мне нужен пошаговый подход

пожалуйста,


 
Seth Agblemor:

Привет

Я новичок, хочу следовать стратегии cut and paste. Как мне начать? Мне нужен пошаговый подход

пожалуйста,


С чего начать?
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...
 

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

Несколько вопросов о сигналах

Сергей Голубев, 2016.12.30 20:14

Немного информации о Сигнальном сервисе:

Вот информация о том, с чего начать.

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

Изправил-

  • Сигналы на основе реальных счетов доступны только по платной Подписке; сигналы на основе демо-счетов могут быть получены только по бесплатной Подписке.
  • Сигналы, основанные на центовых счетах, не могут иметь платной Подписки. Такие сигналы доступны бесплатно только в терминале MetaTrader. Центовый счет определяется автоматически. В случае если Сигнал определен неверно, Администрация сервиса может присвоить это свойство Сигналу вручную.

 
Практическое использование нейронных сетей Кохонена в алгоритмической торговле. Часть I. Инструменты

<br / translate="no">

К теме нейронных сетей Кохонена мы обращались в некоторых статьях на сайте mql5.com, таких как "Использование самоорганизующихся карт характеристик (карт Кохонена) в MetaTrader 5" и "Самоорганизующиеся карты характеристик (карты Кохонена) - переосмысление темы". Они познакомили читателей с общими принципами построения нейронных сетей такого типа и визуального анализа экономических показателей рынков с помощью таких карт.

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

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

Настоятельно рекомендуем сначала прочитать вышеприведенные статьи, если вы не знакомы с такими терминами, как "сеть", "слой", "нейрон" ("узел"), "связь", "вес", "скорость обучения", "диапазон обучения" и другими понятиями, связанными с сетями Кохонена. Затем нам придется насытиться этим вопросом, поэтому повторное обучение основным понятиям значительно удлинило бы эту публикацию.

 

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

Новая платформа 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 в алгоритмической торговле содержит потенциал предсказания цены.