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

Шрифт
Интервал



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

{

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

}

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

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

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

/* это

блок

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

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

Циклы

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

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

{

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

}

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

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

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

{

/*

здесь будут выполняться какие-то условия.

Как только x станет true, цикл прекратится.

*/

//например

x = true;//после первого же прохода делаем x равным true

//и цикл прекращается

}

В процессе написания советника мы будем использовать оба этих цикла, и вы без труда с ними разберетесь.

Техническое задание

Опишем, что и когда должен делать наш будущий советник:


Торговые сигналы будут формировать два стандартных индикатора Envelopes и ZigZag. Эти индикаторы встроены в MetaTrader4 и дополнительно скачивать их не нужно. Я выбрал два именно этих индикатора, т. к. их значения вызываются разными способами. Для Envelopes – с помощью стандартной функции iEnvelopes, а ZigZag вызывается функцией iCustom – ее вам необходимо изучить (хотя, это громко сказано), чтобы в дальнейшем вы умели вызывать данные почти любых не стандартных индикаторов для MetaTrader4.



Составим краткое техническое задание:

– Если верхний пик индикатора ZigZag (далее – ZZ) сформировался выше верхней линии индикатора Envelopes (с параметром Shift = 10, остальные – стандартные), выставляем ордер на продажу фиксированным лотом, определенным в настройках советника.

– Если нижний пик ZZ сформировался ниже нижней Envelopes – сигнал на покупку (т. е. наоборот от buy-сигнала).