strelkaХотите изучить MQL4 быстро, легко и бесплатно?
MQL4 подробно и с самого нуля. Фишки, секреты и только практика
А также, СУПЕРБОНУС - разбор стратегии и программного MQL кода советника SGR


 
Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):


 

Здравствуйте, дорогие друзья. В данной статье мы с Вами рассмотрим условия в языке MQL4 – if else. Но, прежде чем мы с Вами приступим, нам необходимо изучить составные элементы этого условия.

 

Составные элементы оператора условия MQL4 — if else

Ранее, мы с Вами уже использовали знак присваивания =. Он означает, что какой-либо переменной присваивается какое-либо значение. Знак равно – это знак присваивания. Но, если мы ставим два знака равно подряд, то это обозначает вопрос – «равно ли» или «если равен»?

y==1;

равен ли «y» единице? Иначе говоря, можно сказать, если «y» равняется единице, то…

То есть, когда один знак равно, то это как бы констатация факта, «y»=1. А когда два знака равно, то это вопрос: «Если «y» равен 1…то». Этот момент достаточно важен.

Итак, перечислим все составные элементы условия:

== если равняется
=! если не равняется
< если меньше
> если больше
<= если меньше или равно
>= если больше или равно
|| или
&& и

 

Следует запомнить данные элементы нашего условия.

 

Оператор условия в MQL4 – if else

Теперь, давайте рассмотрим само условие if else.

Условие прописывается следующим образом:

if ()
{
}

 

Где внутри круглых скобок прописано само условие, например, (a>b). А внутри тела прописываем действие, которое должно произойти, например,{x=1}. То есть, если (a>b), то {x=1;}. Внимание, внутри фигурных скобок, после действия, всегда ставим точку с запятой!

if (a>b)
{
 x=1;
}

 

Внутри фигурных скобок действий может быть достаточно много:

if (a>b)
{
  x=1;
  y=2;
  z=x+y;
}
Comment(z);

 

Этим кодом мы прописали следующее условие: если a>b, то x=1, y=2, а z=x+y. И во всех остальных случаях, а это если a<b или a=b, то z уже будет равняться просто самой себе. И после все этого, на экран выводится значение z при помощи команды Comment().

Также можно делать составные условия. Если (a>b), то выполняется этот код {x=1; y=2; z=x+y;}, иначе (else) если (if) (a<b), то выполняется какой-то другой код, например, {z=x-y}. И дальше опять иначе (else), например, {z=x}. Пропишем это все в коде MQL4:

if (a>b)
{
  x=1;
  y=2;
  z=x+y;
}

else if (a<b)
{
  z=x-y;
}

else z=x;

Comment(z);

 

Что у нас в итоге получилось? Если (a>b), то у нас выполняется код {x=1; y=2; z=x+y;}, иначе, если (a<b), то выполняется этот код {z=x-y}, иначе {z=x}.

 

Практический пример использования условия if-else

Теперь рассмотрим все это на практическом примере.

#property copyright "Copyright (с) Антон SanGReal Invest"
#property link      "https://sgr-tradeinvest.ru"
#property version   "1.00"
#property strict

extern int y = 0;

void OnTick()
  {
if (y>0 && y<4)
   {
    Comment(y," - это плохая оценка");
   }
else if (y==4 || y==5)
   {
    Comment(y," - это хорошая оценка");
   }
else
   {
    Comment(y," - такой оценки нет");
   }
  }

 

В данном коде условия мы с Вами использовали разные типы сравнения. Условием (y>0 && y<4) мы с Вами задали промежуток значений «y»  от 1 до 3 включительно. То есть, «y» обязательно должно быть больше 0 и меньше 4.

Условием (y==4 || y==5) мы определили, что «y» может быть равен 4 или равен 5.

Ну, и на конец, во всех остальных случаях (где просто else) – таких оценок не существует.

Теперь давайте проверим наш советник в реальной работе. Компилируем MQL4 код, переходим в терминал MetaTrader, подключаем наш советник к графику и во входящих параметрах советника ставим значение для «y» равное 0.

Проверяем работу if else: ставим во входящих значениях 0

 

И, смотрим результат на графике:

Проверяем работу if else: результат на графике

 

Если во входящих параметрах поставим 2, то результат будет такой:

Проверяем работу if else: результат на графике

 

Ну, и если поставим 5, то результат будет таким:

Проверяем работу if else: результат на графике

 

В этом, собственно, и заключается вся работа условий if else.

Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.

 

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

 

На этом в данной статье, все. Благодарю за внимание. В следующей статье мы рассмотрим основную структуру функций и команд в MQL4 и ошибки новичков, связанные с этой структурой.
 
Другие статьи по теме Программирование на MQL4 Вы можете просмотреть в данном содержании практических уроков по MQL.

 

Понравился материал статьи?
Избранные закладкиДобавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D

 

С уважением, Антон.

Обучающий Форекс портал SanGReal Invest
 

strelkaХотите изучить MQL4 быстро, легко и бесплатно?
MQL4 подробно и с самого нуля. Фишки, секреты и только практика
А также, СУПЕРБОНУС - разбор стратегии и программного MQL кода советника SGR


 


Вам это может быть интересно. Другие статьи нашего обучающего портала:


  • Антон — SanGReal Invest (Сангрил Инвест)

    Если у Вас появились вопросы по статье, пишите их здесь. Я Вам обязательно отвечу.
    Также, буду рад Вашей обратной связи

  • Az Za

    Тема 13. MQL4: Операторы условия «если, иначе» if else
    Опечатка в тексте, но не в программе. «….Что у нас в итоге получилось? Если (a>b), то у нас выполняется код {x=1; y=2; z=x+y;}, иначе, если (a

    • SanGReal Invest: Антон

      спасибо.
      Нет, это не специально…просто ошибка.
      Поправил, еще раз, благодарю

  • Az Za

    Раньше даже близко боялся подойти к теме программирования на форекс. А прочитал Ваши материалы — глаза открылись. Спасибо за отличное изложение и за то, что помогли и помогаете.