Что такое MQL4 и как его использовать

Содержание
  1. Что такое MQL4 и как его использовать?
  2. Видео Урок по MQL4 | Массивы. Использование массива для учёта ордеров
  3. Язык MQL 4 для «чайников». Первое знакомство
  4. Введение
  5. Совет
  6. Первое знакомство с MQL4
  7. Исходный текст, компиляция и прочее
  8. Где писать скрипты?
  9. Переменные
  10. Видео MQL4 и MQL5 — отличия что нужно знать
  11. Работа с переменными
  12. MessageBox()
  13. Массивы
  14. Встроенные или предопределённые массивы и переменные
  15. Циклы
  16. Видео Что такое MQL4 и как его использовать?
  17. Условия
  18. MQL4: основы языка, типы программ и примеры использования
  19. Введение в MQL
  20. Расширения файлов MQL4
  21. Расположение файлов
  22. Что вы сможете делать с помощью MQL4?
  23. Типы программ MQL4
  24. Включаемые файлы
  25. Библиотеки
  26. Скрипты
  27. Индикаторы
  28. Советники (эксперты)
  29. Программируем на MQL4 своими руками
  30. Подробные пошаговые уроки по MQL4
  31. Основные встроенные функции в MQL4: Period(); Sleep(); NormalizeDouble(); AccountBalance();
  32. Принудительное окончание цикла в MQL4 при помощи оператора break;
  33. Массивы в MQL4: одномерные, двумерные, многомерные. Практическая работа с массивами
  34. MQL4: Работа со справкой (встроенный справочник в MetaEditor)
  35. MQL4 и основные ошибки у новичков. Как сделать так, чтоб ошибок было меньше?
  36. Функции и команды в MQL4 программировании. Их структура и ошибки новичков
  37. MQL4: Операторы условия «если, иначе» if else
  38. MQL4: изучаем цикл for()
  39. MQL4: вывод информации о валютных инструментах на график. Функции Symbol(); MarketInfo();

Что такое MQL4 и как его использовать?

Язык программирования MQL4 (MetaQuotes Language) – это эффективный инструмент в руках трейдера для автоматизации своих действий на валютном рынке и реализации торговых стратегий в рамках торгового терминала MetaTrader4. Язык прост в изучении и очень похож на другие языки программирования, поэтому, если Вы раньше изучали программирование, то овладеть языком MQL не составит большого труда.

Чтобы перейти в терминале MetaTrader4 к написанию собственной программы необходимо запустить редактор MQL Metaeditor. Сделать это можно несколькими способами: в меню сервис выбрать пункт Редактор MetaQuotes Language, нажать клавишу F4 или кнопку на стандартной панели инструментов.

Рис. 1. Запуск Редактора MetaQuotes Language

Теперь, когда перед вами открыто окно Редактора MetaQuotes Language, можно приступить к написанию программы. Переходим в меню Файл и выбираем Создать или нажимаем комбинацию клавиш Ctrl+N. Появляется окно Мастера создания советника.

Рис. 2. Мастер создания советника

На первом этапе необходимо выбрать, какой тип программы будет создаваться:

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

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

Пользовательский скрипт – программа, которая будет выполнена по вашему запросу только раз. Может заменять Ваши ежедневные действия при работе с терминалом.

Библиотека функций – набор функций для специфических задач.

Заголовочный файл (*MQH) – создание файла заголовка с расширением *MQH.

Генерация по шаблону – создание программы по уже готовому шаблону.

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

Рис. 3. Общие параметры советника
Здесь:

Имя – название советника и одновременно имя файла, где он хранится.

Автор – копирайт, то есть авторские права.

Ссылка – в поле можно указать ссылку на свой сайт в Интернете или не заполнять поле.

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

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

Рис. 4. Пустой шаблон советника

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

init() – выполняется при запуске советника;

deinit() – выполняется при удалении советника;

start() – основная функция, выполняется при каждой смене цены (тике графика).

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

