English 中文 Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Новые возможности с MetaTrader 5

Новые возможности с MetaTrader 5

MetaTrader 5Примеры | 31 мая 2010, 11:53
3 925 0
MetaQuotes
MetaQuotes

Немного истории

Всего 5 лет назад трейдерам официально был представлен терминал MetaTrader 4, переписанный полностью  с нуля и призванный заменить существовавший, и уже тогда популярный, терминал 3-го поколения от MetaQuotes Software Corp. MetaTrader 4 в короткие сроки завоевал популярность среди трейдеров, и как следствие, за эти годы сотни брокеров стали предоставлять свои услуги именно на платформе MetaTrader 4.

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

Новые рынки и инструменты

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


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

Язык MQL5

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

Кроме того, теперь язык MQL5 позволяет создавать программы с использованием объектно-ориентированного подхода (ООП), что в конечном итоге даст еще большую базу из готовых программ, написанных другими трейдерами-программистами. Библиотека кода на MQL4 является на сегодняшний день самой обширной в мире и предоставляет количество готовых примеров больше, чем для какой-либо другой торговой платформы.

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

События в терминале

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

И самое главное - обработка торговых событий. Сработал Stop Loss, удалился отложенный ордер, открылась новая позиция или увеличилась уже открытая - все это примеры торговых событий. Кроме того, теперь все торговые операции выполняются асинхронно, после отправки торгового запроса можно сразу же продолжать выполнение программы, не дожидаясь ответа торгового сервера, как это происходит в MetaTrader 4.

Таким образом, возросшая скорость исполнения программ на MQL5, использование классов и обработка событий, асинхронность торговых запросов - все это позволяет реализовать новый тип торговых роботов, которые не были возможны на MQL4.

Отладка кода в MetaEditor

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

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

Портфельное тестирование

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

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

Многопоточная оптимизация

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

Таким образом, время оптимизации на многоядерном компьютере уменьшается во много раз, тестер автоматически раздает каждому агенту тестирования параметры и интервал для очередного прохода. Но и это еще не все - можно задействовать любые доступные компьютеры, как по локальной сети, так и через Интернет. Для этого достаточно установить на удаленный компьютер необходимое число агентов тестирования с помощью утилиты MetaTester.exe. 


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

В самих агентах реализованы следующие механизмы защиты:

  • полностью шифрованный со сжатием трафика сетевой протокол между клиентским терминалом и агентом;
  • доступ по паролю;
  • возможность указания списка IP адресов, откуда разрешаются коннекты клиентскому терминалу;
  • только локальные агенты могут использовать DLL при соответствующем разрешении в терминале;
  • передаваемый код эксперта никогда не сохраняется на диске агента, а передается в преобразованном виде, невозможном для дампа;
  • агент не знает имени эксперта и не сохраняет на диске результатов просчета (минимизирует объем оставляемой после расчетов информации);
  • сам агент защищается навесной защитой от дизассемблирования или модификации.

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

Если у Вас нет эксперта

Автоматический трейдинг становится все более популярным с каждым годом, но что нового дает терминал MetaTrader 5 тем трейдерам, которые не имеют экспертов или торгуют только вручную? Если у вас нет опыта в написании индикаторов и торговых роботов, то вы можете заказать их на сайте MQL5.community в разделе Работа. Такой сервис запланирован и появится в ближайшее время. Для программистов, пишущих экспертов на заказ это будет отличная площадка для предложения своих услуг.

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

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

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

Эволюция торговли

Многие трейдеры после появления терминала MetaTrader 5 отметили, что визуально он не сильно изменился по сравнению с MetaTrader 4. При его разработке были сохранены все те удобства и преимущества, что всегда отличали терминалы компании MetaQuotes Software Corp. от других терминалов. Поэтому переход на новую платформу не вызывает каких-то сложностей как у трейдеров, так и у брокеров, хотя различия в архитектуре обеих торговых платформ, конечно же, есть.

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

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

Обработка торговых событий в эксперте при помощи функции OnTrade() Обработка торговых событий в эксперте при помощи функции OnTrade()
В 5-ой версии языка MQL появилась масса нововведений, в том числе работа с событиями различных типов (события таймера, торговые события, пользовательские и т.д.). Возможность обработки событий позволяет создавать совершенно новый тип программ для автоматического и полуавтоматического трейдинга. В этой статье мы рассмотрим торговые события и напишем для функции OnTrade() код, который будет обрабатывать событие Trade.
Создание информационных табло с использованием классов из Стандартной библиотеки и Google Chart API Создание информационных табло с использованием классов из Стандартной библиотеки и Google Chart API
Мощный язык программирования MQL5 нацелен в первую очередь на создание автоматических торговых систем и сложных инструментов технического анализа. Но помимо прочего он позволяет создавать интересные информационные системы для отслеживания рыночной ситуации и обеспечения обратной связи с трейдером. В статье сделан обзор компонентов Стандартной библиотеки и примеры их использования на практике для этих целей. Также показан пример использования Google Charts API для создания графиков.
Создание и публикация отчетов о результатах торговли, отправка SMS-сообщений Создание и публикация отчетов о результатах торговли, отправка SMS-сообщений
Трейдер не всегда имеет возможность и желание находиться часами перед торговым терминалом. Особенно, если торговая система в той или иной степени формализована и позволяет автоматически идентифицировать некоторые состояния рынка. В данной статье описано, как с помощью советника, индикатора или скрипта сформировать отчет о результатах торговли в виде html-файла и загрузить его по протоколу FTP на WWW-сервер, рассмотрен вопрос отправки уведомлений о торговых событиях на мобильный телефон в виде SMS-сообщений.
Руководство по написанию DLL для MQL5 на Delphi Руководство по написанию DLL для MQL5 на Delphi
Статья рассматривает механизм написания модудя DLL на популярном языке программирования ObjectPascal в среде разработки Delphi. Изложенный в статье материал ориентирован в первую очередь на начинающих программистов, решающих задачи, выходящие за рамки встроенного языка программирования MQL5, путем подключения внешних DLL модулей.