MetaTrader 5 - больше, чем можно представить!

MetaQuotes | 1 июня, 2012

Введение

Разработка MetaTrader 5 началась еще в далеком 2007 году. С самого начала MetaTrader 5 задумывалась как революционная, мульти-рыночная платформа, которая сможет работать как на Forex, так и на любой бирже. За все время разработки была проделана огромная работа, результатом которой является многосервисная инфраструктура, предоставляющая трейдерам безграничные возможности для торговли. В данной статье мы постараемся рассказать о всех ключевых функциях MetaTrader 5, а также проведем сравнительный анализ с предыдущей версией.

  1. Графики
  2. Навигатор
  3. Торговля
  4. Инструменты/Toolbox
  5. Тестирование и оптимизация
  6. Интеграция с MQL5.community
  7. MetaEditor
  8. Язык программирования MQL5
  9. Сервисы для трейдеров и разработчиков


1. Графики

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

1.1. Кастомизация и 21 Таймфрейм. Графики в платформе имеют множество различных настроек, и любой трейдер может адаптировать их под свои требования. MetaTrader 5 поддерживает 3 вида графиков: ломаная линия, последовательность баров или японских свечей. Любому элементу на графике можно изменить цвет и создать наиболее комфортное рабочее пространство для долговременной работы. По сравнению с 4-й версией платформы, в MetaTrader 5 количество доступных периодов графиков увеличилось более чем в 2 раза, теперь их 21.

Графики в MetaTrader 5

1.2. Преимущества минуток. В MetaTrader 5 реализован совершенно новый принцип передачи и хранения ценовых данных. В предыдущей версии данные по разным таймфреймам передавались на терминалы по отдельности. Теперь данные передаются и хранятся только в виде минутных баров, более старшие таймфреймы строятся на их основе в клиентских терминалах. Данный подход обеспечивает существенную экономию трафика, поскольку история скачивается только один раз и применяется для всех периодов. После скачивания ценовой истории терминал осуществляет только докачку новых данных.

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

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

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

1.3. Индикаторы. В стандартную поставку MetaTrader 5 входит большое количество технических индикаторов - 38 штук. Все они удобно сгруппированы в окне Навигатор по типу: Трендовые, Осцилляторы, Индикаторы объемов и Индикаторы Билла Вильямса. Доступные индикаторы включают в себя Bollinger Bands, Envelopes, Moving Average, Parabolic SAR, Standard Deviation, Ichimoku Kinko Hyo, MACD, Bulls Power, Bears Power, Alligator, Awesome Oscillator и многие другие.

Количество сторонних индикаторов для MetaTrader 5 практически не ограничено. Огромное количество индикаторов доступно для скачивания из Code Base и покупки через Маркет.

1.4. Аналитические инструменты. Список доступных аналитических инструментов также значительно расширен. Сейчас в терминале MetaTrader 5 доступны 46 объектов, среди которых есть инструменты Эллиотта, Фибоначчи и Ганна, графические объекты (в том числе для интерактивного взаимодействия с MQL5-программами), фигуры, каналы, линии и т.д.

Каждый объект обладает индивидуальными настройками - цвет, толщина линий, дополнительный уровни, а также отображение на различных таймфреймах.

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

1.6. Экономический календарь. Одним из нововведений MetaTrader 5 является экономический календарь, позволяющий проводить фундаментальный анализ рынков. Макроэкономические показатели обновляются в режиме реального времени. Помимо этого, события экономического календаря легко можно отобразить на графике цен.

Экономический календарь в MetaTrader 5

1.7. Больше рыночной информации. В четвертой версии платформы по каждому символу в режиме реального времени транслируются пять показателей - Bid, Ask, High, Low и Time. В MetaTrader 5 объем доступной информации увеличился в несколько раз. К основным показателям добавился реальный объем и цена последней совершенной сделки. А на специальной вкладке в "Обзоре рынка" для каждого финансового инструмента доступно более 20 статистических показателей, которые обновляются в режиме реального времени:

Рыночная статистика

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

1.8. Публикация графиков онлайн. В MetaTrader 5 появилась удобная функция публикации скриншотов онлайн. Теперь терминал позволяет не только сохранить изображение на локальном компьютере, но и моментально поделиться им с другими трейдерами через специальный сервис MQL5 Charts, который является частью MQL5.community. При этом, если в терминале указан аккаунт пользователя в MQL5.community, то скриншот привязывается к нему. Это позволяет трейдеру создавать собственные галереи изображений и удобно управлять ими через профиль.

Публикация графиков онлайн

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


2. Навигатор

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