Когда программа будет написана, ее необходимо откомпилировать, то есть проверить на наличие ошибок. Сделаем это на примере простейшей для всех языков программирования функции Comment(). Вставьте ее в тело главной функции, например, Comment(«Hello World!»). Такая функция будет показывать надпись «Hello World!» в углу графика.

Рис. 5. Написание функции

Обратите внимание, что различные конструкции в терминале выделяются разными цветами, чтобы трейдеру было легче в них ориентироваться. Для компиляции программы необходимо нажать кнопку F5, выбрать в меню Файл пункт Компилировать или нажать кнопку на стандартной панели инструментов. Если в программе нет ошибок, то в окне Инструментарий, которое находится под редактором, появится надпись «0 ошибок 0 предупреждений», это означает, что компиляция прошла успешно.

Рис. 6. Успешная компиляция советника

Теперь Вы можете перейти в окно термина и увидеть советника в списке советников окна Навигатор. Чтобы запустить Советник, перетащите его левой кнопкой мыши на график.

Рис. 7. Первая программа на MQL4 «Hello World!»

Эта программа будет выводить надпись «Hello World!» в левом верхнем углу графика. Для написания других, более сложных, советников на языке MQL4 следует детально изучить остальные функции этого языка.

Мы рассмотрели пример создания простейшей программы на языке программирования MQL4 (MetaQuotes Language), но этого недостаточно чтобы написать собственного торгового робота или разобраться в уже готовом советнике, поэтому мы предлагаем Вам ряд ссылок на учебные материалы, которые помогут Вам успешно справится с подобными задачами.

Видео Урок по MQL4 | Массивы. Использование массива для учёта ордеров

  • Учебник по MQL4 — вводный курс по MQL4 от создателей языка компании MetaQuotes.
  • Документация по MQL4— наиболее полная документация по MQL4 в которой Вы сможете найти ответы на все вопросы.
  • Code Base — самая большая коллекция советников написанная программистами и трейдерами со всего мира.
  • Automated Trading Championship — Компания MetaQuotes Software Corp., проводят ежегодный Чемпионат по автоматическому трейдингу — Automated Trading Championship. В течение трех месяцев будет выявлена тройка сильнейших разработчиков механических торговых систем. Критерий оценки — абсолютная прибыль. Победители разделят между собой призовой фонд Automated Trading Championship — 80 000 долларов США! Вам есть к чему стремится!

Язык MQL 4 для «чайников». Первое знакомство

Введение

Эта серия статей рассчитана на трейдеров, которые ничего не знают о программировании, но хотят изучить язык MQL4 максимально быстро с минимальными усилиями и затратами времени. Если вы боитесь таких словосочетаний, как «объектная ориентация» или «трёхмерный массив», эта статья — то что вам нужно. Уроки рассчитаны на максимально быстрый результат. Кроме того, материал будет подаваться в доступной форме. Мы не будем сильно углубляться в теорию, зато практическую пользу вы получите уже на первом уроке.

Совет

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

Первое знакомство с MQL4

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

В этой статье мы научимся писать обычные скрипты. Для этого используется специальная программа — редактор MetaEditor 4. Чтобы её запустить, нажмите на клавишу F4 при открытом клиентском терминале. Чтобы создать новый скрипт, нажмите в редакторе MetaEditor 4 на кнопки меню File->New или используйте сочетание клавиш Ctrl+N на клавиатуре:

После этого появится окно, в котором вам следует указать, что вы собираетесь создать. Выбираем Script и жмём на кнопку Далее:

В следующем окне следует ввести название скрипта в поле Name. Укажите свое имя в поле Author и e-mail или адрес вашего веб-узла в поле Link. Далее нажимаем на кнопку Готово:

После этого откроется новое окно, с которым вы в дальнейшем будете работать больше всего. В нём отображается исходный текст:

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

Исходный текст, компиляция и прочее

