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

 
Sergey Golubev:

и следующая статья -



Я новичок, вы можете мне помочь?

 
armynnoow:

Я новичок, не могли бы вы мне помочь?


Есть один пост для новичков (про "с чего начать") -...

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

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

Сергей Голубев, 2017.10.03 06:39

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

============

1. Памятка пользователя

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

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

Сергей Голубев, 2016.12.30 17:26

Небольшое напоминание о том, как вставлять код в пост(для новых пользователей/новичков) - читайте здесь, и читайте статью целиком: MQL5.community - Памятка пользователя

============

2. Как сделать поиск на портале forum/mql5

============

3. Резюме

3.1.Как начать работу с MT5, краткое содержание!(вкл. предыдущую тему:Как начать работу с MetaTrader и форекс, начало)
MetaTrader 4 Help - Client Terminal - User Guide
MetaTrader 5 Help - Trading Platform - User Manual

3.2.Все (пока не все) о тестере стратегий, оптимизации и облаке

3.3.краткое описание системы ASCTREND(включая 2 хороших советника)

3.4.Система BRAINTRADING HowTo

3.5.Параболическая система PriceChannel(включая 2 версии советника)

3.6.Оценка состояния рынка(создано 2 советника)

3.7.Ichimoku

3.8.Видео по финансам и трейдингу - о главление

3.9Все о вкладке "Календарь" и макроэкономических событиях

3.10Все о Мастере MQL5: создание роботов без программирования

============

4. Первая ключевая статья:
MetaTrader 5 - больше, чем вы можете себе представить!

============

5. Вторая ключевая статья:
Безграничные возможности с MetaTrader 5 и MQL5

============

6. Как добавить брокера в MT5:

6.1. Помощь MetaTrader 5 -Открыть счет

6.2. Помощь MetaTrader 5 Android OS -Открытие демо-счета

6.3. Справка MetaTrader 5 iPhone/iPad -Подключение к счету и открытие демо-счета

============

7.Сигналы

============

8.Рынок

============

9.MQL5 VPS для MT4/MT5

9.1. Как подписаться на VPShttps://www.mql5.com/en/forum/187872#comment_4851530

9.2. Вы можете перенести подписку на VPS с одного счета на другой
https://www.mql5.com/en/forum/172120#comment_4166892

9.3. Описание MQL5 VPS
https://www.mql5.com/en/forum/172553#comment_4185979

9.4. Мониторинг VPS
https://www.mql5.com/en/forum/188920#comment_4800677

9.5. Синхронизация -
https://www.mql5.com/en/forum/211508

============

10. Брокеры

10.1. Поиск сервера по имени брокера:
https://www.mql5.com/en/forum/9950/page88#comment_3981953
https://www.mql5.com/en/forum/214820

10.2. Помощь начинающим
https://www.mql5.com/en/forum/214904

10.3. Брокеры США
https://www.mql5.com/en/forum/12423/page500#comment_4736742

============

11. Продвижение:
https://www.mql5.com/en/forum/9950/page88#comment_3982032
https://www.mql5.com/en/forum/9950/page88#comment_3982030
https://www.mql5.com/en/forum/9950/page88#comment_3982036

============

12. Фриланс, декомпиляция, правила, примеры декомпилированного кода:
https://www.mql5.com/en/forum/203200

============

13. Общие правила и лучшие практики форума

13.1.Тема с обсуждением

13.2.Правила форума

============

14. Тема о темах:что творится на форуме повсюду
Хорошая тема, если вы ищете что-то новое и современное (и бесплатное).

============

15. Тема опредложениях по улучшению MT5, mql5, mql5.com

============

16. Как подписаться на тему или пригласить человека в тему-тема

============


 

MetaEditor (который обновляется вместе с Metatrader) был сильно модернизирован.
Очень сильно!
Больше защиты кода, проектов, и многое-многое другое.

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

Просто для информации.

 

Это очень интересное обновление, особенно для MetaEditor, так что, похоже, мне нужно будет узнать об этом...

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

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

MetaTrader 5 Platform Beta Build 1700: Проекты в MetaEditor и синтетические финансовые инструменты

MetaQuotes Software Corp., 2017.12.05 14:33

MetaTrader 5 Platform Beta Build 1700: Проекты в MetaEditor и синтетические финансовые инструменты

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

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

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

Окончание поддержки старых версий терминалов
Поддержка старых версий настольных и мобильных терминалов будет прекращена после выхода новой версии платформы:
  • Клиентский терминал: версии ниже 730, 23 ноября 2012 г.
  • Мобильный терминал для iPhone: версии ниже 1171, 11 ноября 2015 года
  • Мобильный терминал для Android: версии ниже 1334, 5 августа 2016 г.
Неподдерживаемые сборки терминалов не смогут подключаться к новым версиям серверов. Мы настоятельно рекомендуем вам заранее обновить свои терминалы.

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