2.1. Поиск сервера по имени брокера. Удобным нововведением MetaTrader 5 является добавление серверов брокеров по их названию. Если раньше, чтобы открыть новый демо-счет у какого-либо брокера, вам было необходимо выяснять IP-адрес его торгового сервера или скачивать специальный клиентский терминала, то сейчас достаточно ввести имя брокера. Система сама найдет нужный сервер по указанному имени и добавит его в список:

Поиск сервера по имени брокера

После этого вы можете приступать к открытию счета.

2.2. Группировка программ. Еще одним удобством окна Навигатор является группировка программ. Технические индикаторы, входящие в стандартную поставку, сгруппированы по типам: Трендовые, Осцилляторы, Индикаторы объемов и Индикаторы Билла Вильямса. Пользовательские индикаторы, Советники и Скрипты также сгруппированы в отдельные ветки. При этом внутри этих веток поддерживается иерархия, аналогичная структуре папок на диске. Например, вы можете разложить свои пользовательские индикаторы на подпкапки /MQL5/Indicators/My, /MQL5/Indicators/CodeBase и т.д. В окне Навигатор вы увидите аналогичную структуру хранения.

MQL5-программы, купленные через Маркет, автоматически попадают в соответствующую подкатегорию Market в Советниках, Пользовательских индикаторах и Скриптах.

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

2.3. Доработка программ. При возникновении необходимости доработки приложения (при условии наличия исходного кода), выберите его и нажмите клавишу Enter. Исходный код приложения будет тут же открыт в редакторе MetaEditor.

2.4. Скачивание программ из Code Base. Благодаря тесной интеграции торгового терминала MetaTrader 5 с сервисами MQL5.community, одним кликом мыши из Навигатора можно перейти к скачиванию советника, индикатора или скрипта из Code Base. В каждой категории приложений присутствует специальная команда "еще". Цифра рядом с данной командой указывает на количество доступных для скачивания приложений:

Скачивание программ из Code Base

2.5. Быстрое тестирование. Любой советник или индикатор можно запустить на тестирование в два клика - контекстной командой "Тест". При этом будет сразу открыт Тестер Стратегий с выбранной программой, а вам останется только настроить параметры и запустить проверку.


3. Торговля

В MetaTrader 5 механизмы торговли претерпели значительные изменения по сравнению с MetaTrader 4. Все эти изменения направлены на расширение применения торговой платформы. С MetaTrader 5 трейдеры получают возможность торговать на любых биржевых площадках и через любые ECN. Уже сейчас платформа MetaTrader 5 получила статус независимого поставщика программного обеспечения (ISV) на ряде торговых площадок, среди которых SMX, GBOT, CitiBank, Currenex, DGCX, Integral и т.д. Дальнейшие планы направлены на интеграцию с крупнейшими биржами по всему миру.

3.1. Биржевой учет позиций. В платформе MetaTrader 5 ведется так называемый "неттинговый" учет позиций, что соответствует требованиям всех современных бирж. Данный учет заключается в том, что по одному финансовому инструменту в каждый момент времени может существовать только одна позиция, разнонаправленные (в покупку и в продажу) позиции не допускаются.

Таким образом, если совершить торговую операцию на продажу 1 лота финансового инструмента при наличии позиции на покупку объемом 1 лот, позиция будет ликвидирована. Если имеется позиция на покупку объемом 1 лот и совершается торговая операция на покупку еще 1 лота, в итоге будет получена одна позиция объемом 2 лота. При этом цена открытия пересчитывается - рассчитывается средневзвешенная цена открытия: (Цена первой сделки*Объем первой сделки + Цена второй сделки*Объем второй сделки)/(Объем первой сделки + Объем второй сделки).

3.2. Шесть типов отложенных ордеров. В дополнение к рыночным, лимитным и стоп ордерам в платформе MetaTrader 5 появились еще два типа отложенных ордеров - Buy Stop Limit и Sell Stop Limit. При срабатывании ордера такого типа выставляется соответстующий лимитный ордер. Новые типы ордеров расширяют возможности реализации торговых стратегий.

3.3. Торговля одним кликом. В настоящее время скорость совершения торговых операций играет очень важную роль при торговле. В MetаTrader 5 реализована возможность моментального совершения торговых операций по одному клику. Эта возможность доступна в уже знакомом по 4-й версии терминала окне Обзор рынка:

Торговля одним кликом

Помимо этого, функция торговли одним кликом позволяет быстро закрывать позиции, удалять отложенные ордера, а также уровни Стоп Лосс и Тейк Профит во вкладке "Торговля":

Торговля одним кликом

Функции быстрой торговли также доступны в стакане цен.

3.4. Торговля с графика. Для удобства тех, кто торгует вручную, в MetaTrader 5 предусмотрены обширные возможности торговли непосредственно на графике. На каждом графике есть скрываемая панель для быстрых рыночных операций:

Торговля с графика

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

3.5. Изменение торговых уровней на графике. В MetaTrader 5 появилась возможность изменения цен отложенных ордеров, а также ордеров Stop Loss и Take Profit непосредственно на графике. Теперь, видя текущую обстановку на рынке, вы можете легко переместить мышью торговый уровень в нужную зону, а затем скорректировать его значение более точно:

Перемещение торговых уровней мышью

3.6. Асинхронность и многопоточность торговли. По сравнению с MetaTrader 4 в пятой версии платформы трейдер получил более широкие возможности по осуществлению множества торговых операций одновременно. Раньше трейдеры могли сталкиваться с ошибкой "Торговый поток занят", например, при торговле несколькими экспертами одновременно. В MetaTrader 5 торговый поток расширен и позволят отправить до 16 торговых запросов на сервер, не дожидаясь результата их обработки.

3.7. Вывод операций на биржу. Как уж отмечалось ранее, благодаря возможностям интеграции торговой платформы MetaTrader 5 с другими системами, трейдеры получают доступ к ведущим торговым площадкам по всему миру. Система позволяет осуществлять прямой вывод торговых операций во внешние торговые системы (Straight Through Processing). При этом торговые операции осуществляются без посредника в виде брокера (в режиме Non-Dealing Desk).

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

Стакан цен

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

3.9. Дополнительные условия исполнения. Для каждой торговой операции трейдер может указать дополнительные условия исполнения брокером - Fill or Kill (FOK) или Immediate or Cancel (IOC). Режим FOK подразумевает, что торговая операция должна быть исполнена исключительно в указанном объеме. Если такой объем инструмента не присутствует на рынке, заявка не должна быть обработана. Режим IOC подразумевает, что торговая операция может быть исполнена по максимально доступному на рынке объему в пределах указанного в ордере. В случае невозможности полного исполнения ордер будет исполнен на доступный объем, а неисполненный объем ордера будет отменен.

3.10. Мобильный трейдинг и Push-уведомления. В настоящее время мобильный трейдинг становится все более популярным. Трейдеру требуется доступ к своему торговому счету 24 часа в сутки, 7 дней в неделю в любом месте. Мобильная часть торговой платформы MetaTrader 5 идет в ногу со временем. Трейдерам абсолютно бесплатно доступны мобильный терминалы MetaTrader 5 для iPhone и Android.

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

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

Push-уведомления также можно использовать для получения информации об обновлениях на сайте MQL5.community. Для этого укажите ваш ID в профиле пользователя на вкладке "Контакты".

Push-уведомления

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


4. Инструменты/Toolbox

Окно Инструменты, знакомое трейдерам по 4-й версии терминала, приобрело значительное количество новых функций.

4.1. Активы. Теперь трейдер может просмотреть суммарную информацию о состоянии активов по всем открытым позициям.

Активы

4.2. Календарь. Как уже упоминалось выше в разделе 1, в MetaTrader 5 стал доступен календарь экономических событий. По более чем 10 ведущим экономикам мира доступны макроэкономические показатели, обновляющиеся в режиме реального времени. Все события могут быть отображены на графика соответствующих валютных пар.

4.3. Маркет. Терминал MetaTrader 5 тесно интегрирован с сервисами MQL5.community для трейдеров. Маркет - это магазин MQL5-приложений, где любой желающий может купить понравившийся продукт для использования в торговом терминале. Для удобства Маркет интегрирован непосредственно в клиентский терминал.

Маркет - магазин приложений для MetaTrader 5

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

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

4.4. Code Base. Окно Инструменты также дает доступ к огромной базе бесплатных исходных кодов MQL5. Напрямую из терминала трейдер может загрузить и запустить любой код. Достаточно перетащить мышкой советник, индикатор или скрипт на график. Код будет автоматически загружен, размещен в соответствующей папке, скомпилирован и запущен на графике.

Code Base

Количество опубликованных исходных кодов постепенно приближается к 1500 и в дальнейшем будет продолжать расти.


5. Тестирование и оптимизация

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

5.1. Расширенный отчет о тестировании. В MetaTrader 5 значительно расширен отчет о результатах тестирования советников. В него включены дополнительные статистические показатели, позволяющий более полно оценить торговую стратегию. Среди нововведений такие показатели как фактор восстановления, коэффициент Шарпа, показатели по времени удержания позиций и многое другое. Всего в отчете тестера доступно более 40 показателей.

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

Графики по результатам тестирования

Помимо этого доступны графики распределения прибыли и MAE/MFE, а также распределения прибыли и времени удержания позиции.

Графики распределения прибыли, MAE, MFE и времени удержания позиции

5.2. Повышенная точность потикового тестирования. Тестер стратегий терминала MetaTrader 5 использует только один режим моделирования цены при тестировании - генерацию тиков на основе существующих минутных данных. Использование в тестере таймфрейма М1 позволяет очень точно моделировать движение цен с минимальной погрешностью в отличие от моделирования тиков на основе старших таймфреймов в MetaTrader 4. Вследствие этого максимальные погрешности при моделировании цены в тестере стратегий MetaTrader 5 являются мизерными, и расхождения между смоделированной ценой и ценой, прошедшей в реальности, могут быть только внутри масштаба минутного бара.

5.3. Больше режимов тестирования. В MetaTrader 5 доступны четыре режима тестирования: Все тики (самый точный метод), 1 minute OHLC (тестирование по опорным точкам бара), Только цены открытия (самый грубый метод для быстрого тестирования), Математические вычисления (для математических вычислений в тестере стратегий без использования исторических данных и генерации тиков).

5.4. Собственный критерий оптимизации. Если в MetaTrader 4 трейдер имел возможность оптимизировать эксперта по 1 из пяти критериев, то в пятой версии к ним добавился еще один (произведение баланса на коэффициент Шарпа). Однако главным нововведением является возможность использовать собственный критерий оптимизации. Выбрав значение Custom max в настройках тестера, трейдер сможет оптимизировать советника по максимальному значению, возвращаемому функцией OnTester().

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

Поскольку кэш результатов оптимизации представляет собой обычный XML-файл, его можно анализировать во внешних приложениях (например, MS Excel).

5.6. Автоматическое скачивание истории и синхронизация таймфреймов. Тестер стратегий MetaTrader 5 самостоятельно обеспечивает наличие всех необходимых исторических данных. Перед началом тестирования он скачивает все доступные исторические данные по символу тестирования. Это осуществляется только в первый раз. В дальнейшем осуществляется лишь докачка недостающих данных. Если во время тестирования советник (мультивалютный) запрашивает данные по другим символам, они также автоматически подкачиваются с торгового сервера.

5.7. Форвард-тестирование. В MetaTrader 5 появился режим форвард-тестирования. Форвард-тестированием называется повторный прогон наилучших результатов оптимизации на другом временном периоде. Такая возможность позволяет исключить подгонку параметров советников на определенных участках исторических данных.

5.8. Стресс-тестирование. Для максимального приближения условий тестирования советников к реальным в тестер MetaTrader 5 добавлен режим "Произвольных задержек". С момента отсылки приказа и до его исполнения цена может измениться. В зависимости от отклонения, установленного в ордере, может произойти его исполнение по текущей цене (если она в пределах отклонения) или реквотирование. Тестирование в данном режиме позволит экспертописателю правильно запрограммировать обработку подобных ситуаций.

5.9. Многопоточная оптимизация. Тестер стратегий является многопоточным и позволяет задействовать все доступные ресурсы компьютера. Тестирование и оптимизация осуществляется при помощи специальных вычислительных агентов, которые устанавливаются в виде сервисов на компьютере пользователя (по одному агенту на каждое ядро процессора). Агенты работают независимо и позволяют проводить параллельные вычисления проходов оптимизации.

5.10. Фермы тестирования из удаленных агентов. К тестеру стратегий можно подключить неограниченное количество удаленных агентов - агентов, установленных на других компьютерах. При помощи специального приложения MetaTester вы можете установить агенты тестирования на каждом компьютере локальной сети, а затем подключить их в одном клиентском терминале к тестеру стратегий. Агенты будут получать задания на вычисления по сети и возвращать результаты клиентскому терминалу. Таким образом, можно значительно расширить возможности параллельных вычислений и в разы ускорить процесс оптимизации.

5.11. MQL5 Cloud Network. Сеть облачных вычислений MQL5 Cloud Network позволяет организовать обмен вычислительными ресурсами между теми, кто в них нуждается, и теми, кто может предоставить избыточное процессорное время своего компьютера. Благодаря MQL5 Cloud Network, трейдер может использовать вычислительные мощности тысяч агентов по всему миру. Оптимизация, которая заняла бы несколько лет при использовании только одного компьютера, теперь может быть выполнена в считанные часы.