Вы должны понять важную вещь. То, что будет написано в MetaEditor’e, — это исходный код. То есть последовательность команд, которую будет выполнять терминал одну за другой сверху вниз. Но терминал не может выполнять исходные коды. Исходный код понятен вам, но не MetaTrader’у. Чтобы исходный код был понятен терминалу, его нужно «перевести» на соответствующий «язык». Чтобы это сделать, нужно нажать на клавишу F5 в MetaEditor’е. После этого будет выполнена компиляция исходного кода в исполняемый файл. Компиляция — это процесс «перевода» исходного кода, написанного вами и понятного вам, в специальный исполняемый файл, который понимает и способен выполнить MetaTrader. Проверьте это сами. Создайте новый скрипт под названием Test1 и сохраните, но не компилируйте. Запустите терминал и, используя Навигатор, зайдите в раздел «Скрипты». Как видно, скрипта с названием Test1 нет:

Теперь скомпилируйте скрипт (клавиша F5):

Опять загляните в терминал. Скрипт Test1 появился:

Двойной клик на названии скрипта в Навигаторе терминала — и он запускается. Но ничего не происходит, так как скрипт пуст.

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

Где писать скрипты?

Вы уже заметили, что пустой скрипт содержит в себе определённый код. Но в каком месте вам следует вписывать исходный код, чтобы он работал? Его нужно вписывать между строками int start() <и return(0);>, как показано на рисунке:

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

Переменные

Что такое переменная? Попробуйте сами ответить на этот вопрос, а я вам помогу. Сколько вам лет? Сколько вам будет лет через пять лет? Теперь смотрите: возраст — это и есть переменная. Возраст изменяется с течением времени, как и любая другая переменная. То есть первая особенность переменной заключается в её изменении с течением времени. Другой пример: какой был ваш рост в пять лет? Очевидно, намного меньше, чем сейчас. Рост — ещё один пример переменной. Но есть важное отличие. Обратите внимание на то, что возраст мы измеряли, используя целые числа. Рост намного удобнее измерять, используя десятичные дроби («числа с плавающей точкой»). Возраст: 20 лет, 30 лет. Рост: 1,8 метра, 1,95 метра. Это очень важная особенность: каждая переменная относится к определённому типу. Давайте посмотрим, какие еще бывают типы переменных. Вы можете описать числами многие параметры, но как представить текст? Для этого используются специальные типы — строковые. Эти типы переменных хранят только строки. Теперь давайте посмотрим, как можно создать и описать переменную на языке MQL4. Пример:

Видео MQL4 и MQL5 — отличия что нужно знать

Здесь мы объявили переменную целого типа (int — integer — целое число). int — это ключевое слово языка MQL4, которое указывает, что мы используем тип целых чисел. Дальше мы написали age (возраст) — это название переменной, то есть слово, по которому мы будем обращаться к значению, хранящемуся в этой переменной. Затем мы присвоили переменной значение 25, используя символ «=». После каждой инструкции ставится точка с запятой, что мы и сделали. Обратите внимание — объявление и инициализация любой переменной сводятся к такой форме:

[тип переменной] [название переменной] = [значение переменной];

Кстати, присваивать какое-то значение переменной (совершать инициализацию) необязательно, вы могли бы написать и так:

Еще один пример:

Здесь мы объявляем переменную с названием height (рост), которая хранит значения типа double (число с плавающей запятой, десятичная дробь) и которой мы сразу присваиваем значение 1.95, используя оператор «=».

Теперь рассмотрим строковую переменную:

string — тип переменной, name — название переменной, «Janet» — значение переменной. Обратите внимание, что значения для переменной типа string размещаются между двойными кавычками («).

Существует еще один очень полезный тип переменной — bool. Переменные этого типа могут принимать только два значения: либо true (правда), либо false (ложь). Пример:

Теперь вам нужно запомнить несколько важных вещей. Язык MQL4 — это регистрозависимый язык, то есть имеет большое значение, ПРОПИСНЫМИ буквами вы пишете код или строчными. Например, если вы объявите несколько переменных с одинаковыми названиями, но разным регистром, то это будут совершенно разные переменные:

Вышеприведённый код создаст четыре совершенно разных переменных. Также обратите внимание на то, что все ключевые слова языка MQL4 пишутся строчными буквами.

Вышеприведённый код работать не будет, потому что слово double не будет воспринято как ключевое слово языка MQL4. Ещё один важный момент заключается в том, что названия переменных не могут начинаться с цифр или специальных знаков (*,&, ,%,$). Например:

Ещё один элемент языка — комментарии. Если вы напишете «//» перед строкой, то она целиком закомментируется. Это значит, что при компиляции она будет игнорироваться. Например:

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

Работа с переменными

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

Если нужно выполнить какую-то операцию с переменной и присвоить ей же результат, например, увеличить на 5, то поступают одним из следующих способов:

Если хотите увеличить или уменьшить переменную на 1, используйте такой метод:

Это всё очень хорошо, но вы при выполнении подобных скриптов можете только догадываться, правильно всё работает или нет, так как на экране ничего не происходит.
Поэтому удобно выводить результаты. Для этого существует встроенная функция MessageBox().

MessageBox()

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

Чтобы вызвать функцию, сначала пишут её название. Не забывайте про регистр! Потом открываются скобки, и в них через запятую пишутся параметры. В нашем случае параметры имеют строковый тип. Как мы помним, все строки пишутся между двойными кавычками («). Как в любой инструкции, в конце ставим точку с запятой. Чтобы окончательно разобраться, посмотрите на рисунок. Он показывает, как связаны код и результат:

Да, это всё, конечно, хорошо. Но как можно вывести переменные других типов? Очень просто — мотайте на ус:

В результате получим:

Как вы уже догадались, MQL4 устроен таким образом, что когда мы пытаемся добавить к строке какой-то другой числовой тип, то он автоматически переводит числа в строки и объединяет их. Это действительно замечательное свойство! Подобные операции вы можете делать и с переменными-строками:

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

Массивы

Не пугайтесь. Это очень просто. Смотрите. Допустим, вы хотите запомнить пять цен. Как можно поступить? Ну, можно вот так:

У нас получается пять переменных, которые имеют один тип данных и описывают один и тот же параметр — цену. Но можно поступить иначе, используя массив. Массив — это всего лишь серия переменных, которые отличаются между собой индексами, но имеют одно общее название. Посмотрите, как нужно объявлять массив из пяти элементов:

(тип массива) (название массива) [количество элементов];

В нашем случае: тип массива — double, название — price, количество элементов — 5. Давайте посмотрим, как можно обратиться к элементам массива:

С элементами массива можно проделывать любые операции, как и с обычными переменными. Собственно, элементы массива — и есть обычные переменные:

При объявлении массива можно также присвоить всем элементам начальные значения:

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

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

Встроенные или предопределённые массивы и переменные

Конечно же, без реальных данных не обойтись. Чтобы получить к ним доступ, достаточно обратиться к соответствующему предопределённому массиву. Таких имеется несколько, например:

Чтобы окончательно разобраться в предопределённых массивах и индексах, посмотрите на это:

Как видите, индекс (номер) последнего бара — 0, предпоследнего — 1 и так далее.
Также существуют предопределённые обычные переменные. Например, Bars показывает, сколько баров загружено на текущем графике. То есть это самая обычная переменная, но её объявили до вас и вне вашего скрипта. Эта переменная существует всегда, как и любые другие предопределённые массивы и переменные.

Циклы

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

Скажу вам одно: это может сработать, но это — очень глупо. Для таких целей существуют циклы. Обратите внимание, что все операции абсолютно одинаковы, лишь индекс изменяется от 0 до значения переменной Bars-1. Было бы намного удобнее каким-то образом определить счётчик и с его помошью обращаться к элементам массива. Вот как можно решить эту же задачу, используя циклы:

Рассмотрим каждую строку:

Как видите, цикл начинается с ключевого слова for. (Существуют и другие типы циклов, например, while, но их мы пока не будем рассматривать.) Далее следуют кавычки, в которых размещаются последовательно через точку с запятой счётчик, условие выполнения цикла и операция увеличения счётчика. В общем случае это может быть представлено в виде:

Рассмотрим каждую стадию объявления цикла более детально.

Объявление счетчика: используется тип int для счётчика. Название переменной-счётчика не имеет никакого значения. Также обязательно производите инициализацию начального значения, например, нулём.

Условие выполнения цикла: тут всё очень просто. Здесь определяется условие, и если оно истинно, то цикл продолжается. Иначе — цикл заканчивается. Например, в нашем случае:

Видно, что пока переменная-счётчик а будет меньше, чем переменная Bars, то цикл будет выполняться дальше. Допустим, переменная Bars=10, тогда с каждым проходом по телу цикла переменная а будет увеличиваться на 1, пока не достигнет 10, после чего цикл прекратится.

Изменение счетчика: если мы не будем изменять счётчик каким-то образом (в нашем случае не будем его увеличивать), то цикл никогда не закончится, так как условие никогда не будет выполнено. Чтобы лучше понять суть цикла, я написал код, который будет выполнять цикл с поясняющими комментариями:

Теперь вы должны понимать, как работает цикл. Но нужно знать ещё несколько моментов.

Условие выполнения цикла может быть другим. Например, таким:

Изменение счётчика может производиться и по-другому. Например, вам необязательно увеличивать его каждый раз на 1. Вы можете поступить иначе:

Кроме того, вы можете разместить изменение счётчика внутри тела цикла. Например, так:

Аналогично — необязательно объявлять переменную-счётчик в цикле. Можно сделать иначе:

Если тело цикла содержит всего один оператор, например, вот так:

Видео Что такое MQL4 и как его использовать?

то фигурные скобки писать необязательно:

Пока это — всё, что касается циклов. Есть и другие виды циклов, но о них мы поговорим на следующем уроке. Сейчас вы должны уяснить, когда нужно использовать циклы, и запомнить их синтаксис. Попробуйте самостоятельно написать несколько циклов, которые бы выводили значения счётчика функцией MessageBox(). Попробуйте написать бесконечный цикл и посмотрите, что произойдет, если его запустить.

Условия

Осталась ещё одна важная вещь, которую вы будете постоянно использовать, — условия. В нашей жизни много условий и действий, которые следуют за этими условиями. Мы очень часто даже мыслим условными предложениями. Например: «Если у меня будет достаточно времени, я успею прочитать эту книгу. Если нет, то, пожалуй, лучше полистать свежий журнал. » Вы и сами можете придумать сотни подобных условий и действий. Но как записать их на MQL4? Вот пример:

Теперь вы должны понимать синтаксис условий. Давайте посмотрим на условия, полностью написанные на языке MQL4:

Всё довольно-таки просто. Чему равно b после выполнения? Конечно, b = 2, потому что условие a > 10 не выполняется. Это элементарно. Кстати, использовать ключевое слово else (иначе) необязательно:

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

Так вот, к чему я веду: в условиях сравнивайте переменные только с теми значениями, которые они могут принимать, например:

MQL4: основы языка, типы программ и примеры использования

Что такое MQL4? MQL4 означает MetaQuotes Language. Это язык программирования, включенный в торговый терминал MetaTrader 4. Язык программирования – это язык, на котором разработчик пишет программу. Программа в свою очередь позволяет компьютеру выполнять определенную последовательность действий.

MQL4 был выпущен вместе с первой версией MetaTrader 4 в 2005 году. За прошедшие годы он прошел через множество обновлений. В 2021 году он был полностью переработан и был выпущен 600 билд, важное обновление, в котором было представлено больше возможностей, что привело его почти к такому же уровню, как и MQL5.

MQL4 и MQL5 имеют некоторые важные различия, но сейчас мы сосредоточимся только на MQL4 и MetaTrader 4.

Введение в MQL

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

MetaTrader 4 стал одной из самых популярных торговых платформ для торговли на форекс и предлагается сотнями брокеров по всему миру.

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

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

