Суббота, 04.05.2024, 04:42 Вы вошли как Гость | Группа "Гости" | RSS | Главная | Операторы. Арифметические операции. | Мой профиль | Выход | Вход
Вы смотрели фильм-расследование Алексея Навального "Дворец президента"?
Всего ответов: 2
» Меню сайта

» РАЗНОЕ

» Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Операторы. Арифметические операции.

Составной оператор

В выпуске «Использование констант в эксперте» мы научились описывать константы и разобрались, что же в коде нашего первого эксперта означают следующие строчки:

 

 #define STATE_SQUARE 0
#define STATE_LONG 1
#define STATE_SHORT 2

 

В выпуске Внешние переменные мы научились задавать параметры эксперта, и нам стали понятны следующие строчки:

 

 extern int MAPeriod = 13;
extern double LotsNumber = 1.0;

 

Кроме локальных и статических переменных мы рассмотрели и глобальные (на уровне одного модуля) переменные, в результате приоткрылась завеса над еще двумя строчками нашего эксперта:

 

 int CurrentState;
int MyOrderTicket;

 

Теперь рассмотрим более подробно, что же в нашем эксперте делает функция init().

 

 int init()
{
//----
if (iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0) > Close[0])
CurrentState = STATE_SHORT;
else CurrentState = STATE_LONG;

MyOrderTicket = 0;
//----
return(0);
}

 

 

Как мы знаем из выпуска «Функции init(), start() и deinit()» эта функция запускается в следующих случаях:

  • после присоединения советника к графику;
  • после старта MetaTrader 4 и подгрузки исторических данных;
  • после смены инструмента или периода графика;
  • после перекомпиляции программы в редакторе MetaEditor;
  • после изменения настроек эксперта;
  • после смены торгового счета.

 

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

Пример составного оператора:

 

 if (b==3)
{
b = b + 1;
Print (b);
}

 

 

Оператор присваивания. Арифметические операции

 

Формат оператора присваивания:

 переменная = выражение;


В качестве левой части оператора присваивания может выступать также элемент массива. Вначале вычисляется выражение, которое потом присваивается переменной.

Пример оператора присваивания:

 

 b = b + 1;


 

Допустим, что перед выполнением этого оператора переменная «b» была равна 7. Тогда вначале вычисляется выражение в правой части ( 7+1 = 8 ), а затем значение этого выражение (8) присваивается переменной «b».

В выражении может использоваться несколько типов операций. Рассмотрим самый простой тип — арифметические операции:

Операция Пример
Сложение двух аргументов j + k
Вычитание второго аргумента из первого j — k
Умножение аргументов j * k
Получить частное от деления первого аргумента на второй j / k
Получить остаток от деления первого аргумента на второй j % k
Изменить знак аргумента -k

 

Вне выражений (в виде отдельного оператора) можно применять операции:

  • Увеличение аргумента на единицу: j++
  • Уменьшение аргумента на единицу: j-

 


Пример:

 

 j++; // верное выражение
 k = (j++) + 3; // неверное выражение


 

» Поиск


гороскоп
» Мини-чат

» Наш опрос
Оцените мой сайт
Всего ответов: 46

» Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • » Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Copyright MyCorp © 2024
    Бесплатный хостинг uCoz