Тысячи агентов в MQL5 Cloud Network

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

Помимо использования MQL5 Cloud Network, можно предоставлять собственные вычислительные мощности для нее и зарабатывать реальные деньги. Для этого даже не обязательно устанавливать клиентский терминал MetaTrader 5 полностью. Скачайте специально созданный установщик, который позволит быстро и удобно установить приложение MetaTester для управления удаленными агентами на компьютере. После осуществления простой настройки вы присоединитесь к MQL5 Cloud Network и начнете зарабатывать. Вся статистика по использованию сети и заработку на предоставлении собственных мощностей удобно собрана в вашем профиле на сайте MQL5.community. Информация по агентам появится в профиле сразу после выполнения первого задания.

5.12. Легкость управления агентами. Управление агентами тестирования удобно осуществляется через контекстное меню. В пару кликов можно включить/отключить любые типы агентов: локальные, удаленные или MQL5 Cloud Network. Здесь же можно управлять подключенными удаленными агентами, а также импортировать и экспортировать настройки агентов.

5.13. Математические вычисления. Возможности тестера стратегий вкупе с мощностями MQL5 Cloud Network не ограничиваются тестированием и оптимизацией советников. Режим тестирования "Математические вычисления" позволяет осуществлять любые расчеты. При этом тестер стратегий не загружает и не использует ценовую историю и информацию о символах, а просто выполняет расчеты, последовательно вызывая функции OnInit(), OnTester() и OnDeinit(). Математические вычисления удобно использовать для задач поиска экстремума математической функции, значение которой должно возвращаться из OnTester(). Оптимизация ведется на поиск максимального значения функции.

5.14. 2D и 3D визуализация результатов оптимизации. Лучше один раз увидеть, чем сто раз услышать. В тестере стратегий присутствует возможность анализа результатов оптимизации в визуальном режиме. Так выглядит двухмерная визуализация оптимизации. Чем темнее оттенок зеленого цвета, тем выше значение критерия оптимизации:

2D визуализация результатов тестирования

Ниже представлен трехмерный режим визуализации математических вычислений в тестере стратегий. Картина представляет собой поиск максимума функции f(x,y)=MathSin(x^2+y^2)+k*MathExp(-p*x^2-p*y^2):

3D визуализация результатов тестирования

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

Визуальное тестирование в MetaTrader 5

5.16. Любые пользовательские результаты во время оптимизации. При каждом запуске эксперта в тестере стратегий можно создать собственный массив данных. Этот набор данных можно сохранить с помощью функции FrameAdd() в специальной структуре, называемой фрейм (кадр). Каждый агент при оптимизации эксперта может посылать в терминал серию фреймов. Все полученные фреймы в порядке поступления от агентов записываются в *.MQD файл в папку каталог_терминала/MQL5/Files/Tester по имени эксперта. Поступление фрейма в клиентский терминал от агента тестирования генерирует событие TesterPass, которое можно обработать функцией OnTesterPass(). Это позволят динамически обрабатывать результаты оптимизации прямо "на лету", не дожидаясь её окончания.

5.17. Ускорение за счет OpenCL. Благодаря нативной поддержке OpenCL в языке MQL5, ряд расчетов, производимых в советниках, может быть осуществлен при помощи видеокарт. Современные видеокарты содержат сотни небольших специализированных процессоров, которые могут одновременно выполнять простые математические операции над входящими потоками данных.

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

Например, расчет известного фрактала Мандельброта осуществляется в 100 раз быстрее при помощи Open CL, чем при использовании процессора.


6. Интеграция с MQL5.community

Клиентский терминал MetaTrader 5 тесно интегрирован с MQL5.community — сообществом разработчиков на языке MQL5. MQL5.community предоставляет трейдерам и разработчикам уникальные сервисы:

6.1. Маркет. Прямо из терминала можно приобрести любое готовое приложение в магазине MQL5-программ. Перед покупкой вы можете бесплатно скачать ознакомительную версию и проверить ее в тестере стратегий.

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

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

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

6.4. Code Base. Одним щелчком мыши пользователь может скачать и запустить любой код, опубликованный в разделе Code Base сайта MQL5.community. Достаточно перетащить мышкой советник, индикатор или скрипт на график. Код будет автоматически загружен, размещен в соответствующей папке, скомпилирован и запущен на графике.

6.5. Сигналы. Сервис Сигналы позволит пользователям подписываться на торговые сигналы профессиональных трейдеров, получать их прямо в клиентском терминале и совершать торговые операции в соответствии с ними.