Сходство MQL с такими языками, как C, позволяет опытным программистам относительно легко разобраться в его коде, а сам язык хорошо документирован. Однако обучение эффективному программированию торговых стратегий на MQL – это постоянный процесс проб и ошибок.

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

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

На официальном веб-сайте MQL4 по адресу http://www.mql4.com вы сможете найти подробный справочник по MQL, который всегда будет для вас полезным. Также на этом сайте вы найдете множество информационных статей, в которых рассматриваются базовые и продвинутые концепции программирования на MQL, библиотеку кода с дополнительными индикаторами и примерами, а также форум, где вы можете обратиться за помощью по вопросам программирования.

Расширения файлов MQL4

Файлы MQL4 имеют следующие расширения:

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

.ex4 – это скомпилированная версия, реальная программа, которая может быть запущена в MetaTrader. Вы не сможете открыть ее с помощью другой программы, кроме MetaTrader. Если вы купите советника или торгового робота для MetaTrader, скорее всего, они будут с расширением .ex4.

.mqh – это библиотеки, содержащие дополнительные функции, которые вы можете включать и использовать в своих программах. Файлы .mq4 можно открыть с помощью MetaEditor или любого редактора текстовых файлов.

MQL4 использует синтаксис, аналогичный С, C++, C Sharp, Java. Если вы уже знаете некоторые из этих языков, вам не понадобится много времени, чтобы изучить MQL4.

Расположение файлов

Все файлы MetaEditor хранятся в папке MQL4. Папка MQL4 находится в каталоге установки MetaTrader.

Внутри папки MQL есть множество подпапок:

  • experts – папка для исходных кодов и исполняемых файлов советников.
  • indicators – папка для исходных кодов и исполняемых файлов индикаторов.
  • scripts – папка для исходных кодов и исполняемых файлов скриптов.
  • include – здесь находятся исходные коды включаемых файлов с расширением .mqh.
  • libraries – здесь хранятся библиотеки функций и библиотеки DLL.
  • logs – журналы активности. Они будут полезны для отладки ваших советников.
  • presets – здесь хранятся настройки советников, которые сохраняются или загружаются из диалога свойств.
  • files – файлы, используемые для ввода или вывода.

Что вы сможете делать с помощью MQL4?

MQL4 – чрезвычайно мощный инструмент, который при правильном использовании может значительно расширить ваши торговые возможности. С помощью MQL4 вы можете:

  • Выполнять различные математические операции. К примеру, рассчитывать размер позиции с учетом заданного риска.
  • Рассчитывать стоп-лосс и тейк-профит.
  • Открывать и закрывать ордера.
  • Отправлять уведомления в торговый терминал или по электронной почте.
  • Создавать файлы отчетов.
  • Создавать собственные индикаторы.
  • Автоматизировать свою торговлю, чтобы ваш торговый терминал мог торговать без вашего взаимодействия.

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

Типы программ MQL4

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

MQL-программы можно разделить на несколько категорий:

  • Включаемые файлы.
  • Библиотеки.
  • Скрипты.
  • Индикаторы.
  • Советники.

Разберем каждый тип программ более подробно.

Включаемые файлы

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

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

Библиотеки

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

Скрипты

Скрипты – это программы, которые после запуска выполняют определенное действие всего лишь один раз. Исходный файл скриптов имеет расширение MQ4, в то время как скомпилированная исполняемая версия имеет расширение EX4. Скрипты сохраняются в папке Scripts.

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

С помощью скриптов вы сможете:

  • Открывать ордера.
  • Рассчитывать размер позиции, а также размер стоп-лосса или тейк-профита.
  • Создавать отчет и сохранять его в файл.
  • Отправлять отчет по электронной почте.
  • Немедленно закрывать все открытые ордера.
  • Рассчитывать некоторые параметры сделки.

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

Индикаторы

Индикаторы представляют собой графическое представление движения цены.

