Блог им. AlgoTrader1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

 

 

 

 

 

 

824 | ★3
7 комментариев
Возможно уже спрашивали… Почему не MQL5?
Ведь ясно, что мт4 просто «доживает». Полтора года без обнов.
avatar
VladMih, потому что mql5 в процессе изучения. МТ4 уже очень долго доживает, но пока живой, это имеет смысл. Переход с 4 на 5 версию проще, чем с нуля на 5.

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

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

Читайте на SMART-LAB:
Финансовые результаты Полюса улучшились на фоне роста цен на золото
Выручка Полюса за 2025 год увеличилась на 2,6% в годовом выражении (г/г) и составила 712,8 млрд руб., чистая прибыль выросла до 314,1 млрд руб....
Сокращение российского бюджета на 10%: что дальше?
К чему приведет сокращение бюджета? Экономику ждет стагнация, или падение ставок станет мощным драйвером роста? «Хэдхантер» сохраняет перспективы...
Фото
В РФ хотят прекратить выплаты по ОСАГО выше лимита — 400 тыс. руб.
Кроме того, компенсацию сможет получить только сам пострадавший или же его законный представитель. Эти меры направлены на сокращение схем с...

теги блога AlgoTrading Solutions

....все тэги



UPDONW
Новый дизайн