Блог им. AlgoTrader1

Типы программ и вспомогательных файлов на языке MQL4

Господа, всех приветствую. Продолжаем цикл изучения языка mql4.

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

В этом нам поможет «Мастер MQL4». Чтобы его запустить, достаточно в MetaEditor’e в меню «Файл» выбрать команду «Создать», либо нажать на соответствующую кнопку на панели инструментов, которая находится прямо под главным меню, либо зажать комбинацию горячих клавиш Ctrl + N. Любое из перечисленных действий запустит «Мастер MQL4». Он хорош не только тем, что помогает создать заготовку будущей программы, но он ещё и размещает её в правильном каталоге для выбранного типа программы или файла.
Мастер MQL4

После этого перед нами предстанет выбор из 6 возможных вариантов:

  1. Советник (шаблон)
  2. Пользовательский индикатор
  3. Скрипт
  4. Библиотека
  5. Включаемый файл (*.mqh)
  6. Новый класс

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

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

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

К программам отнесём: советник, индикатор, скрипт.

К вспомогательным файлам: включаемый файл, библиотеку функций, новый класс.

А теперь про каждый вариант подробнее.

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

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

Скрипт – программа, которая запускается на графике и выполняет любые действия как торговые, так и не торговые, после чего сразу же выгружается с графика. То есть скрип может выполнять те же действия, что и советник, только вот он на графике не задерживается. Если советник после запуска висит на графике и ждёт каждое новое изменение цены, чтобы выполнить свой алгоритм, то скрипт запускается вручную, выполняет всё, что предусмотрено алгоритмом и сразу же выгружается с графика. Поэтому нет никакого смысла вешать на скрипт задачи по поиску сигнала. Он не будет висеть на графике постоянно, чтобы эти условия проверять. Скрипт нужен для того, чтобы выполнить быстро какое-нибудь одно или несколько действий сразу. Например, открыть сеть из 20 отложенных ордеров с некоторой дистанцией друг от друга и от текущей цены. Вручную это делать долго и муторно, скрипт это сделает очень быстро, практически в один клик. Ну ладно ещё открыть, бывает нужно быстро закрыть все сделки, или только соответствующие определённому критерию (покупки, продажи, в прибыли, в убытке и т.д). Скрипт позволяет выполнить такие операции максимально быстро, чтобы цена не успела далеко уйти от текущих значений.

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

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

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


На сегодня всё. Кому лень было читать, надеюсь, посмотрели видео. Спасибо за внимание.

 

 

 

 

 

 

★2
Возможно уже спрашивали… Почему не MQL5?
Ведь ясно, что мт4 просто «доживает». Полтора года без обнов.
avatar

VladMih

VladMih, потому что mql5 в процессе изучения. МТ4 уже очень долго доживает, но пока живой, это имеет смысл. Переход с 4 на 5 версию проще, чем с нуля на 5.

А насчёт «без обнов полтора года», посмотрите билд своего терминала и дату последнего обновления, актуальный билд 1126 от 20 июня сего года.
AlgoTrading Solutions, у меня май 2017 build1090 последний — альпари
Нэш Ван Дрейк (Кот Скрипаля), я подключён к демо-серверу метаквотов, там обновления выходят раньше.
AlgoTrading Solutions, Альпари этот билд не приняло,
последнее обновление — билд 1090 от 19 мая 2017 года.

Ваше обновление с демо-сервера метаквотов для тех, кто согласен считать себя подопытными кроликами. Это не для реальных счетов и говорить об этом здесь… ну… не стоило бы.
Даже в релизах часто бывают серьезные баги, а это…
avatar

VladMih

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

....все тэги
UPDONW