Перед обновлением платформы до новой версии рекомендуется выполнить операцию Commit для отправки всех локальных изменений в MQL5 Storage.

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

  1. Полнофункциональные проекты теперь доступны в MetaEditor. Процесс разработки программы стал более удобным.

    Теперь основной файл программы MQ5 не является проектом. Проект - это отдельный файл "MQPROJ", в котором хранятся настройки программы, параметры компиляции и информация обо всех используемых файлах. Доступ к основным настройкам проекта можно получить из отдельного диалогового окна, поэтому теперь нет необходимости указывать их в исходном коде через #property.

    Для удобства работы с проектом предусмотрена отдельная вкладка в Навигаторе. На этой вкладке все файлы, такие как include, resource, header и другие, распределены по категориям. Все файлы автоматически добавляются в навигатор проекта. Например, если вы включите новый файл MQH, он автоматически появится в разделе "Зависимости" навигатора.

    Поддержка новых проектов также реализована в обновленном онлайн-репозитории MQL5 Storage. Это удобный вариант для разработки крупных проектов в сотрудничестве с другими членами MQL5.community.

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





    Когда вы компилируете проект в Shared Projects, исполняемый EX5-файл автоматически копируется в локальный каталог Experts, Indicators или Scripts в зависимости от типа программы. Вы можете легко запустить программу на графике без необходимости копировать файлы вручную.


    Что нового в работе хранилища MQL5
    Для реализации поддержки новых общих проектов мы изменили протокол работы с MQL5 Storage. Поэтому после обновления платформы вам необходимо будет выполнить выгрузку всех данных из хранилища. Данные, хранящиеся в хранилище MQL5, не будут потеряны или затронуты во время обновления.
    Перед обновлением платформы до новой версии рекомендуется выполнить операцию Commit для отправки всех локальных изменений в MQL5 Storage.
    Команда 'Checkout from Storage' теперь доступна только в Shared Projects. Для других каталогов в папке MQL5 используются команды 'Активировать MQL5 Storage' и 'Обновить из хранилища':

    • Если вы еще не использовали MQL5 Storage в текущем экземпляре MetaEditor, нажмите "Активировать MQL5 Storage" в контекстном меню окна Навигатора. Все каталоги и файлы, доступные в хранилище, будут загружены на ваш локальный компьютер.
    • Если вы уже работаете с хранилищем, нажмите "Обновить файлы из хранилища" в контекстном меню корневого MQL5-элемента в Навигаторе, чтобы получить все данные из хранилища.


    Новые проекты: Примеры создания и детали операций
    В MetaEditor добавлена новая сущность проект. Проект - это mqproj файл, который хранит общие свойства программы и информацию обо всех используемых файлах. Теперь свойствами программы можно удобно управлять из отдельного диалога MetaEditor вместо ручной модификации свойств в исходном коде (с помощью директив #property).

    Если у вас есть доступный код, вы можете легко тестировать новые проекты с помощью команды 'New Project from Source'.




    В каталоге, где находится выбранный файл, будет создан новый файл проекта с тем же именем и расширением mqproj. В проект будут автоматически добавлены основные свойства программы, указанные в исходном коде через #property, включая название, авторские права, версию, ссылку на сайт разработчика и описание программы.
    Набор свойств программы в файле проекта имеет более высокий приоритет, чем свойства, указанные в коде программы. Если свойства указаны и в проекте, и в исходном файле, то будут использоваться свойства из проекта.




    В свойства проекта добавлены две новые опции для компиляции MQL5-программ:

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

    Для работы с проектами используется отдельная вкладка Проект в окне Навигатора. Все файлы, используемые в проекте, отображаются на этой вкладке в удобном виде. Когда проект генерируется из исходного файла, все используемые включаемые файлы (указанные с помощью директории #include в основном файле MQ5 и в его включаемых файлах) автоматически добавляются в раздел Dependencies.

    Когда новый включаемый файл добавляется в исходный код, он также появляется в Навигаторе проекта. Используемые заголовочные файлы добавляются в раздел Headers; изображения, звуки и другие MQL5-программы, используемые в проекте в качестве ресурсов, добавляются в раздел Resources. MQ5-файлы с исходным кодом отображаются в разделе "Исходники". В разделе "Настройки и файлы" можно добавить другие файлы, например, файлы наборов для тестирования и шаблоны диаграмм.

    Используйте команды контекстного меню для добавления существующих файлов в проект или для удаления файлов из него. Будьте осторожны при удалении файлов, так как вы можете удалить файл из проекта (удалить привязку) или полностью удалить его с жесткого диска:



    Создание нового проекта так же просто, как и создание обычной MQL5-программы. Нажмите кнопку 'Новый проект', выберите тип новой программы и укажите свойства (такие как имя, обработчики событий и т.д.) в Мастере MQL5.

    Чтобы получить исполняемый EX5-файл, можно открыть проект и нажать F7 (команда компиляции) или открыть основной MQ5-файл программы и скомпилировать его.

    Общие проекты в хранилище MQL5: Подробности работы
    Управление общими проектами осуществляется из отдельного раздела Общие проекты. Если вы еще не подключили хранилище, выполните команду "Активировать MQL5 Storage" из контекстного меню нужной папки. MetaEditor проверит, содержит ли ваше хранилище сохраненные данные и доступны ли вам общие проекты. Все доступные данные будут извлечены из хранилища и загружены на ваш компьютер (операция checkout). Доступные групповые проекты появятся в разделе Общие проекты. Чтобы извлечь проекты, выполните команду "Выгрузка из хранилища" в контекстном меню.

    Чтобы создать новый групповой проект, выберите папку "Общие проекты" и нажмите "Новый проект":



    Затем выполните стандартные шаги MQL5: задайте тип, имя и свойства нужной программы. Для групповых проектов следует использовать четкие и понятные имена, чтобы другие участники могли легко их найти. В названиях проектов можно использовать только латинские буквы без пробелов.

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

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

    • Частный проект
    • Бесплатный проект
    • Присоединяйтесь к проекту по запросу



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

  2. Терминал: Теперь торговая платформа позволяет создавать синтетические финансовые инструменты, то есть символы, основанные на одном или нескольких существующих инструментах. Пользователь должен задать формулу расчета котировок, после чего платформа сгенерирует тики синтетического инструмента в реальном времени, а также создаст его минутную историю.

    Как это работает
    • Вы создаете синтетический инструмент и задаете формулу для расчета цены.
    • Платформа рассчитывает тики с частотой 10 раз в секунду при условии, что цена хотя бы одного из инструментов, используемых в формуле, изменилась.
    • Платформа также рассчитывает историю минутных баров (за последние два месяца) на основе минутных баров инструментов, используемых в ее формуле. Все новые бары (текущий и последующие) строятся в реальном времени на основе сгенерированных тиков синтетического инструмента.
    Например, вы можете создать инструмент, показывающий индекс доллара (USDX). Для этого используется приведенная ниже формула:
    50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)
    Примечание: в исходной формуле индекса доллара используются пары USDEUR и USDGBP. Поскольку в платформе доступны только обратные пары, в формуле синтетического инструмента используется отрицательная мощность и Ask вместо Bid.

    Платформа в режиме реального времени рассчитает цену нового инструмента на основе котировок остальных шести символов, предоставленных вашим брокером. Изменения цены будут визуализироваться в окне Market Watch и на графике:



    Создайте новый пользовательский символ, откройте его спецификацию и введите формулу:



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

    Расчет тиков и минутных баров синтетического инструмента начинается при добавлении этого инструмента в Обзор рынка. Кроме того, все символы, необходимые для расчета синтетической цены, автоматически добавляются в Обзор рынка. Запись о начале расчета будет добавлена в журнал платформы: Синтетический символ USDX: начата обработка.
    • Расчет синтетического инструмента прекращается после его удаления из Market Watch.
    • Символы, которые в настоящее время используются для расчета цен синтетических инструментов, не могут быть скрыты из Обзора рынка.

    Расчет котировок в режиме реального времени
    Каждые 100 мс (т.е. десять раз в секунду) проверяются цены символов, используемых в расчете. Если хотя бы один из них изменился, рассчитывается цена синтетического символа и генерируется новый тик. Расчет выполняется параллельно в трех потоках для цен Bid, Ask и Last. Например, если формула расчета EURUSD*GBPUSD, то цена синтетического символа будет рассчитана следующим образом:

    • Bid = bid(EURUSD)*bid(GBPUSD)
    • Ask = ask(EURUSD)*ask(GBPUSD)
    • Last = last(EURUSD)*last(GBPUSD)

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

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

    Когда трейдер добавляет синтетический инструмент в Market Watch, платформа проверяет, существует ли его рассчитанная минутная история. Если она не существует, будет создана история за последние 60 дней, которая включает около 50 000 баров. Если в параметре 'Max. bars in chart' в настройках платформы указано меньшее значение, то будет применено соответствующее ограничение.

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

    История минутных баров синтетического инструмента рассчитывается на основе минутных баров (не тиков) инструментов, используемых в его формуле. Например, для расчета цены открытия 1-минутного бара синтетического символа платформа использует цены открытия символов, используемых в ее формуле. Цены High, Low и Close рассчитываются аналогичным образом.

    Если нужный бар недоступен ни для одного из инструментов, платформа будет использовать цену закрытия предыдущего бара. Например, используются три инструмента: EURUSD, USDJPY и GBPUSD. Если при расчете бара, соответствующего 12:00, нужный бар USDJPY недоступен, то для расчета будут использованы следующие цены:

    • Открытие: EURUSD Open 12:00, USDJPY Close 11:59, GBPUSD Open 12:00
    • High: EURUSD High 12:00, USDJPY Close 11:59, GBPUSD High 12:00
    • Low: EURUSD Low 12:00, USDJPY Close 11:59, GBPUSD Low 12:00
    • Закрытие: EURUSD Close 12:00, USDJPY Close 11:59, GBPUSD Close 12:00

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

    Построение новых минутных баров
    Все новые бары (текущий и последующие) синтетического инструмента создаются на основе сгенерированных тиков. Цена, используемая для построения баров, зависит от значения параметра Chart Mode в спецификации:




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

    • Название символа - в зависимости от рассчитываемой синтетической цены будет использоваться Bid, Ask или Last указанного инструмента. Например, если указано EURUSD*GBPUSD, Bid рассчитывается как bid(EURUSD)*bid(GBPUSD), а Ask = ask(EURUSD)*ask(GBPUSD).
    • bid(имя символа) - цена bid указанного символа будет принудительно использоваться для расчета цены Bid синтетического инструмента. Эта опция аналогична предыдущей (когда тип цены не указан).
    • ask(имя символа) - цена Ask указанного символа будет использоваться для расчета цены Bid синтетического инструмента. Bid цена указанного инструмента будет использоваться для расчета Ask. Для расчета Last будет использоваться цена Last указанного инструмента. Если указано ask(EURUSD)*GBPUSD, то будет использоваться следующий расчет:
      • Vid = ask(EURUSD)*bid(GBPUSD).
      • Ask = bid(EURUSD)*ask(GBPUSD)
      • Last = last(EURUSD)*last(GBPUSD)
    • last(имя символа) - цена Last указанного символа будет использоваться при расчете всех цен синтетического инструмента (Bid, Ask и Last). Если указано last(EURUSD)*GBPUSD, то будет использоваться следующий расчет:
      • Vid = last(EURUSD)*bid(GBPUSD).
      • Ask = last(EURUSD)*ask(GBPUSD)
      • Last = last(EURUSD)*last(GBPUSD)
    • volume(имя символа) - в формуле будет использоваться тиковый объем указанного инструмента. Убедитесь, что информация об объеме предоставлена брокером для данного инструмента.
    • point(имя символа) - в расчетах будет использоваться минимальное изменение цены указанного инструмента.
    • digits(имя символа) - в формуле будет использоваться количество знаков после запятой в цене указанного символа.

    Если символ имеет сложное имя (содержит дефисы, точки и т.д.), его необходимо писать в кавычках. Пример: "RTS-6.17".
    В формуле могут быть использованы следующие арифметические операции: сложение (+), вычитание (-), умножение (*), деление (/) и остаток от деления (%). Например, EURUSD+GBPUSD означает, что цена рассчитывается как сумма цен EURUSD и GBPUSD. Также вы можете использовать унарный минус для изменения знака, например: -10*EURUSD.

    Помните о приоритете вычисления арифметических операций:

    • Сначала выполняются операции умножения, деления и остатка; затем выполняются операции сложения и вычитания.
    • Операции выполняются слева направо. Если в формуле используется несколько операций с одинаковым приоритетом (например, умножение и деление), первой будет выполнена операция слева.
    • Для изменения приоритета операций можно использовать скобки ( и ). Операции в скобках имеют наивысший приоритет при вычислениях. Для них также действует принцип "слева направо": операции в скобках слева вычисляются первыми.

    В формуле можно использовать константы:

    • Числовые (целочисленные и плавающие). Пример: EURUSD*2+GBPUSD*0.7.
    • Свойства символов _Digits и _Point. Они добавляют в формулу соответствующие свойства пользовательского символа из спецификации. _Digits означает количество знаков после запятой в цене инструмента; _Point означает наименьшее изменение цены символа.

    Также в формуле можно использовать все математические функции, поддерживаемые в MQL5, кроме MathSrand, MathRand и MathIsValidNuber: Для всех функций используются только короткие имена, такие как fabs(), acos(), asin() и т.д.

  3. Терминал: Реализована новая опция, позволяющая добавлять котировки пользовательских инструментов в режиме реального времени. Теперь можно разработать MQL5-советник, который будет подавать котировки указанного пользовательского инструмента. Для этого используется функция CustomTicksAdd.
    int  CustomTicksAdd(
       const string           symbol,       // Symbol name
       const MqlTick&         ticks[]       // The array with tick data that should be applied to the custom symbol
       );
    Функция CustomTicksAdd позволяет подавать котировки так, как будто они получены с сервера брокера. Данные отправляются в окно Market Watch вместо того, чтобы напрямую записываться в базу данных тиков. Затем терминал сохраняет тики из окна Market Watch в базу данных. Если за один вызов передается большой объем данных, поведение функции изменяется в целях экономии ресурсов. Если передается более 256 тиков, данные делятся на две части. Большая часть записывается непосредственно в базу данных тиков (аналогично CustomTicksReplace). Вторая часть, состоящая из последних 128 тиков, отправляется в Market Watch, откуда терминал сохраняет тики в базу данных.

  4. MQL5: Добавлен новый онлайн-сервис MQL5 Cloud Protector для обеспечения дополнительной защиты MQL5-программ. Защита аналогична опции, используемой в крупнейшем магазине торговых приложений MetaTrader Market, где файлы продуктов EX5, предоставленные продавцами, дополнительно компилируются в нативный код.

    Теперь этот вид защиты доступен всем пользователям платформы. Чтобы защитить свои файлы, выполните в MetaEditor следующую команду: Инструменты-MQL5 Cloud Protector. Единственное отличие MQL5 Cloud Protector от механизма, используемого в Маркете, заключается в том, что файл не привязывается к компьютеру пользователя. Защищенные с помощью MQL5 Cloud Protector файлы могут быть запущены на любых компьютерах аналогично обычным EX5-файлам.
    MQL5 Cloud Protector - это безопасный сервис. Дополнительная защита применяется только к скомпилированному файлу. Исходный код в сервис не передается. На первом этапе программа компилируется в EX5-файл на компьютере пользователя, после чего скомпилированный файл отправляется по зашифрованному каналу в сервис, где он защищается и возвращается пользователю.



  5. Терминал: В окне "Обзор рынка" теперь дополнительно отображаются цены High и Low. По умолчанию эти столбцы скрыты. Их можно включить с помощью контекстного меню:




    Если график символа построен с использованием цен Bid (в соответствии с настройками спецификации), то для данного символа отображаются цены Bid High и Bid Low. Если график символа построен с использованием цен Last, для данного символа отображаются цены Last High и Last Low.

    Если Market Watch содержит хотя бы один символ, график которого строится на основе цен Last, колонка Last автоматически включается в дополнение к High/Low.

  6. Терминал: Теперь можно редактировать тиковую историю пользовательских финансовых инструментов. Нажмите "Символы" в контекстном меню Market Watch, выберите пользовательский символ и запросите необходимый интервал данных на вкладке Ticks.

    • Дважды нажмите, чтобы изменить значение.
    • Используйте контекстное меню для добавления или удаления записей
    • Если вам нужно удалить сразу несколько баров/тиксов, выделите их мышью, удерживая Shift или Ctrl+Shift.



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

    • Зеленый фон означает измененную запись
    • Серый фон означает удаленную запись
    • Желтый фон означает добавленную запись

    Чтобы сохранить изменения, нажмите "Применить изменения" в нижней части окна.

  7. Терминал: Добавлено отображение времени в миллисекундах в окне Котировки.




  8. Терминал: Сканирование доступных серверов в диалоге открытия нового счета стало быстрее.
  9. Терминал: Исправлено отображение графического объекта Trendline при включенных опциях Ray Left и Ray Right.
  10. Terminal: Оптимизирована работа с большим количеством внутренних писем (сотни тысяч).
  11. Терминал: Оптимизирована работа терминала с большим количеством торговых инструментов (50 000 и более).
  12. MQL5: Добавлены новые функции для работы с пользовательскими финансовыми инструментами.

    Функция Действие
    CustomSymbolCreate Создание пользовательского символа с указанным именем в указанной группе
    CustomSymbolDelete Удалить пользовательский символ с указанным именем
    CustomSymbolSetInteger Установка значения свойства типа integer для пользовательского символа
    CustomSymbolSetDouble Установить значение свойства типа real для пользовательского символа
    CustomSymbolSetString Установить значение свойства строкового типа для пользовательского символа
    CustomSymbolSetMarginRate Устанавливает ставки маржи в зависимости от типа и направления ордера для пользовательского символа
    CustomSymbolSetSessionQuote Установка времени начала и окончания указанной котировочной сессии для указанного символа и дня недели
    CustomSymbolSetSessionTrade Устанавливает время начала и окончания указанной торговой сессии для указанного символа и дня недели
    CustomRatesDelete Удалить все бары из истории цен пользовательского символа в указанном интервале времени
    CustomRatesReplace Полностью заменить историю цен пользовательского символа в указанном временном интервале данными из массива типа MqlRates
    CustomRatesUpdate Добавить недостающие бары в историю пользовательского символа и заменить существующие данные данными из массива типа MqlRates
    CustomTicksAdd Добавляет данные из массива типа MqlTick в историю цен пользовательского символа. Пользовательский символ должен быть выбран в окне Обзор рынка.
    CustomTicksDelete Удаляет все тики из истории цен пользовательского символа за указанный интервал времени.
    CustomTicksReplace Полностью заменить историю цен пользовательского символа в указанном интервале времени данными из массива типа MqlTick.

  13. MQL5: Добавлена поддержка шаблонов для типа данных union.
  14. MQL5: Добавлено свойство торгового инструмента SYMBOL_VISIBLE. Вызов SymbolInfoInteger(symbol, SYMBOL_VISIBLE) возвращает false, если указанный символ не виден в Market Watch.
  15. MQL5: Добавлено новое свойство CHARTEVENT_MOUSE_WHEEL. Событие вызывается при прокрутке или нажатии колеса мыши на графике (если CHART_EVENT_MOUSE_WHEEL=true для графика).
  16. MQL5: Добавлены следующие свойства графика:

    • CHART_EVENT_MOUSE_WHEEL - включение/выключение генерации CHART_EVENT_MOUSE_WHEEL (событие прокрутки и клика мышью по графику). Возможные значения: 0 и 1.
    • CHART_CROSSHAIR_TOOL - включение/выключение возможности переключения курсора в режим "Перекрестие" по среднему щелчку мыши. Возможные значения: 0 и 1.
    • CHART_CONTEXT_MENU - включить/выключить использование правой кнопки мыши для отображения контекстного меню графика. Возможные значения: 0 и 1.

  17. MQL5: Теперь буферы рисования со стилем DRAW_NONE не учитываются при расчете масштаба окна индикатора.
  18. MQL5: Добавлена генерация события CHARTEVENT_CHART_CHANGE при установке свойства CHART_SCALEFIX (фиксированный масштаб) для графика.
  19. MQL5: Добавлена функция ArraySwap, позволяющая быстро менять местами содержимое динамических массивов.
    bool  ArraySwap(
       void&  array1[],      // The first array
       void&  array2[]       // The second array
       );
    Функция принимает динамические массивы одного типа и одинаковой размерности. Для многомерных массивов количество элементов во всех измерениях, кроме первого, должно совпадать.

  20. Сигналы: Фиксированное указание типа заполнения ордера в случае принудительного закрытия позиций, открытых по Сигналу. В опциях копирования сигналов предусмотрена опция "Стоп, если счет ниже XXX USD": если капитал опускается ниже указанного уровня, копирование торговых сигналов автоматически прекращается, все позиции закрываются. Ранее для ордеров на закрытие позиций в случае принудительного закрытия мог быть установлен некорректный тип заполнения. Теперь терминал проверяет допустимые типы заполнения в настройках символа и указывает правильный вариант.
  21. Тестер: Поведение функции HistoryOrderSelect в тестере стратегий теперь соответствует аналогичной функции в клиентском терминале.
  22. Тестер: Поведение функций CopyTicks и CopyTicksRange в тестере стратегий теперь соответствует аналогичным функциям в клиентском терминале.
  23. Тестер: Оптимизировано отображение графических объектов при визуальном тестировании.
  24. Тестер: Исправлено отображение результатов тестирования биржевых инструментов (с моделью управления биржевым риском). Теперь на графике отображается только эквити, а баланс и загрузка депозита не показываются. Торговый статус таких счетов оценивается по уровню эквити. Баланс показывает только количество денег на счете и не учитывает активы и обязательства трейдера. Депозитная нагрузка (маржа/эквити) не отображается, поскольку в режиме расчета биржи маржа равна текущей дисконтированной стоимости актива/пассива и изменяется вместе с эквити.
  25. Метаредактор: Добавлена возможность легко вставлять свойства и ресурсы в программный код. Например, вы можете быстро добавить в код включенный файл. Используйте команду "Insert-MQH as #incude" и выберите нужный включаемый файл. Директива #include с правильным путем к выбранному файлу будет вставлена в код программы.



    В этом же меню можно добавить в код программы файлы в виде бинарного или текстового массива. Среди прочего, вы можете переносить шаблоны графиков с советниками или индикаторами: вставьте свой шаблон в программный код в виде массива и сохраните его на диске с помощью функции FileSave. После этого шаблон можно применить на нужном графике прямо из советника с помощью функции ChartApplyTemplate.
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- Template file as a binary array
       unsigned char my_template[]=
         {
          0xFF,0xFE,0x3C, ... ,0x00 // The data array in this example is shortened
         };
    //--- Saving and applying the template
       if(FileSave("my_template.tpl",my_template))
         {
          Print("Custom template saved in \\MQL5\\Files");
          if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
             Print("Custom template applied to the current chart");
          else
             Print("Failed to apply custom template");
         }
       else
          Print("Failed to save custom template");
      }

  26. Метаредактор: Добавлена возможность конвертации строк между форматами ASCII, HEX и Base64. Выделите строку в исходном коде и выберите нужную команду в меню Edit-Convert:




  27. MetaEditor: Исправлен поиск в файлах без учета регистра.
  28. MetaEditor: Исправлена ошибка отладчика, которая могла возникнуть при вычислении выражений, подобных x.y[0][1].z.
  29. MetaEditor: Исправлена навигация по коду с помощью кнопок Вперед и Назад.
  30. Пользовательский интерфейс теперь доступен и на голландском языке.
  31. Обновленная документация.


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


 

