- •Внешние переменные
- •Глобальные переменные
- •Формальные параметры функций
- •Операции отношения
- •Логическая операция и (&&)
- •Побитовые операции
- •Объединение арифметических и побитовых операций с операцией присваивания
- •Формат оператора цикла while:
- •Формат оператора цикла for:
- •Оператор досрочного завершения цикла break
- •Формат оператора switch:
- •Формат функции OrderSelect():
- •IsStopped(): как проверить, что эксперт был остановлен
- •Выдерживаем паузу между торговыми операциями
- •Index - индекс элемента
- •Реализация трейлинг стопа в эксперте
- •Функция iAlligator() - Аллигатор Билла Вильямса (Alligator)
- •IGator() - определение периодов сна и бодроствования Аллигатора с помощью Gator Oscillator
- •Функция iGator()
- •IFractals(): фракталы б.Вильямса - первое измерение рынка
- •IAo(): Волшебный Осциллятор Билла Вильямса (Awesome Oscillator - ao) - второе измерение рынка
- •Сигналы Волшебного осциллятора (Awesome Oscillator)
Побитовые операции
Дополнение до единицы. В каждом разряде единица заменяется нулем, а нуль - единицей. Пример:
int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 b = ~b; // переменная b стала равна 01110010, т.е. 114
Сдвиг вправо. Двоичное представление первого операнда сдвигается вправо на количество разрядов, равное значению второго операнда. Освобождающиеся "левые" разряды будут заполняться нулями. Пример:
int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 b = b >> 2; // переменная b стала равна 00100011, т.е. 67
Сдвиг влево. Двоичное представление первого операнда сдвигается влево на количество разрядов, равное значению второго операнда. Появившиеся "правые" разряды будут заполняться нулями. Пример:
int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 b = b << 2; // переменная b стала равна 1000110100, т.е. 564
Побитовая операция И. Результат будет содержать единицу в тех разрядах, где соответствующие разряды первого и второго операнда содержат единицу. В других случаях соответствующий бит результата будет равен 0. Пример:
int a = 25; // начальное значение переменной a равно 25, // что в двоичном представлении равно 00011001 int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 a = a & b; // переменная a стала равна 00001001, т.е. 9
Побитовая операция ИЛИ. Результат будет содержать ноль в тех разрядах, где соответствующие разряды первого и второго операнда содержат ноль. В других случаях соответствующий бит результата будет равен 1. Пример:
int a = 25; // начальное значение переменной a равно 25, // что в двоичном представлении равно 00011001 int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 a = a | b; // переменная a стала равна 10011101, т.е. 157
Побитовая операция исключающее ИЛИ. Значение результирующего выражения будет содержать 1 в тех разрядах, в которых x и y имеют разные двоичные значения, и 0 - во всех остальных разрядах. Пример:
int a = 25; // начальное значение переменной a равно 25, // что в двоичном представлении равно 00011001 int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 a = a ^ b; // переменная a стала равна 10010100, т.е. 148
Объединение арифметических и побитовых операций с операцией присваивания
В прошлых выпусках мы рассмотрели арифметические и побитовые операции. Ранее я рассказал об операторе присваивания.
В синтаксисе MetaQuotes Language 4 - языка написания советников - есть возможность объединить арифметические и побитовые операции с операцией присваивания.
