Типы данных и переменные Mql

21 февраля 2013 - Лапоть левый

Теперь попробуем разобраться с переменными. Из школьного курса математики общее понятие о переменных у вас должно быть.

 

Самый простой пример, уравнение Y=X+2. Допустим нужно посчитать Y для X=1,X=2,X=3 и X=4, Как видим переменная с именем X может принимать разные значения, так же как и переменная с именем Y, то есть переменные можно представить в виде ящичков или полочек.Каждый такой ящичек имеет своё имя, а вот внутрь можно положить различные значения.

 

В языке MQL переменным можно давать любые имена, за исключением зарезервированых слов,таких к примеру, как операторы языка или директивы компилятора.Список зарезервированых слов можно посмотреть в учебнике MQL.

 

Небольшой совет: задавайте переменным осмысленные имена.

 

Когда в программе есть хотя бы с десяток переменных гораздо проще разобраться в коде. Например если переменная называется price_open понятно, что это какая то цена открытия, а если её назвать просто X,Y или Z,такие имена ничего не означают.

 

Переменным в MQL можно давать даже русские имена (писать имена переменных русскими буквами) но тут возникает некоторое неудобство, приходится постоянно переключать раскладку клавиатуры. Перед тем как использовать переменную , её нужно объявить, то есть сообщить компилятору что то или иное слово является именем переменной.

 

примеры обьявления переменных:

 

Double price_open;


int counter;


bool flag;


string message;


Здесь price_open,counter,flag и message это имена переменных, а double,int, bool и string это тип переменной.
Переменная типа Double это действительное число, содержащее дробную часть(попросту это десятичная дробь) количество цифр после запятой может достигать 15.

 

Примеры переменных типа Double:

 

0.1 3.75 254.2367128 и т.д В советниках это могут быть размер лота, цена и другие величины. Переменная каждого типа занимает определённое количество байт в памяти компьютера, например тип double занимает 8 байт.

 

Int- это целочисленное значение, оно может изменяться от 2 147 483 647 до -2 147 483 648 , то есть это целые числа, не имеющие дробной части.

 

пример: 1 2 35 456 871 и т.д. в программе это может быть количество ордеров, количество баров, количество попыток открытия ордера и т.д.

 

В памяти переменная типа Int занимает 4 байта.

 

Тип bool это логические переменные. могут принимать всего одно из двух значений 0 или 1, или по другому: true (истина) или false (ложь) В памяти так же занимает 4 байта.

 

Тип String - это символьная строка в коде ASCII попросту текстовая строка. Длина строки может быть от 0 до 255 символов. Символьная строка заключается в кавычки, сами кавычки в строку не входят. можно ввести в строку специальные символы, к примеру символ переноса строки. для этого перед символом n надо поставить обратную косую черту. (вот так: \n ))))

 

например:Comment ("Печать в две строки \n примерно так");

 

в результате выполнения этого оператора получим такую картинку:

 

печать в две строки 

 

Существуют и другие типы данных, но об этом позже. Я уже писал что к тому или иному вопросу мы будем периодически возвращаться. Это сделано намеренно, во первых чтобы не слишком усложнять материал, а во вторых повторение пройденного никогда не бывает лишним. Желающие могут просмотреть эти вопросы самостоятельно, всё это есть в учебнике MQL

 

Обьявление переменных

 

Приведу пример:

 

double price_open;


int start()
{
price_open=1.5522;
return(0);
}


Как видим переменную можно обьявить в начале советника, то есть снаружи всех функций. При таком обьявлении эта переменная будет доступна из любой функции советника.

 

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

 

Ещё пример:

int start()
{
double price_open=1.5522;
price_open=price_open+0.5;
return(0);
}

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

 

Ещё один момент, переменная объявлена внутри функции start(). Это означает что при попытке использовать эту переменную в других функциях компилятор выдаст ошибку. То есть переменная действует только внутри той функции, в которой она была объявлена.

 

 

 Назад

 

 

TEXT.RU - 100.00%

Комментарии (0)

Нет комментариев. Ваш будет первым!

 

Яндекс.Метрика