Сегодня была опубликована очень интересная статья -

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

Как торговать на внешней криптовалютной бирже через MetaTrader 5

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

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

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

Кому может быть полезна статья:

  • трейдеры криптовалютных бирж;
  • инвесторы, знакомые с MetaTrader 5 и портфельными инвестициями;
  • программисты-фрилансеры, которые теперь могут проще (и дешевле) выполнять заказы клиентов, связанные с торговлей криптовалютами;
  • все, кто следит за новыми возможностями MetaTrader 5 и языка MQL5.
 

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

Новый MetaTrader 5 Build 1730: проекты в MetaEditor и синтетические финансовые инструменты

MetaQuotes Software Corp., 2017.12.20 13:49

Новый MetaTrader 5 Build 1730: проекты в MetaEditor и синтетические финансовые инструменты

Обновление платформы MetaTrader 5 выйдет 21 декабря 2017 года.

Окончание поддержки старых версий терминалов
Поддержка старых версий настольных и мобильных терминалов будет прекращена после выхода новой версии платформы:
  • Клиентский терминал: версии ниже 730, 23 ноября 2012 г.
  • Мобильный терминал для iPhone: версии ниже 1171, 11 ноября 2015 года
  • Мобильный терминал для Android: версии ниже 1334, 5 августа 2016 г.
