MetaQuotes Language II - учимся программировать. Урок №2
Дата: 3.3.07 | Раздел: MQL программирование
MetaQuotes Language II - учимся программировать. Урок №2Обучение MQL II Урок №2
Компания "Fxtest" Халхальян Артур техническая поддержка трейдеров artur@fxtest.ru
Здравствуйте, дорогие читатели. Сегодня мы детально разберем типы переменных, познакомимся с операторами присваивания и инструкцией if - then.
2.1 Переменные числового типа
Переменные, как Вы знаете, нужны для хранения какой-либо информации, с возможностью в любой момент к ней обратиться или изменить ее. Переменные числового типа, по логике хранят числа. var: K(0),N(0); //Внутренние переменные K и N, поумолчанию их значения равно 0. //Это переменные числового типа, т.к. поумолчанию они равны указанному числу //окончание описания переменных, как и любую другую инструкцию MQL // заканчивает <;>. Если Вы заметили перед каждой строчкой стоит двойной слеш <//> //так обозначаются однострочные комментарии /* Это уже обычный, полнострочный комментарий */ { K=1; // присваивание осуществляется обычным знаком равенства <=> N=10*2; //в правой части могут быть записаны математические выражения с четырьмя //основными математическими действиями +, -, *, / K=N+5; N=(bid+ask)/2; K=K+10; /* Математически выражение не верно, т.к. правая часть не равна левой. Практически в любом языке программирования, включая MQL, такая операция присваивания абсолютно нормальна. После этого выражения переменная K увеличится на 10. Для лучшего понимания этого момента, можете считать, что до знака равенства стоит новое значение переменной (которое мы хотим получить), а после старое значение. Т.е. K=K+10, новое значение K равно старое плюс 10. */ }; Вы можете скопировать весь текст в Meta Editor, от слова var до закрывающей фигурной скобки вместе с описаниями, т.к они все закомментированы.
2.2 Переменные строкового типа
var: string1("text"), string2("toge text"),string3(" ") ; // переменные строкового типа, т.к. поумолчанию равны текстовой строке //название переменной может содержать в себе цифры, но название переменной не может начинаться с цифры { string3="slovo"; string3=string1+string2; /* Для работы с текстовыми строками имеется всего один строковый оператор, обозначается <+> переменная string3 , будет равна " text toge text " */ };
2.3 Относительные операторы
Используются для сравнения двух значений одинакового типа. Первое значение сравнивается со вторым, в результате чего формируется логическое значение True (истина) или False (ложь). Меньше - '<' , больше - '>', равно - '=' , не равно - '<>', меньше или равно - '<='; больше или равно - '>='.
2.4 Инструкция if-then
Наверное, нет ни одного торгующего эксперта, который не имеет этой инструкции. Т.к. ситуация на рынке все время меняется нужно все время что то с чем то сравнивать или проверять. Для этого и используется эта инструкция. If (условие) then (действие происходящее при истинности условия) else (действие происходящее при ложности условия) else - это необязательная часть инструкции Пример: If k>n then k=k+1; //1й If k>b then k=k+1 else k=k-1; //2й Заметьте во втором примере после первого действия (a=a+1) нет точки с запятой, т.е. перед else <;> ставить не надо. Если нужно исполнить несколько действий то можно использовать конструкцию begin:end; или {:.}; Пример: If k>b then {k=k+1; b=b-1;}; If k>b then {a=a+1; b=b-1;} else {k=k-1; b=b+1;};
2.5 Переменные логического типа
Эти переменные могут иметь всего 2 значения True (истина) или False (ложь). Они используются как флаги разрешающие что-то или запрещающие. С переменными логического типа работают логические операторы: and, or, not. Var: k(True),n(false); { k = FreeMargin >= 1000; If not k then exit; }; Происходит принудительный выход из эксперта, если свободная маржа меньше или равна 1000. Мы можем также писать (if k<>True) или (if k=False) и все это будет иметь один смысл. Вместо того, что бы после if писать логическую переменную и проверять ее на равенство true, можно просто написать переменную, а вместо проверки на равенство False, перед переменной ставится логический оператор not, как в нашем случае. If k>0 and b>0 then exit; Оператор and(И) группирует условия, действие после then выполнится только при истинности всех условий. If k>0 or b>0 then exit; Оператор or(или) выбирает хотя бы одно истинное условие. Т.е. если любое из двух переменных больше 0 то действие выполнится. Оператор not(не), применяется для логических переменных. Для переменных числового типа используется относительный оператор не равно (<>) В следующем выпуске мы начнем более специализированное изучение MQL. Мы рассмотрим обращение к массивам котировок и научимся открывать позиции.
Материал предоставлен : http://www.forextimes.ru/magazine
Cтатья опубликована на сайте "Форекс форум. Торговля на Forex. Cообщество трейдеров": http://youfx.ru
Адрес статьи: http://youfx.ru/modules/myarticles/article_storyid_2.html |