Объявлять переменную нужно только 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. Два символа равно “==” означают сравнение
{
/*
здесь будут выполняться какие-то условия.
Как только x станет true, цикл прекратится.
*/
//например
x = true;//после первого же прохода делаем x равным true
//и цикл прекращается
}
В процессе написания советника мы будем использовать оба этих цикла, и вы без труда с ними разберетесь.
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Опишем, что и когда должен делать наш будущий советник:
Торговые сигналы будут
формировать два
стандартных индикатора
Envelopes
и
ZigZag
. Эти индикаторы встроены в
MetaTrader
4 и дополнительно скачивать их не нужно. Я выбрал два именно этих индикатора, т. к. их значения вызываются разными способами. Для
Envelopes
– с помощью стандартной функции iEnvelopes, а