Maison

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

уроки программирования mql4

Здесь мы присваиваем элементу volume переменной-структуры Bar значение тикового объёма бара с индексом 1 на текущем графике. Краткий справочник содержит разбитые на категории функции, операции, зарезервированные слова, другие конструкции языка и позволяет узнать описание каждого используемого элемента, входящего в язык. Изучив его, Вы научитесь самостоятельно создавать любого форекс робота. А также переделывать любой форекс софт под собственные нужды так, как необходимо fx mag отзывы именно ВАМ. И о том, как это сделать, Вы узнаете из пошагового видеокурса «MQL4 программирование.

В связи с тем, что операция копирования занимает какое-то время, старайтесь использовать эту функцию, когда это действительно необходимо в рамках вашей задачи. Оператор continue удобно применять, если тело цикла довольно большое. Можно не усложнять конструкции ветвления внутри цикла, а сразу пропустить все последующие операторы и перейти к новой итерации. Cо значениями по умолчанию советник не блещет результатами, впрочем, и не сливает. Давайте немного «отодвинем» уровни перепроданности и перекупленности в настройках индикатора, установим параметр StochasticLevelDn на 10 вместо 20.

Приступая к изучению программирования на языке MQL4, необходимо обозначить общиеграницы наших интересов. Прежде всего отметим, что обсуждаемые в учебнике программымогут использоваться только как прикладные программы для работы в клиентскомтерминале MetaTrader 4. Чтобы понять, какую роль эти программы играют в практикеуправления торговлей, рассмотрим рис. Локальная переменная — это переменная, объявленная внутри функции. Локальные переменные доступны только внутри функции, в которой они объявлены.

Определимся с полным функционалом будущего советника и опишем его входные параметры. Первая будет открывать ордер указанным объёмом по текущей рыночной цене в указанном направлении. В этом примере поля структуры open, close, high, volume, time доступны только из метода GetCandleParam().

Функции советника

У вас есть 31 символ для описания вашей переменной, поэтому используйте их максимально эффективно. Значение по умолчанию для вашей переменной также будет значением по умолчанию для этого параметра, поэтому выберите логическое значение по умолчанию. Иногда функция, которую вам нужно использовать, уже скомпилирована в другом файле, таком как другой советник, файл библиотеки (.ex4) или файл Windows DLL (.dll). Вы можете импортировать функции непосредственно в проект, используя директивы #import.

Функция CommonStopLoss()

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

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

Входные параметры

уроки программирования mql4

Для анализа рынка могутприменяться технические индикаторы и различные линейные инструменты – линии поддержки/сопротивления,трендовые каналы, уровни Фибоначчи и др. Функция start() содержит основной программный код и требуется в вашем советнике. Каждый раз, когда запускается функция запуска, ваши торговые условия проверяются, а ордера размещаются или закрываются в зависимости от того, как эти условия оцениваются. Существуют и другие директивы #property, но почти все они связаны с индикаторами и скриптами. Единственная директива #property, которую вы должны включить в свой советник, это #property copyright, которая идентифицирует советника как ваше творение. Изучение того, как создавать функции для общих торговых задач, важно для продуктивного программирования.

Статические и динамические массивы

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

Торговый терминал MetaTrader 4 по достоинству оценили сотни тысяч трейдеров во всем мире. Использование встроенного языка программирования MQL4 выводит трейдеров на качественно новый уровень торговли – автотрейдинг. В этом уроке мы рассмотрели использование циклов при работе с массивами.

Вложенные структуры

  1. Рассмотрим интересный пример использования массивов для построения индексов в стиле базы данных.
  2. Тип данных зависит от типа данных, которые возвращает функция.
  3. Впрочем, структуры, представляя собой объекты, объединяющие данные и действия над ними, служат своеобразным «мостиком» между процедурным и объектно-ориентированным программированием.
  4. Сам же механизм построения пирамид по тренду, сопровождения рыночных ордеров и фиксации прибыли достаточно полно раскрыт в нашем советнике.
  5. Чтобы инициализировать динамический массив, можно использовать функции ArrayInitialize() или ArrayFill().

При этом блок «Новый тик» соответствует обработчику OnTick(), внутри которого мы будем производить вызов прочих функций. Так выглядит эта же пирамида, когда первые четыре Sell Stop ордера были активированы при движении цены вниз. Теперь у нас открыты четыре рыночных ордера и шесть отложенных. И, наконец, решение о закрытии пирамиды можно принимать на основе технического анализа при первых признаках разворота или затухании текущей тенденции.

Первая заполняет указанным значением весь массив, вторая может заполнить только часть массива. Но таким образом можно инициализировать или заполнить лишь массивы простых типов, массив, например, строк придётся заполнять в цикле, перебирая все элементы по индексу и присваивая каждому нужное значение. Этот язык позволяет писать собственные программы-эксперты (Expert Advisors), автоматизирующие управление торговыми процессами и идеально подходящие для реализации собственных торговых стратегий. Кроме того, на MQL4 можно создавать собственные технические индикаторы (Custom Indicators), скрипты (Scripts) и библиотеки функций (Libraries). Глобальная переменная — это переменная, которая доступна всем функциям в программе.