Исходные файлы индикаторов имеют расширение MQ4, в то время как скомпилированные исполняемые версии для MetaTrader 4 имеют расширение EX4. Файлы индикаторов сохраняются в папке Indicators.

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

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

Некоторые примеры стандартных индикаторов:

Пользовательские индикаторы могут быть улучшенными версиями существующих или совершенно новыми индикаторами.

Советники (эксперты)

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

Советник позволяет MetaTrader постоянно отслеживать значения цены и показания индикаторов, выполняя при этом определенные запрограммированные действия.

Исходные файлы экспертов имеют расширение MQ4, в то время как исполняемые скомпилированные версии имеют расширение EX4. Папка, в которой хранятся эти файлы называется Experts.

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

Вот некоторые примеры действий, которые могут выполнять советники:

  • Мониторинг значения цены или показаний индикаторов.
  • Открытие или закрытие ордеров при определенных значениях цены или показаний индикаторов.
  • Отправка уведомлений на экран торгового терминала или по электронной почте при совпадении некоторых торговых условий.
  • Автоматический перенос стоп-лосса (трейлинг-стоп) или тейк-профита.
  • Отправка отчетов о совершенных сделках.
  • Выполнение определенных действий в запланированное время.

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

Программируем на MQL4 своими руками

Хотите изучить MQL4 быстро, легко и бесплатно? Программирование MQL4 подробно и с самого нуля. Фишки, секреты и только практика

В данном разделе Вы найдете всю необходимую практическую информацию про программирование MQL4. Данный язык программирования встроен в один из самых популярных торговых терминалов MetaTrader4.

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

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

Ниже Вы найдете подробные практические уроки по MQL4, в которых рассматривается все «от и до». Обучающий материал рассчитан как для самых начинающих, так и для тех, кто уже «в теме».

Подробные пошаговые уроки по MQL4

Подробные уроки (своего рода, книга или учебник) по MQL4. Как для начинающих, так и для тех, кто уже «в теме». Пошаговое обучение и только практика.

Основные встроенные функции в MQL4: Period(); Sleep(); NormalizeDouble(); AccountBalance();

Изучаем основные встроенные функции в MQL4: Period(); Sleep(); NormalizeDouble(); AccountBalance(); Использование этих функций в программировании MQL кода

Принудительное окончание цикла в MQL4 при помощи оператора break;

MQL4: break — оператор принудительного окончания цикла. Разбираем работу этого оператора в составе цикла for

Массивы в MQL4: одномерные, двумерные, многомерные. Практическая работа с массивами

В данном уроке подробно поговорим о том, что такое массивы в MQL4 программировании? Как их применять и использовать на практике. Изучим виды массивов: одномерные, двумерные, многомерные

MQL4: Работа со справкой (встроенный справочник в MetaEditor)

В данном уроке мы разберем что такое справка и как ее использовать при MQL4 программировании

MQL4 и основные ошибки у новичков. Как сделать так, чтоб ошибок было меньше?

Небольшой секрет, как сделать так, чтобы при написании MQL4 кода, ошибок в разы было меньше, чем всегда, а также сэкономить в разы Ваше время, уделяемое поиску этих самых ошибок. Очень актуально для новичков в MQL!

Функции и команды в MQL4 программировании. Их структура и ошибки новичков

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

MQL4: Операторы условия «если, иначе» if else

В этой статье мы подробно разбираем один из самых основных операторов условия в языке программирования MQL4 — if else (если иначе).

MQL4: изучаем цикл for()

В этой статье мы разберем работу одного из самых основных циклов в MQL4 программировании — цикл for(). Без этого цикла пожалуй, не обойдется ни один торговый Форекс советник.

MQL4: вывод информации о валютных инструментах на график. Функции Symbol(); MarketInfo();

В материале этой статьи мы произведем подробный практический разбор функций вывода информации о валютных инструментах на график в языке программирования MQL4 — Symbol(); и MarketInfo();

Оцените статью
Торговля на фондовом рынке
Добавить комментарий