Неподдерживаемые сборки терминалов не смогут подключаться к новым версиям серверов. Мы настоятельно рекомендуем вам заранее обновить свои терминалы.

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

Перед обновлением платформы до новой версии рекомендуется выполнить операцию Commit для отправки всех локальных изменений в MQL5 Storage.

В обновлении будут представлены следующие изменения:

  1. В MetaEditor теперь доступны полнофункциональные проекты. Процесс разработки программы стал более удобным.

    Теперь основной файл программы MQ5 не является проектом. Проект - это отдельный файл "MQPROJ", в котором хранятся настройки программы, параметры компиляции и информация обо всех используемых файлах. Доступ к основным настройкам проекта можно получить из отдельного диалогового окна, поэтому теперь нет необходимости указывать их в исходном коде через #property.

    Для удобства работы внутри проекта предусмотрена отдельная вкладка в Навигаторе. На этой вкладке все файлы, такие как include, resource, header и другие, распределены по категориям. Все файлы автоматически добавляются в навигатор проекта. Например, если вы включите новый файл MQH, он автоматически появится в разделе "Зависимости" навигатора.

    Поддержка новых проектов также реализована в обновленном онлайн-репозитории MQL5 Storage. Теперь стало гораздо удобнее разрабатывать крупные проекты в сотрудничестве с другими членами MQL5.community.

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




    Когда вы компилируете проект в Shared Projects, исполняемый EX5-файл автоматически копируется в локальный каталог Experts, Indicators или Scripts в зависимости от типа программы. Вы можете легко запустить программу на графике без необходимости копировать файлы вручную.


    Что нового в работе MQL5 Storage

    Для реализации поддержки новых общих проектов мы изменили протокол работы с MQL5 Storage. Поэтому после обновления платформы вам необходимо будет выполнить выгрузку всех данных из хранилища. Данные, хранящиеся в хранилище MQL5, не будут потеряны или затронуты во время обновления.

    Перед обновлением платформы до новой версии рекомендуется выполнить операцию Commit, чтобы отправить все локальные изменения в MQL5 Storage.

    Команда 'Checkout from Storage' теперь недоступна. Вместо нее для получения данных используются команды 'Активировать MQL5 Storage' и 'Обновить из хранилища':

    • Если вы не использовали MQL5 Storage в текущем экземпляре MetaEditor, нажмите "Активировать MQL5 Storage" в контекстном меню окна Навигатора. Все каталоги и файлы, имеющиеся в хранилище, будут загружены на ваш локальный компьютер.
    • Если вы уже работаете с хранилищем, нажмите "Обновить файлы из хранилища" в контекстном меню определенного проекта или корневого MQL5-элемента в окне Навигатора, чтобы получить данные из хранилища.

    Новые проекты: Примеры создания и детали работы

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

    Если у вас есть доступный код, вы можете легко тестировать новые проекты с помощью команды 'New Project from Source'.




    В каталоге, где находится выбранный файл, будет создан новый файл проекта с тем же именем и расширением mqproj. В проект будут автоматически добавлены основные свойства программы, указанные в исходном коде через #property, включая название, авторские права, версию, ссылку на сайт разработчика и описание программы.

    Набор свойств программы в файле проекта имеет более высокий приоритет, чем свойства, указанные в коде программы. Если свойства указаны и в проекте, и в исходном файле, то будут использоваться свойства из проекта.




    В свойства проекта добавлены две новые опции для компиляции MQL5-программ:

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

    Для работы с проектами используется отдельная вкладка Проект в окне Навигатора. Все файлы, используемые в проекте, отображаются на этой вкладке в удобном виде. Когда проект генерируется из исходного файла, все используемые включаемые файлы (указанные с помощью директории #include в основном файле MQ5 и в его включаемых файлах) автоматически добавляются в секцию Dependencies.

    Когда в исходный код добавляется новый включаемый файл, он также появляется в Навигаторе проекта. Используемые заголовочные файлы добавляются в раздел Headers; изображения, звуки и другие MQL5-программы, используемые в проекте в качестве ресурсов, добавляются в раздел Resources. MQ5-файлы с исходным кодом отображаются в разделе "Исходники". В разделе "Настройки и файлы" можно добавить другие файлы, например, файлы наборов для тестирования и шаблоны диаграмм.

    Используйте команды контекстного меню для добавления существующих файлов в проект или для удаления файлов из него. Будьте осторожны при удалении файлов, так как вы можете удалить файл из проекта (удалить привязку) или полностью удалить его с жесткого диска:




    Создание нового проекта так же просто, как и создание обычной MQL5-программы. Нажмите кнопку 'Новый проект', выберите тип новой программы и укажите свойства (такие как имя, обработчики событий и т.д.) в Мастере MQL5.

    Чтобы получить исполняемый EX5-файл, можно открыть проект и нажать F7 (команда компиляции) или открыть основной MQ5-файл программы и скомпилировать его.


    Общие проекты в хранилище MQL5: Подробности работы

    Управление общими проектами осуществляется из отдельного раздела Общие проекты. Если вы еще не подключили хранилище, выполните команду "Активировать MQL5 Storage" из контекстного меню нужной папки. MetaEditor проверит, содержит ли ваше хранилище сохраненные данные и доступны ли вам общие проекты. Все доступные данные будут извлечены из хранилища и загружены на ваш компьютер (операция checkout). Доступные групповые проекты появятся в разделе Общие проекты. Чтобы извлечь проекты, выполните команду "Выгрузка из хранилища" в контекстном меню.

    Чтобы создать новый групповой проект, выберите папку Shared Projects и нажмите "New Project":




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

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

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

    • Приватный проект
    • Свободный для участия проект
    • Присоединиться к проекту по запросу




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


    Общественные проекты в MQL5 Storage: Участие в разработке

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

    Каждый может найти интересный проект и принять участие в его развитии. Просто нажмите кнопку Присоединиться и получите проект из хранилища.




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

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


    Как это работает

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

    Например, вы можете создать инструмент, показывающий индекс доллара (USDX). В нем используется приведенная ниже формула:

    50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)

    Примечание: в формуле исходного индекса доллара используются пары USDEUR и USDGBP. Поскольку в платформе доступны только обратные пары, в формуле синтетического символа используется отрицательная мощность и Ask вместо Bid.

    Платформа в режиме реального времени рассчитает цену нового инструмента на основе котировок остальных шести символов, предоставленных вашим брокером. Изменения цены будут визуализированы в окне Market Watch и на графике:




    Создайте новый пользовательский символ, откройте его спецификацию и введите формулу:




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

    Расчет тиков и минутных баров синтетического инструмента начинается, когда этот инструмент добавлен в Обзор рынка. Кроме того, все символы, необходимые для расчета синтетической цены, автоматически добавляются в Обзор рынка. Запись о начале расчета будет добавлена в журнал платформы: Синтетический символ USDX: начата обработка.
    • Расчет синтетического инструмента прекращается после его удаления из Обзора рынка.
    • Символы, которые в настоящее время используются для расчета цен синтетических инструментов, не могут быть скрыты из "Обзора рынка".

    Расчет котировок в режиме реального времени
    Каждые 100 мс (т.е. десять раз в секунду) проверяются цены символов, используемых в расчете. Если хотя бы один из них изменился, рассчитывается цена синтетического символа и генерируется новый тик. Расчет выполняется параллельно в трех потоках для цен Bid, Ask и Last. Например, если формула расчета EURUSD*GBPUSD, то цена синтетического символа будет рассчитана следующим образом:

    • Bid = bid(EURUSD)*bid(GBPUSD)
    • Ask = ask(EURUSD)*ask(GBPUSD)
    • Last = last(EURUSD)*last(GBPUSD)

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

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

    Когда трейдер добавляет синтетический инструмент в Market Watch, платформа проверяет, существует ли его рассчитанная минутная история. Если она не существует, будет создана история за последние 60 дней, которая включает около 50 000 баров. Если в параметре 'Max. bars in chart' в настройках платформы указано меньшее значение, то будет применено соответствующее ограничение.

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

    История минутных баров синтетического инструмента рассчитывается на основе минутных баров (не тиков) инструментов, используемых в его формуле. Например, для расчета цены открытия 1-минутного бара синтетического символа платформа использует цены открытия символов, используемых в ее формуле. Цены High, Low и Close рассчитываются аналогичным образом.

    Если нужный бар недоступен ни для одного из инструментов, платформа будет использовать цену закрытия предыдущего бара. Например, используются три инструмента: EURUSD, USDJPY и GBPUSD. Если при расчете бара, соответствующего 12:00, нужный бар USDJPY недоступен, то для расчета будут использованы следующие цены:

    • Открытие: EURUSD Open 12:00, USDJPY Close 11:59, GBPUSD Open 12:00
    • High: EURUSD High 12:00, USDJPY Close 11:59, GBPUSD High 12:00
    • Low: EURUSD Low 12:00, USDJPY Close 11:59, GBPUSD Low 12:00
    • Закрытие: EURUSD Close 12:00, USDJPY Close 11:59, GBPUSD Close 12:00

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

    Построение новых минутных баров
    Все новые бары (текущий и последующие) синтетического инструмента создаются на основе сгенерированных тиков. Цена, используемая для построения баров, зависит от значения параметра Chart Mode в спецификации:





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

    • Название символа - в зависимости от рассчитываемой синтетической цены будет использоваться Bid, Ask или Last указанного инструмента. Например, если указано EURUSD*GBPUSD, Bid рассчитывается как bid(EURUSD)*bid(GBPUSD), а Ask = ask(EURUSD)*ask(GBPUSD).
    • bid(имя символа) - цена bid указанного символа будет принудительно использоваться для расчета цены Bid синтетического инструмента. Эта опция аналогична предыдущей (когда тип цены не указан).
    • ask(имя символа) - цена Ask указанного символа будет использоваться для расчета цены Bid синтетического инструмента. Bid цена указанного инструмента будет использоваться для расчета Ask. Для расчета Last будет использоваться цена Last указанного инструмента. Если указано ask(EURUSD)*GBPUSD, то будет использоваться следующий расчет:
      • Vid = ask(EURUSD)*bid(GBPUSD).
      • Ask = bid(EURUSD)*ask(GBPUSD)
      • Last = last(EURUSD)*last(GBPUSD)
    • last(имя символа) - цена Last указанного символа будет использоваться при расчете всех цен синтетического инструмента (Bid, Ask и Last). Если указано last(EURUSD)*GBPUSD, то будет использоваться следующий расчет:
      • Vid = last(EURUSD)*bid(GBPUSD).
      • Ask = last(EURUSD)*ask(GBPUSD)
      • Last = last(EURUSD)*last(GBPUSD)
    • volume(имя символа) - в формуле будет использоваться тиковый объем указанного инструмента. Убедитесь, что информация об объеме предоставлена брокером для данного инструмента.
    • point(имя символа) - в расчетах будет использоваться минимальное изменение цены указанного инструмента.
    • digits(имя символа) - в формуле будет использоваться количество знаков после запятой в цене указанного символа.

    Если символ имеет сложное название (содержит дефисы, точки и т.д.), его необходимо писать в кавычках. Пример: "RTS-6.17".
    В формуле могут быть использованы следующие арифметические операции: сложение (+), вычитание (-), умножение (*), деление (/) и остаток от деления (%). Например, EURUSD+GBPUSD означает, что цена рассчитывается как сумма цен EURUSD и GBPUSD. Также вы можете использовать унарный минус для изменения знака, например: -10*EURUSD.

    Помните о приоритете вычисления арифметических операций:

    • Сначала выполняются операции умножения, деления и остатка; затем выполняются операции сложения и вычитания.
    • Операции выполняются слева направо. Если в формуле используется несколько операций, имеющих одинаковый приоритет (например, умножение и деление), первой будет выполнена операция слева.
    • Для изменения приоритета операций можно использовать скобки ( и ). Операции в скобках имеют наивысший приоритет при вычислениях. Для них также действует принцип "слева направо": операции в скобках слева вычисляются первыми.

    В формуле можно использовать константы:

    • Числовые (целочисленные и плавающие). Пример: EURUSD*2+GBPUSD*0.7.
    • Свойства символов _Digits и _Point. Они добавляют в формулу соответствующие свойства пользовательского символа из спецификации. _Digits означает количество знаков после запятой в цене инструмента; _Point означает наименьшее изменение цены символа.

    Вы также можете использовать в формуле все математические функции, поддерживаемые в MQL5, кроме MathSrand, MathRand и MathIsValidNumber: Для всех функций используются только короткие имена, такие как fabs(), acos(), asin() и т.д.

  3. Терминал: Реализована новая опция, позволяющая добавлять котировки пользовательских инструментов в режиме реального времени. Теперь можно разработать MQL5-советник, который будет подавать котировки указанного пользовательского инструмента. Для этого используется функция CustomTicksAdd.
    int  CustomTicksAdd(
       const string           symbol,       // Symbol name
       const MqlTick&         ticks[]       // The array with tick data that should be applied to the custom symbol
       );
    Функция CustomTicksAdd позволяет подавать котировки так, как будто они получены с сервера брокера. Данные отправляются в окно Market Watch вместо того, чтобы напрямую записываться в базу данных тиков. Затем терминал сохраняет тики из окна Market Watch в базу данных. Если за один вызов передается большой объем данных, поведение функции изменяется в целях экономии ресурсов. Если передается более 256 тиков, данные делятся на две части. Большая часть записывается непосредственно в базу данных тиков (аналогично CustomTicksReplace). Вторая часть, состоящая из последних 128 тиков, отправляется в Market Watch, откуда терминал сохраняет тики в базу данных.

  4. MQL5: Добавлен новый онлайн-сервис MQL5 Cloud Protector для обеспечения дополнительной защиты MQL5-программ. Защита аналогична опции, используемой в крупнейшем магазине торговых приложений MetaTrader Market, где файлы продуктов EX5, предоставленные продавцами, дополнительно компилируются в нативный код.

    Теперь этот вид защиты доступен всем пользователям платформы. Чтобы защитить свои файлы, выполните в MetaEditor следующую команду: Инструменты-MQL5 Cloud Protector. Единственное отличие MQL5 Cloud Protector от механизма, используемого в Маркете, заключается в том, что файл не привязывается к компьютеру пользователя. Защищенные с помощью MQL5 Cloud Protector файлы могут быть запущены на любых компьютерах аналогично обычным EX5-файлам.
    MQL5 Cloud Protector - это безопасный сервис. Дополнительная защита применяется только к скомпилированному файлу. Исходный код в сервис не передается. На первом этапе программа компилируется в EX5-файл на компьютере пользователя, после чего скомпилированный файл отправляется по зашифрованному каналу в сервис, где он защищается и возвращается пользователю.



  5. Терминал: В окне "Обзор рынка" теперь дополнительно отображаются цены High и Low. По умолчанию эти столбцы скрыты. Их можно включить с помощью контекстного меню:




    Если график символа построен с использованием цен Bid (в соответствии с настройками спецификации), то для данного символа отображаются цены Bid High и Bid Low. Если график символа построен с использованием цен Last, для данного символа отображаются цены Last High и Last Low.

    Если Market Watch содержит хотя бы один символ, график которого строится на основе цен Last, колонка Last автоматически включается в дополнение к High/Low.

  6. Терминал: Теперь можно редактировать тиковую историю пользовательских финансовых инструментов. Нажмите "Символы" в контекстном меню Market Watch, выберите пользовательский символ и запросите необходимый интервал данных на вкладке Ticks.

    • Дважды нажмите, чтобы изменить значение.
    • Используйте контекстное меню для добавления или удаления записей.
    • Если вам нужно удалить сразу несколько баров/тиков, выделите их мышью, удерживая Shift или Ctrl+Shift.




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

    • Зеленый фон означает измененную запись
    • Серый фон означает удаленную запись
    • Желтый фон означает добавленную запись

    Чтобы сохранить изменения, нажмите "Применить изменения" в нижней части окна.

  7. Терминал: Добавлено отображение предварительных счетов в дереве Навигатора.

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




  8. Терминал: Добавлено отображение времени в миллисекундах в окне котировок.





  9. Терминал: Сканирование доступных серверов в диалоге открытия нового счета стало быстрее.
  10. Терминал: Исправлено отображение графического объекта Trendline при включенных опциях Ray Left и Ray Right.
  11. Terminal: Оптимизирована работа с большим количеством внутренних писем (сотни тысяч).
  12. Терминал: Оптимизирована работа терминала с большим количеством торговых инструментов (50 000 и более).
  13. Терминал: Добавлена оптимизация тиковой истории пользовательских финансовых инструментов, выполненная после редактирования истории.
  14. MQL5: Добавлены новые функции для работы с пользовательскими финансовыми инструментами.

    Функция Действие
    CustomSymbolCreate Создать пользовательский символ с указанным именем в указанной группе
    CustomSymbolDelete Удалить пользовательский символ с указанным именем
    CustomSymbolSetInteger Установка значения свойства типа integer для пользовательского символа
    CustomSymbolSetDouble Установить значение свойства типа real для пользовательского символа
    CustomSymbolSetString Установить значение свойства строкового типа для пользовательского символа
    CustomSymbolSetMarginRate Устанавливает ставки маржи в зависимости от типа и направления ордера для пользовательского символа
    CustomSymbolSetSessionQuote Установка времени начала и окончания указанной котировочной сессии для указанного символа и дня недели
    CustomSymbolSetSessionTrade Устанавливает время начала и окончания указанной торговой сессии для указанного символа и дня недели
    CustomRatesDelete Удалить все бары из истории цен пользовательского символа в указанном интервале времени
    CustomRatesReplace Полностью заменить историю цен пользовательского символа в указанном временном интервале данными из массива типа MqlRates
    CustomRatesUpdate Добавить недостающие бары в историю пользовательского символа и заменить существующие данные данными из массива типа MqlRates
    CustomTicksAdd Добавляет данные из массива типа MqlTick в историю цен пользовательского символа. Пользовательский символ должен быть выбран в окне Обзор рынка.
    CustomTicksDelete Удаляет все тики из истории цен пользовательского символа за указанный интервал времени.
    CustomTicksReplace Полностью заменить историю цен пользовательского символа в указанном интервале времени данными из массива типа MqlTick.

  15. MQL5: В стандартную библиотеку добавлены коллекции Generic Data Collections. Они содержат классы и интерфейсы для определения коллекций на основе шаблонов. Новые коллекции с сильной типизацией обеспечивают большее удобство разработки приложений и высокую производительность обработки данных.

    Библиотека помещается в папку Include\Generic рабочего каталога терминала.

  16. MQL5: Добавлена поддержка шаблонов для типа данных union.
  17. MQL5: Добавлено свойство торгового инструмента SYMBOL_VISIBLE. Вызов SymbolInfoInteger(symbol, SYMBOL_VISIBLE) возвращает false, если указанный символ не виден в Market Watch.
  18. MQL5: Добавлено новое свойство CHARTEVENT_MOUSE_WHEEL. Событие вызывается при прокрутке или нажатии колеса мыши на графике (если CHART_EVENT_MOUSE_WHEEL=true для графика).
  19. MQL5: Добавлены следующие свойства графика:

    • CHART_EVENT_MOUSE_WHEEL - включение/выключение генерации CHARTEVENT_MOUSE_WHEEL (событие прокрутки и клика мышью по графику). Возможные значения: 0 и 1.
    • CHART_CROSSHAIR_TOOL - включение/выключение возможности переключения курсора в режим "Перекрестие" по среднему щелчку мыши. Возможные значения: 0 и 1.
    • CHART_CONTEXT_MENU - включить/выключить использование правой кнопки мыши для отображения контекстного меню графика. Возможные значения: 0 и 1.

  20. MQL5: Теперь буферы рисования со стилем DRAW_NONE не учитываются при расчете масштаба окна индикатора.
  21. MQL5: Добавлена генерация события CHARTEVENT_CHART_CHANGE при установке свойства CHART_SCALEFIX (фиксированный масштаб) для графика.
  22. MQL5: Добавлена функция ArraySwap, позволяющая быстро менять местами содержимое динамических массивов.
    bool  ArraySwap(
       void&  array1[],      // The first array
       void&  array2[]       // The second array
       );
    Функция принимает динамические массивы одного типа и одинаковой размерности. Для многомерных массивов количество элементов во всех измерениях, кроме первого, должно совпадать.

  23. MQL5: Добавлено новое свойство TERMINAL_RETRANSMISSION - процент повторно отправленных сетевых пакетов(повторных передач) в протоколе TCP/IP для всех запущенных приложений и служб на данном компьютере. Потеря пакетов происходит даже в самых быстрых и правильно настроенных сетях. В этом случае между получателем и отправителем нет подтверждения доставки пакета. Поэтому потерянные пакеты отправляются повторно.

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

    Свойство TERMINAL_RETRANSMISSION добавлено в перечисление ENUM_TERMINAL_INFO_DOUBLE, для его получения используется функция TerminalInfoDouble.
  24. MQL5: Оптимизирована работа с торговой историей.
  25. Сигналы: Исправлено указание типа заполнения ордера в случае принудительного закрытия позиций, открытых по Сигналу. В опциях копирования сигналов предусмотрена опция 'Stop if the account is lower than XXX USD': если капитал опускается ниже указанного уровня, копирование торговых сигналов автоматически прекращается, все позиции закрываются. Ранее для ордеров на закрытие позиций в случае принудительного закрытия мог быть установлен некорректный тип заполнения. Теперь терминал проверяет допустимые типы заполнения в настройках символа и указывает правильный вариант.
  26. Тестер: Поведение функции HistoryOrderSelect в тестере стратегий теперь соответствует аналогичной функции в клиентском терминале.
  27. Тестер: Поведение функций CopyTicks и CopyTicksRange в тестере стратегий теперь соответствует аналогичным функциям в клиентском терминале.
  28. Тестер: Оптимизировано отображение графических объектов при визуальном тестировании.
  29. Тестер: Исправлено отображение результатов тестирования биржевых инструментов (с моделью управления биржевым риском). Теперь на графике отображается только эквити, а баланс и загрузка депозита не показываются. Торговый статус таких счетов оценивается по уровню эквити. Баланс показывает только количество денег на счете и не учитывает активы и обязательства трейдера. Депозитная нагрузка (маржа/эквити) не отображается, поскольку в режиме биржевых расчетов маржа равна текущей дисконтированной стоимости актива/пассива и изменяется вместе с эквити.
  30. Метаредактор: Добавлена возможность легко вставлять свойства и ресурсы в программный код. Например, вы можете быстро добавить в код включенный файл. Используйте команду "Insert-MQH as #incude" и выберите нужный включаемый файл. Директива #include с правильным путем к выбранному файлу будет вставлена в код программы.




    В этом же меню можно добавить в код программы файлы в виде бинарного или текстового массива. Среди прочего, вы можете переносить шаблоны графиков с советниками или индикаторами: вставьте свой шаблон в программный код в виде массива и сохраните его на диске с помощью функции FileSave. После этого шаблон можно применить на нужном графике прямо из советника с помощью функции ChartApplyTemplate.
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- Template file as a binary array
       unsigned char my_template[]=
         {
          0xFF,0xFE,0x3C, ... ,0x00 // The data array in this example is shortened
         };
    //--- Saving and applying the template
       if(FileSave("my_template.tpl",my_template))
         {
          Print("Custom template saved in \\MQL5\\Files");
          if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
             Print("Custom template applied to the current chart");
          else
             Print("Failed to apply custom template");
         }
       else
          Print("Failed to save custom template");
      }

  31. Метаредактор: Добавлена возможность конвертации строк между форматами ASCII, HEX и Base64. Выделите строку в исходном коде и выберите нужную команду в меню Edit-Convert:




  32. MetaEditor: Исправлен поиск в файлах без учета регистра.
  33. MetaEditor: Исправлена ошибка отладчика, которая могла возникнуть при вычислении выражений, подобных x.y[0][1].z.
  34. MetaEditor: Исправлена навигация по коду с помощью кнопок Вперед и Назад.
  35. Пользовательский интерфейс теперь доступен и на голландском языке.
  36. Обновленная документация.

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


 

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

Обсудим совместные проекты в редакторе - зачем они и куда движутся

Ренат Фатхуллин, 2017.12.28 16:51

Совсем забыл - в январе мы выпускаем новую коммуникационную систему для общения.

Это аналог Телеграма, включающий каналы и группы (публичные и приватные).

Можно будет запускать тематические группы, в том числе платные.

Например, распространять аналлитический контент по подписке. Большой упор на обмен данными с терминалов. Это позволит гораздо быстрее и удобнее обмениваться графиками, профилями, настройками, программами и т.д.

 
Sergey Golubev:
Господин Сергей, не думаете ли вы, что это создаст большое разделение и изоляцию для бесплатных знаний на форуме. Потому что теперь люди должны будут подписаться, чтобы получить знания!
 

Что касается MT5, то он сейчас надежен и перспективен. Я планирую перейти на MT5 в следующем году, я хотел бы спросить относительно "Синтетической формулы и пользовательского символа", допустим, мой брокер не предоставляет пользовательский символ, который я решил создать, могу ли я открывать сделки на этом символе и получать прибыль/ убытки, и будет ли это добавлено / вычтено из моего баланса?

 

Создание пользовательской ленты новостей для MetaTrader 5


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