– Строки – Тип данных для обозначения текстовых строк.
– string – текстовые строки в программе. Может быть применен, например, для записи комментария у ордера, для текстовых меток в панелях, для текста в кнопках и т. д.
– С плавающей точкой – это типы данных применяемых для чисел со знаком после запятой, то есть для представления значений с дробной частью. Могут использоваться для выражения объема, цены и т. д.
– double / float – рассмотрим одновременно оба типа, та как разница исключительно в размерах этих типов данных. float – занимает 4 байта памяти, double – занимает 8 байт в памяти. Тип double применяется чаще чем float, я советую использовать этот тип.
– Цвет – тип данных для хранения информации о цвете.
– color – тип данных для обозначения цвета любого элемента, занимает 4 байта памяти, обозначается в RGB формате. Могут быть представлены: литерально, целочисленно и с помощью имени web-цветов. Я обычно использую набор web-цветов. Вы можете найти его в справочнике MQL5.
Пример 2. Варианты значений переменных типа color
// – - литералы
C«192,192,192» – Серебряный
//названия цветов
clrSilver – Серебряный
// – - целочисленные представления
c0c0c0 – Серебряный
– Дата и время – тип данных для хранения информации о дате и времени.
– datetime – обозначение даты или времени в программе, начиная с 1 января 1970 года. Занимает 8 байт в памяти. Может использоваться для определения времени открытия или закрытия ордера, экспирации отложенных ордеров (то есть время истечения отложенного ордера, можно создать отложенный ордер с существованием ограниченного времени). Также этот тип данных может использоваться для регулирования свеч, то есть время открытия и закрытия.
– Перечисления – возможность выбора одного из множества вариантов в выпадающем списке.
– enum – тип данных всегда имеет размер 4 байта в отличие от С++, поэтому количество перечислений может быть отграничено объемом переменной. Используется для перечисления вариантов, например, выбор таймфрейма. Для того чтобы что бы выбрать один из вариантов все возможные варианты должны быть перечислены.
Пример 3. Варианты значений переменных типа enum
// – -Пример 1.Перечисление ENUM_TIMEFRAMES хранит в себе список таймсерий торгового терминала.
ENUM_TIMEFRAMES SignalPeriod = PERIOD_D1;
// – -Пример 2. Если тип позиции определен как длинная позиция, закроем ее.
POSITION_TYPE_BUY – это значение enum POSITION_TYPE для функции PositionGetInteger (…);
// – —
(PositionGetInteger (POSITION_TYPE) == POSITION_TYPE_BUY) {
ClosePosition (PositionTicket);
3.2 Область видимости и время жизни переменных
Переменные в рамках MQL5 программ могут быть разделены на три типа
– Локальные переменные – это переменные, которые созданы внутри какой-либо функции. Они будут видимы только внутри этой функции и при ее окончании – они будут уничтожены для повторного создания при следующей итерации. Локальные переменные будут видны только далее по коду после их создания.
Пример 4. Пример локальной переменной
void Function ()
{
int Variable = 12345;
double SecondVariable = 1.23;
bool ThirdVariable = true;
}
– Глобальные переменные – это переменные, которые созданы на одном уровне с функциями, то есть на глобальном уровне. Они будут существовать до момента деинициализации приложения.
– Глобальные переменные терминала – это переменные, которые могут быть созданы в любом приложении, но их время жизни не заканчивается деинициализацией создавшего их приложения. Глобальные переменные терминала используются для общего использования из разных приложений. Базовым примером работы с глобальными переменными терминала может быть использование выгрузки сложных и объемных расчетов из одного продукта, их отправки в глобальные переменные. Далее этими данными смогут пользоваться все остальные продукты. Это хороший инструмент оптимизации работы масштабных проектов, состоящих из нескольких десятков приложений, работающих в одной связке.
– Выражения – Выражения оканчиваются точкой с запятой. Выражения могут быть длинными или короткими и не зависимо от величины выражения, любое будет оканчиваться точкой с запятой. Одно выражение может занимать несколько строк или наоборот в одной строке может быть несколько выражений.
Читать дальше