6.6. Статьи. На MQL5.community опубликовано множество полезных статей по языку программирования MQL5 и работе с торговой платформой. Найдите нужную статью по заголовкам и описаниям, удобно собранным в отдельной вкладке окна "Инструменты" прямо в MetaEditor.

Доступ к статьям на MQL5.community

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

Если в терминале MetaTrader 5 указан аккаунт MQL5.community, то скриншот привязывается к нему. Это позволяет трейдеру создавать собственные галереи изображений и удобно управлять ими через профиль.


7. MetaEditor 5

Встроенный язык программирования всегда являлся одной из важнейших частей торговых платформ MetaTrader. Разработка приложений это не только язык программирования MQL5, чьи несомненные преимущества будут доказаны ниже, это и редактор, в котором осуществляется работа с исходным кодом. В MetaEditor 5 появилось множество функций, которых так не хватало пользователям MetaTrader 4.

7.1. Новая файловая система. Как и в предыдущей версии, MetaEditor позволяет работать только в пределах собственной файловой песочницы - папки /MQL5, находящейся внутри папки данных терминала. Для более удобной работы для каждого типа исходных файлов предусмотрен собственный каталог (Experts, Indicators, Scripts, Include и т.д.). Структура папок и файлов, в которых хранятся исполняемые программы (советники, индикаторы и скрипты), соответствующим образом отображается и в окне Навигатор в клиентском терминале.

Удобная структура файлов

7.2. Мастер MQL5. В состав MetaEditor 4 входит Мастер создания Советника, который позволяет генерировать шаблоны для разработки различных приложений. В пятой версии MetaEditor данный компонент был значительно переработан. Он получил новое название Мастер MQL5. Он по-прежнему позволяет создавать шаблоны программ, которые уже правильно оформлены и содержат нужные обработчики событий. Однако главным нововведением является возможность генерировать полностью готовых и работоспособных советников. Трейдеру необходимо выбрать, какие сигналы будет использовать советник, как он будет управлять капиталом (тип мани-менеджмента) и как он будет защищаться от потерь (тип трейлинг-стопа).

Мастер MQL5

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

7.3. Персональное хранилище кодов MQL5 Storage. MQL5 Storage - это удаленное персональное хранилище исходных кодов на MQL5, предназначенное для версионного хранения файлов и удобного управления всеми вашими проектами прямо из редактора MetaEditor.

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

Доступ к хранилищу можно получить с любого компьютера. Достаточно авторизоваться при помощи аккаунта MQL5.community в MetaEditor. Работа с хранилищем осуществляется удобно через контекстное меню окна Навигатор.

Доступ к хранилищу исходных кодов MQL5 Storage

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

Сравнение файлов

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

7.4. Быстрая компиляция C++ DLL. Многие разработчики используют сторонние DLL при разработке приложений на MQL5. MetaEditor 5 избавляет пользователей от необходимости использования MS Visual Studio для компиляции DLL. Редактор поддерживает стандартные cpp- и h-файлы и компилирует их также легко, как и исходные коды на MQL5. Если на компьютере пользователя установлена MS Visual Studio, используется ее компилятор. В ином случае, требуемые файлы отсылаются на специальный сервер компиляции через защищенное соединение. После компиляции готовый DLL-файл отсылается обратно пользователю.

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

7.5. Интеллектуальное управление кодом. В MetaEditor 5 предусмотрены различные инструменты, которые позволяют ускорить процесс написания кода, удобно перемещаться по нему и предотвратить появление ошибок:

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

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

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

Список функций. MetaEditor позволяет просмотреть список всех функций, объявленных в текущем файле, и быстро перейти к любой из них.

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

7.7. Подсветка кода. По сравнению с 4-й версии, в MetaEditor 5 расширены возможности подсветки различных элементов исходного кода (ключевые слова, названия функций, переменные и т.д.). Каждый пользователь может создать индивидуальную подсветку кода.

7.8. Поддержка Юникода. Предыдущая версия редактора не поддерживала файлы исходного кода в формате Unicode. Это вызывает проблемы при просмотре и компиляции файлов, содержащих символы, не поддерживаемые в текущей локали операционной системы. В MetaEditor 5 эта проблема полностью решена. Любой файл исходного кода можно сохранить в формате Юникод при помощи штатной функции редактора, а затем работать с ним и компилировать его при любом языке операционной системы.

7.9. Вставка ресурсов. MetaEditor 5 ориентирован на максимальное облегчение процесса программирования. Рутинная операция по вставке ресурсного файла в программу выполняется одной командой:

Вставка ресурса

