Урок №12: Пишем советник по индикатору

Советник на индикаторе

На прошлом уроке мы с вами писали индикатор, который указывает входы в рынок. Соответственно сегодня мы займёмся разработкой эксперта, использующего его сигналы. Начнём с создания шаблона советника(как это сделать мы разбирали на уроке №10).

Урок №11: Пишем индикатор

MQL: Пишем индикатор

На этом уроке мы напишем простой индикатор, который в дальнейшем будем использовать при разработке советника. А использовать для получения сигнала мы будем уже существующие — Moving Average и MACD. Алгоритм следующий: Определять направление сделки (покупка или продажа) мы будем по индикатору Moving Average с периодом 100 на дневном графике(Daily), т.е. если текущая цена выше MA(100), то покупаем, а если ниже — продаём. А для поиска удачных точек входа воспользуемся индикатором MACD.

Урок №10: Наш первый советник

MQL: Наш первый советник

Уважаемые коллеги, на этом уроке мы напишем наш первый советник, познакомимся с некоторыми основными функциями языка MQL4, а также напишем несколько своих. Приступим, и для начала запустим MetaEditor…     и создадим шаблон эксперта, ничего не меняя, просто нажимаем кнопку «Далее»… Обязательно заполняем, как минимум, поле «Имя» — это название нашего будущего советника, поля «Автор» и «Ссылка» не обязательны к заполнению. Добавляем параметры «Lots», «TakeProfit», «StopLoss», обращая внимание тип данных каждого параметра. После заполнения нажимаем кнопку «Далее»:

Урок №9: Перегрузка функций

MQL: Перегрузка функций

MQL4 позволяет определять несколько функций с одинаковым именем. Такие функции называются перегруженными. Их может быть две, три и больше и различаются они порядком следования, количеством, типом. Таким образом перегрузка функций нужна для того, чтобы избежать дублирования имён функций, выполняющих подобные действия, но с различной программной логикой. В конечном счёте перегрузка функций улучшает удобочитаемость программ. Например, предположим, что в вашей программе есть функция с именем day_of_week, которая возвращает текущий день недели (0 для воскресенья, 1 для понедельника, …, 6 для субботы). Читать дальше …

Урок №8: Локальные и глобальные переменные

Локальные и глобальные переменные

На одном из прошлых уроков мы узнали, что функции позволяют разделить программу на небольшие легко управляемые части. Все функции, используемые вами до настоящего момента, были достаточно простые. Как только вашим функциям потребуется выполнить более сложную работу, они должны будут использовать переменные для реализации своих задач. Переменные, которые объявляются внутри функции, называются локальными переменными. Факт того, что локальные переменные существуют, известны только  функции, в которой они объявлены. Наиболее важно понять то, что локальные переменные существуют только в блоке кода, в котором Читать дальше …

Урок №7: Условия и циклы

MQL: Условия и циклы

Условный оператор if Конструкция практически любого алгоритма подразумевает наличие условий, поэтому для организации вычислений в зависимости от какого-либо условия в MQL предусмотрен условный оператор if, который в общем виде записывается следующим образом: if (условие) выражение_1; else выражение_2; Здесь условие — это логическое выражение, переменная или константа. Работает условный оператор следующем образом. Сначала вычисляется значения выражения, записанного в виде условия. Если оно имеет значение истина (true), выполняется выражение_1. В противном случае (значение ложное (false) ) выражение_2. 

Урок №6: Операции и выражения

MQL: Операции и выражения

Виды операций В языке MQL4 различают следующие виды операций: арифметические операции; операции присваивания; операции отношения; логические операции; побитовые операции; операция запятая; вызов функции. Арифметические операции К символам арифметических операций относятся следующие: Символ Операция Пример Аналог + Сумма величин x + 2 — Вычитание величин или изменение знака x — 3, y = — y * Умножение величин 3 * x / Частное от деления x / 5 % Остаток от деления minutes = time % 60 ++ Добавление 1 к Читать дальше …

Урок №5: Типы данных MQL4

Типы данных MQL

Тип данных определяет множество значений, набор операций, которые можно применять к таким значениям и, возможно, способ реализации хранения значений и выполнения операций. Любые данные, которыми оперируют программы, относятся к определённым типам. Например, если в памяти хранится целое число от -2147483648 до 2147483647, то для него в языке программирования MQL предусмотрен тип «int«. Что такое «переменная»? Переменные — это какие-то имена, которые привязаны к кускам памяти, где хранятся соответствующие данные. Когда мы создаём переменную, мы говорим компьютеру, что мы хотим, чтобы Читать дальше …

Урок №4: Методы отображения информации

Методы отображения информации MQL

Существует несколько способов передать информацию трейдеру из советника. Print — Отображает некоторое сообщение в журнал экспертов(вкладка «Эксперты»). На первом уроке мы с Вами создавали эксперт с помощью мастера. Давайте дополним его некоторым кодом. В функцию OnInit() добавим отображение строки «Эксперт инициализирован», а в функцию OnTick() сообщение о поступлении новой котировки.

Урок №3: Комментарии

MQL: Комментарии

Комментарии в языке MQL записываются одним из следующих способов: Символы /* (косая черта и звездочка), за которыми следует любая последовательность символов, включая переводы строки, после чего ставятся символы */. Это тот же синтаксис, который используется в ANSI C. Символы // (две косые черты), за которыми следует любая последовательность символов. Символ перевода строки, непосредственно перед которым нет обратной косой черты, завершает комментарий, оформленный таким способом. Поэтому такие комментарии часто называют однострочными. Символы, используемые для оформления комментариев (/*, */ и //), не Читать дальше …

Урок №2: Функциональные блоки программы

Функциональные блоки программы

В этом уроке мы разберем основные функциональные блоки кода советника на MQL, который мы с Вами создали в предыдущей статье. Итак, первый блок — так называемая «Шапка». Она отображает справочную информацию: наименование советника; авторские права; сайт или email; версия советника; свойство-команда, необходимое для того, чтобы во время компилирования MetaEditor строго проверял в коде наши ошибки и выдавал предупреждения. Следующий блок — это объявление внешних переменных. Это те самые параметры, которые мы заполняли в мастере создания советника и которые будут появляться Читать дальше …

Урок №1: MetaEditor

Metaeditor

Итак, разработка программного обеспечения(советник, скрипт, индикатор) производится в специальном редакторе — MetaEditor. Вызывается он через меню:   либо кнопкой быстрого запуска:   Далее создаём скрипт, индикатор или советник: И мы видим окно Мастера MQL, который нам поможет создать шаблон советника в MetaEditor. Нам предлагается на выбор несколько вариантов того, что можно создать. Последние три варианта нам пока не нужны, они для профессиональных программистов. Нам могут пригодиться: Советник (шаблон), Пользовательский индикатор или Скрипт. Сейчас выбираем Советник (шаблон) и нажимаем далее.