В выпуске "Использование констант в эксперте" мы научились описывать константы и разобрались, что же в коде нашего первого эксперта означают следующие строчки:
#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. Тогда вначале вычисляется выражение в правой части
В выражении может использоваться несколько типов операций. Рассмотрим самый простой тип - арифметические операции:
Сложение двух аргументов | |
Вычитание второго аргумента из первого | |
Умножение аргументов | |
Получить частное от деления первого аргумента на второй | |
Получить остаток от деления первого аргумента на второй | |
Изменить знак аргумента |
- Увеличение аргумента на единицу: j++
- Уменьшение аргумента на единицу: j--
j++; // верное выражение k = (j++) + 3; // неверное выражение В следующем выпуске я расскажу об операциях отношения.
Постоянный адрес статьи: "Оператор присваивания. Арифметические операции"
0 коммент.:
Отправить комментарий