Евгений Ждан "MQL4-программирование: торговый робот за один вечер"

Чтобы освободиться от рутины и сберечь нервы, каждый трейдер задумывается об автоматизации своей торговли. Эта книга поможет освоить mql4-программирование любому человеку с любым уровнем образования. Книга написана простым языком без сложной терминологии. На протяжении всей книги автор и читатель вместе разрабатывают торговый советник для платформы MetaTrader4

date_range Год издания :

foundation Издательство :Автор

person Автор :

workspaces ISBN :

child_care Возрастное ограничение : 0

update Дата обновления : 23.04.2023

MQL4-программирование: торговый робот за один вечер
Евгений Ждан

Чтобы освободиться от рутины и сберечь нервы, каждый трейдер задумывается об автоматизации своей торговли. Эта книга поможет освоить mql4-программирование любому человеку с любым уровнем образования. Книга написана простым языком без сложной терминологии. На протяжении всей книги автор и читатель вместе разрабатывают торговый советник для платформы MetaTrader4

Евгений Ждан

MQL4-программирование: торговый робот за один вечер




ВВЕДЕНИЕ

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

Данные о том, что именно зарабатывающих трейдеров не более 5% встречаются повсеместно. Деньги остальных 95% делятся между первыми 5% и брокерами/диллинговыми центрами.

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

Дело в том, что, начиная торговать, трейдер выполняет условия своей торговой стратегии. После череды успешных сделок, последний расслабляется, начинает думать, что поймал удачу за бороду и жизнь обеспечена. Появляется чрезмерная уверенность в своих действиях и трейдер начинает отклоняться от торговой стратегии. Открываются сделки не по системе, а по «наитию». Пребывая в эйфории от череды успешно закрытых ордеров, трейдер увеличивает торговый лот. И уже скоро этот человек отправляется в число тех теряющих деньги 95% трейдеров.

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

Торговый робот лишен эмоций и способен монотонно выполнять свой алгоритм с приходом каждого нового ценового значения. Конечно, иногда трейдеру придется запрещать ему работу, например, во время крайне-важных финансово-политических новостей, когда волатильность возрастает в разы. Например, такими событиями в недавнем прошлом являлись Britain Exit – «Брекзит» – кампания сторонников выхода Великобритании из ЕС, выборы президентов США и Франции, авария на АЭС Фукусима-1, спровоцировавшая обвал японской национальной валюты и т. п. Надеюсь, мысль вам понятна.

В этой книге мы научимся делать торговых роботов для для самого распространенного и самого удобного торгового терминала MetaTrader4 от компании MetaQuotes. Если быть точнее, в этой книге мы по шагам создадим советника (Expert Advisor), полностью готового «к употреблению». Естественно, прибыльность конечного продукта я не обещаю, нам важно другое – научиться их делать.

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

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

НЕМНОГО ТЕОРИИ

Типы данных

Торговый эксперт оперирует данными. Он работает с поступающими ценами, ценовыми значениями индикаторов, ведет подсчеты открытых ордеров, что-то печатает в Журнал торгового терминала.

В mql4 существуют следующие типы данных:

Основные типы данных:

целые числа (char, short, int, long, uchar, ushort, uint, ulong)

логические (bool)

литералы (ushort)

строки (string)

числа с плавающей точкой (double, float)

цвет (color)

дата и время (datetime)

перечисления (enum)

Сложные типы данных:

структуры;

классы.

На первых порах вам не понадобится и 70% из вышеперечисленного. Рассмотрим только то, что нам будет нужно в рамках разработки нашего торгового эксперта.

Тип int – целые числа, т. е. 1, 2, 5,100, 1425…

Тип double – числа с дробной частью (с запятой): 1,0254, 0,0547....

Тип bool – имеет только 2 значения – true (правда) и false (ложь).

Тип string – строковые значения, т. е. слова: “слово”, “предложение из четырех слов”…

Переменные

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

С типом

bool

все также, например переменная

bool

b

=

true

, означает, что бочонок с именем

b

содержит в себе

true

.

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

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

Условные операторы if-else

Условные операторы if-else применяются всегда и везде. If – означает “если”, else – “если нет, то”.

Например:

if(x < y) // Если содержимое бочонка x меньше содержимого бочонка y

{

Что-то делаем, например, открываем ордер. Или закрываем другой ордер, да все что угодно!

}else // А если x не меньше y, делаем то, что ниже, в фигурных скобках

{

Делаем что-то здесь.

}

использование оператора else не обязательно, все зависит от конкретной задачи.

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

Блоки комментариев делаются так:

/* это

блок

комментария */

Все, что между символами /* и */ также компилятором игнорируется.

Циклы

В mql4 существуют циклы for и while. Чаще используется for, но, нередко и while.

for (int i=0; i <100; i++)

{

что-то считаем 100 раз.

}

inti = 0 – объявляем переменную, которая будет работать в пределах данного цикла; i < 100 – цикл прокрутится 100 раз, от 0 до 99; i++ (инкремент) означает, что при каждой прокрутке (итерации) цикла, переменная i будет увеличена на единицу.

bool x = false; //присваиваем переменной х типа bool значение false

while(x==false) //пока x равен false. Два символа равно “==” означают сравнение

{

/*

Все книги на сайте предоставены для ознакомления и защищены авторским правом