Как начать работу с MT5, краткое описание! - страница 2

 

Скоро -
Новая коммуникационная система, аналог Telegram - читайте в этом посте.

 

Была создана хорошая тема с визуализированной информацией - TheTips thread.
Настоятельно рекомендуем прочитать эту небольшую тему всем новичкам (чтобы знать), а также опытным пользователям (чтобы освежить свои знания).

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

Фриланс-сервис

  • Как пополнить свой счет на MQL5
  • Как перейти к следующему этапу
  • Как оставить отзыв
  • Что такое скриншот
  • Как прикрепить файл предварительного технического задания/файлы других форматов
  • Что нужно предоставить разработчику, если в программе возникла ошибка
  • Как вставить изображение/код/видео/таблицу в текст
  • Как сделать скриншот на мобильном устройстве
  • Как увеличить срок исполнения ордера/стоимость
  • Не исчезают на 5 дней после установки 3 дней на исполнениеКлиент: Как создать GIF-изображение вместо видео для вставки в чат s

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

Платформа

  • Как установить советник/индикатор
  • Где находится журнал платформы/тестера/оптимизатора
  • Где находится MetaQuotes ID для подключения push-уведомлений
  • Как сделать скриншот ошибки через меню графика в три клика
  • Где включить и настроить уведомления по электронной почте
  • Где находятся файлы, с которыми работает советник/индикатор
  • Что такое поля 'description' и 'icon' и где их найти
  • Где найти номер сборки платформыКак включить окно данных и посмотреть значения индикатора
  • Как включить точную шкалу времени
  • Как сохранить шаблон графика
  • Как добавить URL для работы через WebRequestГде найти файлы EX4/EX5

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

Советник

  • Что такое магическое число
  • Как работает трейлинг-стопГде находится журнал советника
  • Почему советник/индикатор серый в Навигаторе
  • В чем разница между неттингом и хеджированием
  • Как установить продукт, купленный на Маркете

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

Тестер

  • Как сохранить/загрузить файл сета
  • Где найти журнал платформы/тестера/оптимизатора
  • Чем отличаются режимы тестирования друг от друга?
  • Как запустить и использовать визуальное тестирование
  • Как загрузить доступную историю цен в MetaTrader 4

 

Это очень важное и очень интересное обновление - пожалуйста, прочитайте его...

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

MetaTrader 5 Platform Beta Build 1910: Несвязанное перетаскивание графиков и библиотек .Net в MQL5

MetaQuotes Software Corp., 2018.10.12 19:43

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

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

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

Обновление будет включать следующие изменения:

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

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



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

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

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



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

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




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



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




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



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

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

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

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

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

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

    Добавлены следующие свойства в перечисление ENUM_CHART_PROPERTY_INTEGER:

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

    Добавлены следующие функции в перечисление ENUM_TERMINAL_INFO_INTEGER:

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

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

    struct  MqlTick
      {
       datetime         time;          // Last price update time
       double           bid;           // Current Bid price
       double           ask;           // Current Ask price
       double           last;          // Current price of the Last trade
       ulong            volume;        // Volume for the current Last price
       long             time_msc;      // Last price update time in milliseconds
       uint             flags;         // Tick flags
       double           volume_real;   // Volume for the current Last price with greater accuracy
      };

    struct MqlBookInfo
      {
       ENUM_BOOK_TYPE   type;            // order type from the ENUM_BOOK_TYPE enumeration
       double           price;           // price
       long             volume;          // volume
       double           volume_real;     // volume with greater accuracy
      };

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

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

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

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

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

  18. MQL5: Исправлена компиляция шаблонных функций. Теперь при использовании перегруженных шаблонных функций инстанцируется только необходимая перегрузка, а не все существующие.
    class X {  };
    
    void f(int)  {  }
      
    template<typename T>
    void a(T*) { new T(2); }  // previously, the compiler generated the error here
      
    template<typename T>
    void a()  { f(0); }
      
      
    void OnInit()  { a<X>(); }  
    
  19. MQL5: Оптимизированы некоторые случаи доступа к истории тиков через функцию CopyTicks*.
  20. Тестер: Исправлено вычисление точности валюты депозита при тестировании/оптимизации и генерации соответствующих отчетов.
  21. Тестер: Оптимизирована и ускорена работа тестера стратегий.
  22. MetaEditor: Исправлен поиск по целым словам. Теперь при поиске подчеркивание учитывается как обычный символ, а не как разделитель слов.
  23. Обновлена документация.

 

Началась хорошая тема -Как начать работу с MQL5

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

Как начать работу с MQL5

Владимир Карпутов, 2018.12.24 20:34

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


Если вы только начинаете знакомиться с терминалом MetaTrader 5, то могу порекомендовать следующие темы:

 

Есть одна статья, которую должен прочитать каждый продавец на рынке: она о валидации продуктов Маркета -...

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

Проверки, которые должен пройти торговый робот перед публикацией на Маркете

Why products are checked before they are published in the Market 

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

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

 

Спасибо...

Очень полезно, большие усилия...

 

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

Новая платформа 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.

 

Здравствуйте.

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


Спасибо...

 
полезно для начинающих