7.10. Глобальный поиск и интеграция с MQL5.community. Во время разработки программ всегда необходимо иметь под рукой множество информации. В MetaEditor эта проблема решена путем интеграции с MQL5.community. Статьи и исходные коды, опубликованные на сайте mql5.com удобно собраны во вкладках окна Инструменты. Однако чтобы по-настоящему эффективно пользоваться доступной информацией, необходима система поиска.

В MetaEditor 5 предусмотрена система глобального поиска:

Мощная система поиска

Вы указывает запрос в единой поисковой строке, выбираете, где осуществить поиск, и получаете результат в отдельной вкладке окна Инструменты. Помимо поиска отдельно по текущему документу, файлам, статьям или Code Base, доступен поиск по всему сайту MQL5.community. Он включает такие разделы, как Форум, Статьи, Документация и Code Base.

7.11. Отладка. Без преувеличения, функцию отладки ожидали все, кто использовал MetaEditor 4. Появление отладчика в пятой версии платформы вывело разработку MQL5-приложений на качественно новый уровень. Для отладки приложений доступны все традиционные функции:

Точки останова. Расставьте точки останова в тех строках исходного кода, где процесс исполнения программы должен быть прерван для исследования поведения программы.

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

Стек вызовов. Наблюдайте за стеком вызовов во время отладки.

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

Отладка

7.12. Проекты. Одной из множества запланированных функций в MetaEditor 5 является возможность ведения проектов. Это облегчит работу за счет структуризации разработок программиста.

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

Профилировщик кода

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


8. Язык программирования MQL5

8.1. Увеличена скорость работы. По сравнению с MQL4 скорость исполнения кода MQL5 возросла в 4-20 раз! Скорость исполнения практически достигла уровня языка C++, таким образом, в MQL5 нет необходимости использовать сторонние DLL для ускорения расчетов. В свою очередь, отсутствие DLL повышает безопасность приложений и уровень доверия к ним.

8.2. Защита кода. Уровень защиты исполняемых файлов MQL5-программ (ex5) вышел на абсолютно новый уровень.  Повышению защиты от декомпиляции поспособствовали следующие факторы: новые, более сложные алгоритмы шифрования, проверка целостности файлов (проверка, что файл не был изменен после компиляции), большая сложность самого языка (более сложные конструкции сложнее расшифровать). Программы, продаваемые через сервис Маркет, дополнительно шифруются с привязкой к оборудованию пользователя (конфигурация компьютера), что дополнительно защищает их от кражи.

8.3. Схожесть с C++. Синтаксис языка MQL5 очень схож с одним из наиболее популярных языков программирования - С++. Благодаря этому, он легок для освоения, на него легко переносить программы из современных языков программирования. MQL5 является объектно-ориентированным и позволяет использовать все преимущества данного подхода к программированию - инкапсуляцию и расширяемость типов, наследование, полиморфизм, перегрузку и виртуальные функции.

8.4. Классы и структуры. В MQL5 появились сложные или абстрактные типы данных - структуры и классы. При помощи них описывается не только сам объект, над которым совершается действие, но и модель поведения. То, что объект сам отвечает за свое поведение, значительно упрощает задачу программирования для пользователей данного объекта.

8.5. События. В языке MQL5 предусмотрена обработка ряда предопределенных событий. В MQL4 таких событий предусмотрено только 3, в пятой версии языка программа может обрабатывать 13 типов событий, среди которых события инициализации и деинициализации приложения, приход нового тика, изменение ценовых данных и стакана цен, события таймера, торговые события, события тестирования, оптимизации и выполнения действий с графиками.

8.6. Управление графиками, объектами и ресурсами прямо из MQL5. Непосредственно из MQL5 приложения можно управлять любыми свойствами графика, добавлять, изменять и удалять объекты с графика. В совокупности с возможностью обработки событий взаимодействия пользователя с графиком, можно создавать графические панели любой сложности.

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

8.7. Новые стили рисования индикаторов. В MetaTrader 5 количество стилей рисования индикаторов увеличилось с 6 до 18. Доступна отрисовка в виде линий, гистограмм, символов, залитых областей, японских свечей, стрелок и т.д. Так выглядит индикатор с заливкой между двумя линиями, отрисованный в подокне графика:

Индикатор с заливкой между двумя линиями

8.8. Удобная работа с индикаторами. В MQL4 направление индексации в индикаторных буферах является постоянным - от самых свежих данных (0) к самым старым. Этот подход является приемлемым при работе с индикаторами и скриптами. Однако при разработке индикаторов такая индексация является неудобной, поскольку на каждом новом баре индексация всех элементов сдвигается на единицу, а в начало массива добавляется новый элемент с индексом 0. В MQL5 проблема была решена добавлением функции ArraySetAsSeries, которая позволяет изменять направление индексации массива.

