Язык mql4 программа для программирования
На первом уроке по изучению языка MQL мы научились запускать редактор MetaEditor и создавать новый скрипт MQL4. Но как мы можем увидеть, созданный нами скрипт MT4 пока не выполняет никаких функций в торговом терминале Metatrader 4.
В данном уроке мы научимся его выполнять какую — нибудь полезную функцию. Для примера, рассмотрим одну из полезных функций, которую мы реализуем на языке MQL4 — « расчет лота в зависимости от имеющихся у нас свободных средств ».
Для этого мы должны определится с допустимым риском для нашего депозита на форекс (т.е. какое кол-во средств мы будем задействовать в торговле при использования советника форекс или в нашем случаи — скрипта для Metatrader 4).
Все учебники по форекс и опытные трейдеры рекомендуют: "никогда не рискуйте при заключении сделок на форекс более чем 2−5% от своего депозита". Ну что ж, давайте прислушаемся к их советам. Но т.к. четкой цифры нет, то нам нужно чтобы созданный нами скрипт запрашивал эту цифру.
Теперь давайте реализуем эту функцию на языке MQL4:
Попробуем запустить наш получившийся скрипт. Но для этого его нужно предварительно откомпилировать !
Компиляция — это преобразование нашей получившийся программы из языка понятного нам (в данном случаи MQL) в язык понятный компьютеру. Для компиляции скрипта MQL нажмем клавишу «компилировать» —
При этом в нижней части экрана высветится:
Теперь, когда мы уже находимся в торговом терминале Metatrader 4 - в окне «Навигатор» выбираем пунк «Скрипты»:
Ищем в данном списке наш созданный скрипт для MT4 — «test»
И дважды щелкнув мышкой по скрипту «test»- запускаем его !
Но теперь возникает вопрос: «куда же вводить наш процент от депозита для расчета лота на форекс?»
Для этого мы должны задать его предварительно в нашем скрипте. Идем снова в редактор MetaEditor и добавляем в начале скрипта команду: extern int MaxRisk= 2 ;
Давайте разберемся что мы написали, используя команду - extern int MaxRisk= 2 ;
Или другими словами, рассмотрим формат написания команд в редакторе MetaEditor:
extern — означает что данный параметр внешний (т.е. его можно изменить при запуске скрипта или советника MT4)
int - тип переменной (компьютеру же надо знать что мы ему передаем: число, текст и т.д.)
MaxRisk — название нашей переменной, которое может быть абсолютно любым — на ваше усмотрение !
= 2 — присвоили данной переменной (в данном случаи MaxRisk) значение, которое будет высвечиваться по умолчанию в окне выставления настроек скрипта в терминале Metatrader 4.
; — знак, означающий окончание нашей команды.
Теперь снова компилируем и запускаем наш скрипт «test» (как было описано выше). Если компилятор «ругается» (сообщает) об ошибках — это означает что то мы сделали что-то не правильно и следует проверить правильность кода на языке MQL4 !
Ели ошибок нет, то при запуске скрипта (или советника) в терминале Metatrader 4, появляется следующее окошко:
Вот в данной вкладке мы и видем наш параметр MaxRisk , который служит для расчета лота в MT4 и который мы будем в дальнейшем использовать при создании скриптов и советников на языке MQL !
Все, что нужно для разработки торговых приложений в MetaTrader 4
В состав торговой платформы MetaTrader 4 входит MQL4 IDE — среда разработки и использования программ алгоритмического трейдинга. Она включает в себя все необходимые компоненты для создания, отладки, тестирования, оптимизации и запуска торговых приложений, и все это прямо в платформе. Среда MQL4 IDE состоит из следующих компонентов:
MetaQuotes Language 4 (MQL4) — встроенный язык объектно-ориентированного программирования (ООП), позволяющий создавать собственных торговых роботов, технические индикаторы, скрипты и библиотеки функций.
MetaEditor — встроенный в MetaTrader 4 многофункциональный редактор для создания торговых программ, от самых простых до самых сложных.
MetaTester — тестер торговых стратегий, предназначенный для проверки и оптимизации торговых роботов перед началом их использования в реальной торговле.
Документация — база справочной информации по языку MQL4. Краткий справочник содержит разбитые на категории функции, операции, зарезервированные слова, другие конструкции языка и позволяет узнать описание каждого используемого элемента, входящего в его состав.
Все приложения для MetaTrader 4 пишутся на специализированном языке программирования MQL4. Он относительно прост и легко поддается изучению даже программистам начального уровня. В платформе есть специализированное приложение MetaEditor, который помогает быстро создавать новые MQL4-программы. При этом можно применять шаблоны и справочную информацию из Словаря MQL4.
Словом, в MetaTrader 4 созданы все условия для разработки необходимых приложений. Начните создавать своего персонального робота или технический индикатор прямо сейчас!
Приступая к изучению программирования на языке MQL4, необходимо обозначить общие границы наших интересов. Прежде всего отметим, что обсуждаемые в учебнике программы могут использоваться только как прикладные программы для работы в клиентском терминале MetaTrader 4. Чтобы понять, какую роль эти программы играют в практике управления торговлей, рассмотрим рис. 1.
Рис. 1. Программа на MQL4 в составе клиентского терминала MetaTrader 4.
Если вы интересуетесь программированием на MQL4, вы, вероятнее всего, уже знакомы с клиентским терминалом. Клиентский терминал - это часть информационно-торговой системы. В состав этой системы входит также сервер, устанавливаемый в дилинговом центре. Дилинговый центр, в свою очередь, имеет средства связи с другими участниками рынка - банками и финансовыми организациями.
В клиентском терминале имеется информационная среда - набор параметров, информирующих о состоянии рынка и отношениях между трейдером и дилинговым центром. Она содержит сведения о текущих ценах, ограничениях по минимальному и максимальному размеру ордера, минимальной дистанции стоп-приказов, разрешении/запрете осуществлять автоматическую торговлю и множество других полезных параметров, характеризующих текущую ситуацию. Информационная среда обновляется с поступлением в терминал новых тиков (зелёная стрелка на рис. 1).
Встроенные средства
В клиентском терминале имеются встроенные средства, позволяющие проводить технический анализ рынка и осуществлять ручное управление торговлей. Для анализа рынка могут применяться технические индикаторы и различные линейные инструменты - линии поддержки/сопротивления, трендовые каналы, уровни Фибоначчи и др.
Для ручного управления торговлей используется панель управления ордерами. С помощью этой панели трейдер может открывать, закрывать и модифицировать ордера. Кроме того, в клиентском терминале имеется возможность автоматически управлять положением стоп-приказов рыночных ордеров. В результате воздействия трейдера на встроенные средства управления торговлей в клиентском терминале формируются торговые приказы (ордера), которые отправляются на сервер.
Программные средства
Технический анализ рынка и управление торговлей в клиентском терминале MetaTrader 4 могут также осуществляться с помощью программных средств. Язык MQL4 позволяет создавать такие программы. Различают три вида прикладных программ, создаваемых на языке MQL4 и предназначенных для работы в клиентском терминале:
- пользовательский индикатор - программа для графического отображения каких-либо закономерностей на рынке, написанная в соответствии с авторским алгоритмом;
- эксперт (советник, Expert Advisor) - программа, позволяющая механизировать значительную часть торговых операций или полностью автоматизировать торговлю;
- скрипт - программа для выполнения одноразовых действий, в том числе — осуществления торговых операций.
На рис. 1 видно, что прикладная программа имеет те же средства доступа к информационной среде клиентского терминала, что и встроенные средства для ручной торговли (синие стрелки), а также может формировать управляющие воздействия (красные стрелки), сообщаемые в клиентский терминал. Программы разных видов могут использоваться одновременно и при этом обмениваться данными. С помощью этих приложений программист может механизировать значительную часть торговых операций или создать робот, способный осуществлять торговлю без вмешательства трейдера.
Прикладные программы и ручные средства управления могут использоваться в клиентском терминале одновременно, взаимно дополняя друг друга.
Основополагающая техническая особенность торговли c помощью информационно-торговой системы MetaTrader состоит в том, что все управляющие воздействия формируются в клиентском терминале и отправляются на сервер. Прикладные программы (эксперт, скрипт, индикатор) могут работать только в составе клиентского терминала при условии его подключения к серверу (дилинговому центру). На сервере никакие прикладные программы не устанавливаются. |
Сервер позволяет лишь обрабатывать приказы, поступающие со стороны клиентского терминала. Если клиентский терминал отключён от Интернета или запущенная в нём прикладная программа (эксперт или скрипт) по каким-то причинам не генерирует управляющие воздействия, то на сервере ничего происходить не будет.
Круг наших интересов будут составлять программы (эксперты, скрипты и пользовательские индикаторы), позволяющие вести механизированную или полностью автоматизированную торговлю и значительно расширяющие информационное сопровождение торговли (см. рис. 1). В представленном учебнике будет рассказано, из чего состоит программа, каковы основные правила составления и использования программ. Мы также детально рассмотрим примеры программ и параметры информационной среды клиентского терминала, доступные программе во время её исполнения.
Программы для автоматического трейдинга имеют гораздо больше потенциальных возможностей, чем ручные средства управления торговлей. |
В подавляющем большинстве случаев программа позволяет существенно облегчить труд трейдера, избавив его от необходимости непрерывно в течение длительного срока находиться возле монитора для наблюдения за развитием рынка. Она также может помочь снизить нервную нагрузку и уменьшить количество ошибок, возникающих в период сильного эмоционального напряжения. Но главное — применение программного способа управления торговлей позволяет разработать собственные идеи и проверить их на исторических данных, подобрать оптимальные параметры для применения этих идей, а в конечном итоге — реализовать на практике продуманную торговую стратегию.
Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):
Приветствую Вас, дорогие друзья, Форекс трейдеры и начинающие MQL4 программисты. Начиная с этой статьи, мы будем пошагово рассматривать весь процесс программирования на MQL4 с целью автоматизации наших Форекс стратегий.
Весь материал в данных статьях будет раскрываться от и до, чтобы в процессе MQL программирования имели возможность разобраться все начинающие новички.
Итак, давайте начнем.
Знакомство с редактором кода MetaEditor
Нажимаем на кнопку, и перед нами открывается редактор кода MetaEditor. Он состоит из четырех полей.
Поле, выделенное на скриншоте ниже, является самым основным.
Второе, достаточно важное поле, находится немного ниже.
Про данную вкладку мы поговорим немного позже. Сейчас же мы просто с Вами рассматриваем основной состав рабочего поля в данной программе.
В принципе, оно не несет какой-либо особо полезной функции. Но, в нем можно ориентироваться среди наших папок и тех советников, которые лежат в папке Experts нашего терминала MetaTrader.
Четвертое поле – это верхнее меню.
Сейчас же мы с Вами рассмотрели состав рабочего поля редактора кода MetaEditor.
Процессы, протекающие при компиляции в MetaEditor и при работе советника в терминале MetaTrader
Теперь давайте рассмотрим взаимосвязи процессов: какие процессы происходят при программировании нашего советника, и каковы процессы при работе нашего спрограммированного советника в самом терминале Metatrader4.
У нас есть язык программирования MQL4, который мы с Вами изучаем. Мы пользуемся им в рамках программы MetaEditor, которую мы рассмотрели с Вами выше в этой статье.
Открываем его, и перед нами появляется системная папка нашего терминала. Переходим в папку MQL4.
И, далее, в папку Experts.
Перед нами появляется список всех наших экспертов, которые доступны в рамках нашего терминала MetaTrader4.
Возвращаясь к нашей схеме:
Сам терминал MetaTrader использует только файл .ex4. То есть, когда мы переносим советник на платформу, то терминал читает именно файлы этого второго типа.
Когда мы нажимает данную клавишу, наш код пересохраняется в файл с расширением .ex4, создавая тот код, который читает наш терминал MetaTrader.
То есть, когда мы написали какой-то код, нам надо проверить его работу в терминале MetaTrader4, для этого, обязательно нужно будет нажать клавишу «Компилирование». Когда мы приступим к практике, Вам будет намного понятнее, как происходит весь процесс программирования.
Идем далее по нашей схеме:
Терминал MetaTrade4 читает скомпилированные файлы (.ex4). Он читает те команды, которые там имеются, и передает их процессору компьютера. Процессор, тем временем, все эти команды просчитывает, рассчитывает и передает готовые рассчитанные команды обратно в терминал MetaTrader. На основе этих рассчитанных значений MetaTrader производит работу: то есть, строит индикаторы, производит работу скриптов и советников.
Вот, собственно, такая структура всех процессов. Еще раз кратко резюмируемся: есть у нас язык программирования MQL4, он входит в состав нашей программы MetaEdiror.
Тем временем, терминал читает прописанные там команды, передает эти команды процессору компьютера, где, собственно и рассчитываются все значения. Далее, компьютер возвращает значения обратно в терминал. И, на основе этих значений MetaTrader производит свою работу (строит индикаторы, проводит работу скриптов и советников).
Вот такая структура взаимосвязей всех процессов.
Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.
Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.
В следующей статье мы рассмотрим достаточно важную тему – Алгоритмы в программировании MQL4: что это такое и зачем они нам нужны? Перейти к следующей статье.
Другие статьи по теме Программирование на MQL4 Вы можете просмотреть в данном содержании практических уроков по MQL.
Понравился материал статьи?
Добавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D
Наверняка многим не очень нравится пользоваться стандартным metaeditor для программирования ваших советников, скриптов и индикаторов. Сегодня мы поговорим о том, как увеличить производительность и удобство при программировании.
Для работы мы установим phpstorm и специальный плагин для работы с mql, а также git консоль и пройдем регистрацию на bitbucket. Эти инструменты позволят нам существенно увеличить скорость и удобство разработки. Как это сделать быстро и эффективно – узнаем из нашего сегодняшнего урока!
Уcтановка phpstorm
PHPStorm – это мощная IDE (среда разработки), поддерживающая множество языков. В ней очень много различных возможностей и функций, предусмотренных специально для удобства и ускорения разработки.
Кроме того, есть возможность установки дополнительных плагинов, расширяющих функционал. Самих плагинов доступно тысячи, так что вы легко найдете свой для решения той или иной проблемы.
Для установки phpstorm нужно перейти на сайт разработчика и скачать установочный файл для вашей операционной системы. Сама установка проста и занимает 5-10 минут, поэтому тут подробно описывать этот процесс нет смысла.
Установка плагина для phpstorm mql Idea
Открываем программу phpstorm. Жмем Новый проект и открываем папку mql4 вашего терминала.
Далее жмем Настройки -> Плагины:
В поиске ищем плагин mql idea, устанавливаем. Теперь синтаксис mql файлов будет пониматься программой phpstorm.
Пройти регистрацию на bitbucket тоже несложно. Просто вводим почту, придумываем пароль, а затем подтверждаем почту по ссылке из письма.
Далее придумайте имя репозиторию. При желании можно добавить описание:
Консоль git bash
В папке с терминалом вызываем консоль и пишем в ней git init. Затем уже в phpstorm вам нужно будет сделать первый коммит, а при создании репозитория у вас на экране должны появиться следующие команды для создания удаленного репозитория:
Заключение
После этого вы можете полноценно пользоваться системой контроля версий git и писать ваши mql программы в одной из самых удобных IDE для программирования. Весь вышеописанный процесс подробно описан в видео к этому уроку.
Использование phpstorm в разработке поначалу может вас немного замедлить, пока вы будете осваивать новый для себя функционал, но в итоге вы ускоритесь раза в три и не захотите больше программировать в metaeditor.
Система git тоже может показаться неудобной, но через пару недель вы оцените по достоинству ее наличие.
Читайте также: