Первое, что следует отметить и принять как должное, это отсутствие локов - встречных позиций. Пожалуй, это основное, что вызывает у части трейдеров недоумение и, возможно, разочарование, в то время как для тех, кто торгует без локов, это изменение вполне закономерно и логично. Если мы обратимся к другим профессиональным платформам, то увидим, что там это является правилом.
Но есть простой способ обойти эту проблему. Откройте два счета, на одном только бай, а на другом только селл, и вы получите полную модель локовой торговли, просто разнесенной на два счета. Так что на каждый запрет можно найти меры. Тем, кто торгует с локами по такой модели, гораздо легче будет перейти на классическую торговлю. И заодно станет возможным оценить, чем же отличается работа без лока. Пожалуй, на этом можно закончить обсуждение этой проблемы.
Спешу сразу заметить: МТ4 продолжит свое существование, по сути МТ5 лишь расширяет линейку продуктов от Metaquotes и не призван подменить МТ4. Разработчики на своем сайте говорят: Можно продолжать торговать на терминале MetaTrader 4, не опасаясь того, что его поддержка будет прекращена с официальным выходом новой платформы MetaTrader 5.
На стороне терминала MetaTrader 4 огромная наработанная база из кодов и статей на сайте MQL4-сообщества.
В то же время новые возможности, предоставляемые платформой MetaTrader 5, будут только приумножаться, и вы сможете естественным путем осваивать все новые и новые сервисы MQL5.community.
Теперь МТ5 не ограничен только рынком форекс. Есть возможность торговать акциями, фьючерсами и другими биржевыми инструментами.
Как пишут разработчики: Новая торговая платформа MetaTrader 5 как раз и призвана в первую очередь дать такую возможность торговать акциями, фьючерсами, опционами и прочими биржевыми инструментами. Это позволит трейдерам не только пользоваться привычным удобным интерфейсом при торговле на разных рынках, но и торговать через разных брокеров. К услугам трейдеров будет также множество как встроенных технических инструментов, так и написанных сообществом MQL5.community.
Важным нововведением стало введение понятия "позиция".
В МТ4 можно отрыть несколько ордеров по одному инструменту на разных уровнях. В MT5 можно отрыть так же несколько ордеров, но они все перейдут в одну позицию, и в торговом окне трейдер будет видеть только одну позицию.
Важное нововведение - это стакан цен, пока в реальной работе можно увидеть стакан цен в некоторых ДЦ, которые запустили МТ5 в тестовом режиме.
Внешне интерфейс практически не претерпел изменений, это, конечно, только плюс. Названия меню, иконки, значки остались те же - это привычно, легко и удобно. Не приходится испытывать дискомфорт, как это бывает с программными продуктами, когда они глобально меняются. К примеру, интерфейс Windows 7 отличается от Windiows XP достаточно сильно, и привычными движениями уже не добраться до нужного функционала, а как раз с этим в МТ5 все в порядке.
Разработчики по этому поводу говорят: Многие трейдеры после появления терминала MetaTrader 5 отметили, что визуально он не существенно изменился по сравнению с MetaTrader 4. При его разработке были сохранены все те удобства и преимущества, что всегда отличали терминалы компании Metaquotes Software Corp. от других терминалов. Поэтому переход на новую платформу не вызывает каких-либо сложностей как у трейдеров, так и у брокеров, хотя различия в архитектуре обеих торговых платформ, конечно же, есть.
Мы с радостью можем обнаружить большое количество таймфреймов, красным цветом я отмечу новые,
: M1 M2 M3 M4 M5 M6 M10 M12 M15 M20 M30 H1 H2 H3 H4 H6 H8 H12 D1 W1 MN1
Наверно, теперь уже не остается шансов хотеть еще какой-то ТФ, разве что остается желание получить произвольно настраиваемый таймфрейм. В некоторых платформах такое существует. Правда M8 или M7 не будет сколько-нибудь значительно отличаться от M6 или M10.
Еще одним из приятных новшеств является введение управление позицией с помощью мышки. Теперь можно перемещать уровни стопов и тейков с помощью мышки. Слегка коснувшись курсором тейка или стопа, можно перетянуть мышкой его на новый уровень. Это изменение напрашивалось давно. В МТ4 оно частично реализовывалось в различных приложениях программистами, и это был не совсем тривиальный способ.
В интерфейсе появился экономический календарь, это очень удобно, и теперь надобность ходить на разные сайты и смотреть время выхода значимых событий отпала.
И наконец-то появилась возможность входить в позицию одним кликом: теперь открыв закладку "торговля" в окне "обзор рынка" можно одним кликом кликом делать сделки.
Пожалуй, это основные и главные приятные изменения в интерфейсе. История, важный момент! Теперь история хранится только в минутке, остальные ТФ пересчитываются из минутной истории. Зачастую трейдеры сразу после установки МТ5, не подгружая историю, пытаются делать поспешные выводы.
На сайте www.masterfoex-v.org в закрытой части форума эта тема обсуждалась.
На рисунке видно что линии перестраиваются, а ведь не должны. Я тогда объяснял: необходимо загрузить сначала историю, а потом рассматривать графики, если нет корректно загруженных данных, то и считать нечего. История грузится после инсталляции МТ5 и занимает при слабом интернет-канале приличное время. Необходимо дождаться загрузки и убедиться, что данные загружены. В МТ4 можно было нажать F2 и просмотреть качество истории, в МТ5 на текущий момент такого функционала нет, и качество истории рассмотреть, увы, не удается.
Организация доступа к данным
Получение данных от торгового сервера
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров.
Механизм обращения к серверу за данными не зависит от того, каким образом был инициирован запрос — пользователем при навигации по графику или программным способом на языке MQL5.
Хранение промежуточных данных
Полученные с сервера данные автоматически распаковываются и сохраняются в специальном промежуточном формате HCC.
Данные по каждому символу пишутся в отдельную папку: каталог_терминала\bases\имя_сервера\history\имя_символа.
Например, данные по символу EURUSD с торгового сервера Metaquotes-Demo будут находиться в папке каталог_терминала\bases\ Metaquotes-Demo\history\EURUSD\.
Данные записываются в файлы с расширением .hcc, каждый файл хранит данные минутных баров за год.
Например, файл 2009.hcc в папке EURUSD содержит минутные бары по символу EURUSD за 2009 год.
Эти файлы используются для подготовки ценовых данных по всем таймфреймам и не предназначены для прямого доступа.
Получение данных нужного таймфрейма из промежуточных данных
Служебные файлы в формате HCC исполняют роль источника данных для построения ценовых данных по запрошенным таймфреймам в формате HC. Данные в формате HC являются таймсериями, максимально подготовленными для быстрого доступа. Они создаются только по запросу графика или MQL5-программы в объеме, не превышающем значения параметра "Max bars in charts", и сохраняются для дальнейшего использования в файлах с расширением hc.
Для экономии ресурсов данные по таймфрейму загружаются и хранятся в оперативной памяти только по необходимости, при длительном отсутствии обращений к данным происходит выгрузка их из оперативной памяти с сохранением в файл. Для каждого таймфрейма данные подготавливаются независимо от наличия уже готовых данных для других таймфреймов. Правила формирования и доступности данных одинаковы для всех таймфреймов. Т.е. не смотря на то, что единицей хранения данных в формате HCC является минутный бар, наличие данных в формате HCC не означает наличие и доступность в том же объеме данных таймфрейма М1 в формате HC.
Получение новых данных с сервера вызывает автоматическое обновление используемых ценовых данных в формате HC по всем таймфреймам и перерасчет всех индикаторов, которые явно используют их в качестве входных данных для расчета.
Параметр "Max bars in chart"
Параметр "Max bars in charts" ограничивает доступное для графиков, индикаторов и MQL5-программ количество баров в формате HC. Это ограничение действует для данных всех таймфреймов, и предназначено в первую очередь для экономии ресурсов.
Устанавливая большие значения данного параметра следует помнить, что при наличии достаточно глубокой истории ценовых данных для младших таймфреймов расход памяти на хранение таймсерий и буферов индикаторов может составить сотни мегабайт и достигнуть ограничения оперативной памяти для программы клиентского терминала (2Гб для 32-битных приложений MS Windows).
Изменение параметра "Max bars in charts" вступает в силу после перезапуска клиентского терминала. Само по себе изменение данного параметра не вызывает ни автоматического обращения к серверу за дополнительными данными, ни формирования дополнительных баров таймсерий. Запрос дополнительных ценовых данных у сервера и обновление таймсерий с учетом нового ограничения произойдет либо в случае прокрутки графика в область недостающих данных, либо в случае запроса недостающих данных из MQL5-программы.
Объем запрашиваемых у сервера данных соответствует требуемому количеству баров данного таймфрейма
с учетом значения параметра "Max bars in charts". Ограничение, задаваемое параметром, не является жестким, и в некоторых случаях количество доступных баров по таймфрейму может быть незначительно больше текущего значения параметра.
Теперь я опишу возможности, которые стали доступны тем, кто умеет тестировать, оптимизировать. Новый тестер стратегий наверняка можно назвать лучшим достижением в новой платформе. Он стал мультивалютным, что открывает большие возможности в тестировании многовалютных портфельных стратегий.
Я написал в MT5 мультивалютный эксперт, работающий по торговой системе ПРОБОЙ ФЛЕТА (YURAZ). Посмотрите на результаты тестирования. В первом случае я использовал одну пару EURUSD с постоянной нагрузкой 0.6 лота
Во втором случае я использовал 6 пар, лот 0.1
Когда я писал этого эксперта, цель была - доказать, что портфельная торговая система дает более плавное эквити.
Мультивалютный тестер - прекрасный инструмент для создания мультивалютных торговых систем. Еще одно революционное изменение использования при оптимизации нескольких процессоров. Микропроцессорная техника давно двигается в сторону многоядерности. Говоря простым языком - это когда одну задачу можно, разбив на части, прогнать на нескольких процессорах, тем самым увеличив скорость ее решения.
И разработчики МТ5 блестяще справились с этим! В МТ5 появилась возможность оптимизировать стратегию на нескольких процессорах. Причем вы можете не только тестировать на двух или трех своих машинах.
Вы можете, находясь, к примеру, в Киеве использовать процессоры машин, которые находятся в Москве.
Это решено с помощью так называемых АГЕНТОВ. Чтобы использовать ядра машины, которую вы выбрали в качестве помощника для оптимизации, необходимо на ней запустить metatester.exe или metatester64.exe для 64 разрядных машин, прописать пароль и порт. Впрочем, metatester это предложит сам. Для каждого ядра оптимально выбирается порт.
На удаленной машине нужно запустить MetaTester.exe и прописать, какие порты должны быть открыты для каждого агента; на каждого агента один процессор, один порт, один пароль. Если у Вас дома есть локальная сеть из двух-трех машин, вы можете задействовать все процессоры этих машин.
Если вы хотите использовать процессоры ваших друзей для оптимизаций, важно обеспечить на этих машинах доступ из интернета к указанным вами портам, а если только свои машины в вашей домашней сети, то выход в интернет на машинах с агентами не обязателен. Машине, на которой вы проводите тестирование, вам нужно прописать агента, дав ему имя, указать IP-адрес или доменный адрес и порт, на котором сидит данный процессор. На одной машине может быть, как известно, несколько ядер и к каждому ядру можно прикрепить агента.
Затем на машине, где вы запускаете тестирование, прописать агента. Когда все агенты прописаны, мы можете задействовать весь "парк" своих домашних процессоров.
Таким образом для оптимизации станет доступна вся мощь ваших домашних машин, и машин, которые могут находится где угодно, важно чтобы они имели выход в интернет, были включены в момент тестирования и на них был запущен агент. Процесс оптимизации идет значительно быстрее.
Вот что говорит Ренат Фатхуллин, руководитель фирмы Metaquotes: В МетаТрейдер 5 мы предоставляем возможность создавать целые расчетные фермы для ускорения просчетов торговых стратегий тестером.
Они предназначены для проведения массовых оптимизационных просчетов, когда можно запускать параллельно сотни задач на удаленных компьютерах. Причем на каждом компьютере можно устанавливать несколько агентов по числу ядер для максимизации использования ресурсов. По умолчанию каждый терминал имеет локальных агентов по числу логических процессорных ядер и может раздавать задачи другим удаленным агентам. Удаленных агентов ставить очень просто - достаточно использовать утилиту MetaTester.exe (один файл, больше ему ничего не нужно) и инсталлировать агентов в виде сервисов по числу ядер или запускать одиночно. У каждого агента задается пароль для доступа, чтобы к нему могли подключаться только авторизованные пользователи.
Вот как выглядит тестирование эксперта на локальном ядре. Показывается не только статус, но и реальная загрузка CPU.
провел небольшое исследование, на домашней машине.
8 ядер I7-920
разгон чуть более 3мгц
оперативная памяти 16ггб
Strip массив на 4 жестких диска - (это относительно быстро работающий дисковый массив)
Машина для домашнего пользования конечно может показаться уже не такой мощной, какой она была в начале 2008 года.
Был установлен Agent на каждое ядро, отрыты порты в интернет.
Затем на слабом ноутбуке через интернет (соединение 3G с очень небольшой скоростью)
проведено тестирование c оптимизацией с настройкой подключения к 8 ядрам моего домашнего небольшого монстра.
Время теста 4 минуты.
Затем я прогнал эксперта без подключения к агентам и получил время теста почти 50 минут.
Разница более чем в 10 раз. Конечно я почистил кеш, чтобы измерить время точно!
Итак многоядерность - это будущее и реальный шанс выиграть время при подборе параметров своей системы. Это говорит о том что трейдерам нужно объединяться, и создавать кластеры из процессоров - таким образом можно получить высокопроизводительную оптимизацию. Группе трейдеров можно договориться между собой и открыть друг другу свои процессоры для коллективной оптимизации. Таким образом можно получить шикарный многопроцессорный кластер. Можно использовать простаивающую вычислительную мощь офисных машин на работе, как правило, серверы не всегда загружены.
Огромное спасибо фирме Metaquotes за такой сервис. Эти парни из Metaquotes знают свое дело.
В MT5 появилась возможность создавать роботов с помощью генератора стратегий.
КАК САМОСТОЯТЕЛЬНО СОЗДАТЬ ПРОСТОЙ ТОРГОВЫЙ РОБОТ.
Теперь можно создавать свои модули торговых сигналов, трейлинг стопа и управления капиталом, и просто подключать их в новый советник на этапе генерации кода "Мастером MQL5".
Создание готовых советников
"Мастер MQL5" позволяет создавать полностью работоспособных советников на основе стандартной библиотеки, поставляемой вместе с клиентским терминалом. Для того, чтобы приступить к генерации советника, необходимо выбрать пункт "Советник (сгенерировать)" на первой странице "Мастера MQL5".
Процесс генерации советника состоит из нескольких этапов.
Общие параметры
В данном окне необходимо заполнить следующие поля:
- Имя — название советника, это же имя будет присвоено и файлу эксперта;
- Автор — имя автора;
- Ссылка — адрес электронной почты или интернет сайта разработчика.
Ниже отображается набор обязательных параметров, созданных по умолчанию:
- Title — название советника. Данное название будет добавлено в советник в качестве входного параметра;
- MagicNumber — магический номер, который будет использоваться для советника. По данному номеру можно идентифицировать торговые операции, которые проводились именно этим экспертом.
- EveryTick — в данном параметре можно указать режим работы советника. Если установить значение "true" то эксперт будет обрабатывать каждый приход тика. Если установить значение "false", эксперт будет работать только на открытиях баров таймфрейма графика, к которому он прикреплен.
Вышеуказанные параметры удалить нельзя. Даже если удалить их из данного окна, в процессе генерации эксперта они будут восстановлены и включены в него.
Помимо обязательных параметров в советник могут быть добавлены и дополнительные, так же как и при создании шаблона эксперта.
Сигналы
На данном этапе выбирается тип сигнала, по которому советник будет совершать торговые операции.
В поле "Имя" из предложенного списка необходимо выбрать один из типов сигналов. Файлы исходных кодов сигналов расположены в папке: папка_терминала/MQL5/include/expert/signal/. Для каждого типа сигнала существует определенный набор параметров:
- Имя — название параметра;
- Тип — тип переменной параметра;
- Значение — значение параметра, которое будет использоваться по умолчанию.
Существует два режима создания параметров, переключение между которыми происходит по двойному нажатию левой кнопкой мыши на иконке. Если параметр имеет подсвеченную иконку, то он будет доступен как входная переменная эксперта (input-переменная). Такие параметры могут быть в последующем использованы для оптимизации эксперта в тестере стратегий. Если параметр имеет серую иконку, то ему будет задано фиксированное значение, недоступное для изменения из свойств эксперта.
Трейлинг
На данном этапе выбирается тип перемещения уровня Стоп Лосс (трейлинг стоп).
В поле "Имя" из предложенного списка необходимо выбрать один из типов трейлинга. Файлы исходных кодов данных функций расположены в папке: папка_терминала/MQL5/include/expert/trailing/.
Для каждого типа трейлинга существует определенный набор параметров:
- Имя — название параметра;
- Тип — тип переменной параметра;
- Значение — значение параметра, которое будет использоваться по умолчанию.
Существует два режима создания параметров, переключение между которыми происходит по двойному нажатию левой кнопкой мыши на иконке. Если параметр имеет подсвеченную иконку, то он будет доступен как входная переменная эксперта (input-переменная). Такие параметры могут быть в последующем использованы для оптимизации эксперта в тестере стратегий. Если параметр имеет серую иконку, то ему будет задано фиксированное значение, недоступное для изменения из свойств эксперта.
Управление капиталом
На данном этапе выбирается тип управления капиталом для советника.
В поле "Имя" из предложенного списка необходимо выбрать один из типов управления капиталом. Файлы исходных кодов данных функций расположены в папке папка_терминала/MQL5/include/expert/money/.
Для каждого типа управления капиталом существует определенный набор параметров:
- Имя — название параметра;
- Тип — тип переменной параметра;
- Значение — значение параметра, которое будет использоваться по умолчанию.
Существует два режима создания параметров, переключение между которыми происходит по двойному нажатию левой кнопкой мыши на иконке. Если параметр имеет подсвеченную иконку, то он будет доступен как входная переменная эксперта (input-переменная). Такие параметры могут быть в последующем использованы для оптимизации эксперта в тестере стратегий. Если параметр имеет серую иконку, то ему будет задано фиксированное значение, недоступное для изменения из свойств эксперта.
После нажатия кнопки "Готово" будет сгенерирован MQ5-файл советника. Для того, чтобы приступить к его использованию, необходимо провести его компиляцию при помощи кнопки "Компилировать" или клавиши F7.
Мастер MQL5 использует исходные коды соответствующих классов Стандартных библиотек, в которых содержится простое описание всех задаваемых при работе "Мастера MQL5" параметров. В дополнение к идущим в поставке с терминалом, вы можете написать собственные классы или создать их наследников с требуемым функционалом и поместить их в соответствующие директории.
Напишите собственные классы в соответствии с простыми правилами, и ваши торговые сигналы, способы трейлинга защитного стопа и модули управления капиталом будут подхвачены "Мастером MQL5" и могут использоваться для создания торговых роботов с более богатым функционалом.
ЯЗЫК MQL5.
Теперь MQL5 стал объектно ориентированным. Трейдеру это может показаться малопонятным и ненужным.
Но вот тем, кто реализует все желания трейдера - программистам - это очень важно.
Трейдер заказывающий эксперт, должен представлять, что можно сделать с помощью встроенного языка, а что нельзя или сложно. Грамотно составить техническое задание могут далеко не все. Неплохо, если трейдер хотя бы немного представляет что можно делать на MQL5.
MQL5 стал быстрее MQL4.
Сравнительные тесты 2005 год
VC++: Time: 47 ms, ResInt=-752584127 ResDouble=17247836076609
Java: Time: 187 ms, ResInt=-752584127 ResDouble=1.7247836076609E13
MQL4: Time: 797 ms, ResInt=-752584127 ResDouble=17247836076609
Easy: Time: 875 ms, ResInt=3369844457615319400 ResDouble=3369844457615319400
Ami : Time: 12626 ms, ResInt=3.36984e+020 ResDouble=3.36984e+020
MQL2: Time: 22156 ms, ResInt=333333383333717340000 ResDouble=333333383333717340000
WL3 : Time: 32422 ms, ResInt=3.33333383333717E20 ResDouble=3.33333383333717E20
В MQL5 пока не включен решим оптимизации скорости; как говорят разработчики, они его включат. На текущий момент скорость на определенном виде операций
С++31
MQL5 234
MQL4 719
В MQL5 появились новые события, они внесли в функционал достаточно приятные возможности
OnTimer - событие от таймера
OnTrade - событие при наступлении торгового события
OnBookEvent - событие при изменении стакана цен
OnChartEvent - обработка событий, которые наступают от целой группы событий
OnCalculate - возникает только в индикаторах - от тика
OnTester - генерируется при окончании тестирования
Теперь можно заказывать экспертов, работающих не только по событиям от тика:
OnTimer Например, можно каждые x минут или через несколько секунд делать какие-то расчеты. Но и раньше программисты тоже могли все это делать в так называемых зацикленных экспертах, просто событийное программирование стало более удобным и функциональным. Теперь можно писать полноценные системы, работающие в реальном времени.
OnTrade Событие OnTrade вызывается, когда происходит любое изменение с ордером. Изменение тейка, стопа или работа ордера по стопу или тейку, для отложенных изменений цены открытия. Раньше для этого нужно было писать специальные следящие модули. Теперь это реализовано внутри MT5. И просто вызывается событие, внутри которого уже можно провести обработку.
OnChartEvent Это самое богатое событие, оно возникает при целом ряде событий
события нажатия клавиатуры,
создания графического объекта,
удаления графического объекта,
щелчка мыши на графике
щелчка мыши на графическом объекте, принадлежащем графику
окончания редактирования текста в поле ввода графического объекта
Так же можно навесить свои, пользовательские события.
OnBookEvent Возникает при изменении стакана цен.
OnCalculate Это событие возникает в индикаторах при приходе тика, также можно самостоятельно генерировать это событие.
OnTester Возникает при завершении тестирования, в этом обработчике удобно сделать завершающие расчеты после тестирования или выполнить какие-либо свои функции.
Такие нововведения значительно упрощают программирование и добавляют возможности для создания
полноценных приложений. Можно сказать, что с помощью MQL5 возможностей создать удобную торговую систему стало на порядок больше.
РЕЗЮМЕ.
Наверняка кто-то ждал чего-то большего, возможно произвольных таймфреймов, окон c инструментами, которые можно открывать вне главного окна, кто-то разочарован тем, что MT5 не поддерживает MQL4. Пожалуй, это будут основные претензии.
Перемещение окон инструментов за пределы главного окна: это пока остается пожеланием к MT5, да и к MT4. Немало трейдеров, имеющих по два, три, четыре и более мониторов, мониторы наверняка имеют разное расширение и одно главное окно сильно раздражает, поскольку не дает возможность разбросать на разные мониторы графики инструментов.
По поводу произвольных ТФ. В МТ5 их стало очень много, как по мне, так вполне достаточно.
Все равно выберу M5 и возможно, не стану использовать M4; мне будут интересны H6, H8, но не вижу смысла в H7.
Что касается отсутствия поддержки MQL4 , наверно это самый больной вопрос, тут конечно придется потрудиться программистам.
Думаю, что вскоре появятся аналогичные MQl4 индикаторы на MQL5, поскольку MQL5 язык достаточно сильный в плане возможностей.
Заключительное слово от разработчиков: Поэтому, подводя краткие итоги обзора, можно сказать, что с одной стороны, новая торговая платформа и клиентский терминал MetaTrader 5 - это, безусловно, революция в мире автоматического трейдинга по открывшимся перед трейдером новым горизонтам. Но с другой стороны, этот качественный скачок на новую ступень торговли можно преодолеть без стрессов и вместе с развитием новых ресурсов эволюционным путем.
В свою очередь хочу добавить: сообщество получило новый продукт. Повторюсь, он не призван заменить МТ4, это просто еще один инструмент с новыми возможностями, основные из них я постарался описать в этой статье.
Будем надеяться, вскоре брокеры запустят MT5 на боевое дежурство.
YURAZ Юрий Зайцев Факультет пробой флета и автоматизации автотрейдинга