В MQL5 количество используемых индикаторных буферов не ограничено, тогда как в MQL4 можно использовать максимум 8 буферов.

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

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

Также в стандартную поставку терминала MetaTrader 5 входит множество примеров исходных кодов всех типов приложений - экспертов, индикаторов, скриптов.

8.10. Поддержка OpenCL. Язык MQL5 имеет нативную поддержку OpenCL. Для использования всех его преимуществ не требуются сторонние библиотеки, достаточно использовать специализированные функции MQL5. Язык OpenCL предназначен для выполнения вычислений на видеокартах с поддержкой стандарта OpenCL 1.1 или выше. Современные видеокарты содержат сотни небольших специализированных процессоров, которые могут одновременно выполнять простые математические операции над входящими потоками данных. Язык OpenCL берет на себя организацию таких параллельных вычислений и позволяет добиться огромного ускорения для некоторого класса задач.


9. Сервисы для трейдеров и разработчиков

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

MQL5.community имеет собственную надежную платежную систему, которая используется при расчетах во всех сервисах сообщества. Пополнение счета удобно осуществляется через популярные платежные системы WebMoney и PayPal, а также через кредитные или дебетовые карты. Вывести средства можно на счет в WebMoney или PayPal. Все переводы средств осуществляются через безопасное шифрованное SSL-соединение.

9.1. Фриланс. Сервис Фриланс необходим всем - как трейдерам, так и программистам. Если трейдеру необходимо реализовать какую-либо торговую идею, но он не умеет программировать на MQL5, он всегда может обратиться к профессиональным разработчикам. Разработчики же имеют отличную возможность заработать на своих знаниях.

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

Сервис Работа

В случае возникновения спорных ситуаций, любая из сторон вправе обратиться в арбитраж, осуществление которого взяла на себя компания разработчик - MetaQuotes Software Corp.

За 2 года с момента открытия сервиса было выполнено около 1300 работ.

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

9.3. MQL5 Storage. Хранилище исходных кодов MQL5 Storage предназначено для версионного хранения файлов и удобного управления всеми вашими проектами прямо из редактора MetaEditor. При помощи MQL5 Storage можно получить доступ к своим исходным кодам с любого компьютера, используя аккаунт MQL5.community. При работе на разных компьютерах хранилище позволяет легко синхронизировать исходные коды и всегда работать с их последней версией.

9.4. MQL5 Cloud Network. Cеть облачных вычислений MQL5 Cloud Network позволяет организовать обмен вычислительными ресурсами между теми, кто в них нуждается, и теми, кто может предоставить избыточное процессорное время своего компьютера. Благодаря MQL5 Cloud Network, трейдер может использовать вычислительные мощности тысяч компьютеров по всему миру. Оптимизация, которая заняла бы несколько лет при использовании только одного компьютера, теперь может быть выполнена в считанные часы.

9.5. Сигналы. Торговые сигналы MetaTrader 5 - это сервис, позволяющий трейдерам копировать торговые операции поставщика сигналов. Можно оформить подписку и следовать торговой стратегии опытного трейдера. Процедура абсолютно безопасна - каждый провайдер сигналов зарегистрирован в публичной системе мониторинга, где отображается подробная информация о его торговле.

Торговые сигналы MetaTrader 5

Витрина доступных торговых сигналов представлена как на сайте MQL5.community, так и непосредственно в клиентских терминалах. Подписка оформляется при наличии учетной записи MQL5.community, и ею можно легко управлять через профиль или через раздел "Мои сигналы".

В клиентском терминале MetaTrader 5 оформить подписку можно в окне "Инструменты" на вкладке "Сигналы":

Сигналы прямо в торговой платформе MetaTrader 5

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

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

Мониторинг счета в сервисе Сигналы

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

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

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

Аренда виртуального терминала прямо из торговой платформы

Аренда осуществляется в несколько простых этапов, где нужно лишь выбрать наиболее подходящий сервер и тарифный план. После этого необходимо подготовить и перенести нужное торговое окружение на виртуальный терминал: набор символов, индикаторов и советников, настройки FTP, почты, советников и Сигналов.

Работу виртуального терминала можно контролировать, запрашивая его журналы. Также доступны данные о нагрузке процессора, объеме используемой оперативной и дисковой памяти.

Контроль работы виртуального терминала


Заключение

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