Оценить:
 Рейтинг: 0

Основы MQL5 программирования. Разработка технических индикаторов и торговых советников

Год написания книги
2021
<< 1 2 3 4 5 6 >>
На страницу:
5 из 6
Настройки чтения
Размер шрифта
Высота строк
Поля

3.2 Область видимости и время жизни переменных

Переменные в рамках MQL5 программ могут быть разделены на три типа

– Локальные переменные – это переменные, которые созданы внутри какой-либо функции. Они будут видимы только внутри этой функции и при ее окончании – они будут уничтожены для повторного создания при следующей итерации. Локальные переменные будут видны только далее по коду после их создания.

Пример 4. Пример локальной переменной

void Function ()
{
int Variable = 12345;
double SecondVariable = 1.23;
bool ThirdVariable = true;
}

– Глобальные переменные – это переменные, которые созданы на одном уровне с функциями, то есть на глобальном уровне. Они будут существовать до момента деинициализации приложения.

– Глобальные переменные терминала – это переменные, которые могут быть созданы в любом приложении, но их время жизни не заканчивается деинициализацией создавшего их приложения. Глобальные переменные терминала используются для общего использования из разных приложений. Базовым примером работы с глобальными переменными терминала может быть использование выгрузки сложных и объемных расчетов из одного продукта, их отправки в глобальные переменные. Далее этими данными смогут пользоваться все остальные продукты. Это хороший инструмент оптимизации работы масштабных проектов, состоящих из нескольких десятков приложений, работающих в одной связке.

3.3 Операции и выражения

– Выражения – Выражения оканчиваются точкой с запятой. Выражения могут быть длинными или короткими и не зависимо от величины выражения, любое будет оканчиваться точкой с запятой. Одно выражение может занимать несколько строк или наоборот в одной строке может быть несколько выражений.

– Операции – Все операции всегда следую друг за другом слева на право. Операции имеют свой уровень приоритета. Операции с более высоки приоритетом, будут выполняются первыми. Приоритет операций умножения и деления выше, чем в операциях сложения и вычитания, как и в стандартных правилах математики. Компилятор использует приоритет операторов для определения порядка обработки выражений.

– Арифметические операции – это любые арифметические операции, связанные с умножением или делением, а также сложением или вычитанием.

Пример 5. Логические операции

Сумма величин a = b + c;
Вычитание величин a = b – 10;
Умножение величин a = b * 2;
Частное от деления a = b / c;
Остаток от деления minutes = time % 60;

– Инкремент (увеличение на единицу) и декремент (уменьшение на единицу), этот тип операций также можно отнести к арифметическим, однако они заслуживают, чтобы мы рассмотрели этот тип операций отдельно. Это очень популярные операции, они легко заменяются арифметическими или операциями присваивания, однако использование инкремента и декремента обычно удобнее.

Пример 6. Инкременты

//синтаксис операций инкремента и декремента
++a// префиксный инкремент (преинкремент)

a++; // постфиксный инкремент (постинкремент)

– a; // префиксный декремент (предекремент)

a – ; // постфиксный декремент (постдекремент)

– Операции присваивания – это операции, позволяющие присвоить некоторое значения, выполняются над двумя операндами, причем левый может представлять только, например, переменную.

Пример 7. Присваивание

Присваивание значения a переменной b a = b;

Следующие операции объединяют арифметические или побитовые операции с операцией присваивания:

Пример 8. Арифметика с присваиванием

Увеличение значения переменной a на b a += b;
Уменьшение значения переменной a на b a -= b;
Умножение значения переменной a на b a *= b;
Деление значения переменной a на b a /= b;
Остаток от деления значения переменной a на b a %= b;

– Операции отношения – отношения используются для сравнения двух значений между собой. Этими значениями могут быть числа, переменные, константы, результаты вычислений выражений. В операциях отношений может быть два варианта: true, представлено любым ненулевым значение (ИСТИНА); false, представлено значением 0 (ЛОЖЬ).

Пример 9. Отношение переменных

true, если a равно b a == b;
true, если a не равно b a!= b;
true, если a меньше b a <b;
true, если a больше b a> b;
true, если a меньше или равно b a <= b;
true, если a больше или равно b a> = b;

– Логические операции – этот тип похож на операции отношения, но имеет более сложную структуру. Если операторы отношения используются для проверки условия: ложь или истина. Иногда, необходимо протестировать несколько условий одновременно. Например, узнать есть ли хоть одно истинное значение из множества. Также иногда нам нужно знать, является ли хоть одно из нескольких условий истинным.

Существует три вида логических операций:

— Логическое отрицание – обозначается с помощью восклицательного знака»!».

Пример 10. Логическое отрицание

if (a!= b) DoSomething ();

if (!MQLInfoInteger (MQL_TESTER)) DoSomething ();

– Логическая операция «или» – обозначается с помощью двух вертикальных линий "||». Возвращает true или выполняет последующее действие в случае выполнения одного из указанных условий. То есть необходимо выполнение хотя бы одного из условий.

Пример 11. Логическая операция «или»

if (a == 0 || b == 0) OpenNewPosition ();

– Логическая операция «и» – обозначается с помощью "&&». Используется в случаях, когда несколько условий должны быть соблюдены одновременно. То есть необходимо одновременное выполнение всех поставленных условий.

Пример 12. Логическая операция «и»

if (a == 0 && b == 0) DoSomething ();

<< 1 2 3 4 5 6 >>
На страницу:
5 из 6