Обучение MQL II Урок №2
Компания "Fxtest"
Халхальян Артур
техническая поддержка трейдеров
artur@fxtest.ru
Здравствуйте, дорогие читатели. Сегодня мы детально разберем типы переменных, познакомимся с операторами присваивания и инструкцией if - then.
Онлайн обучение: финансы, форекс, IT и все остальное
Интернет открывает новые возможности для получения новых знаний и компетенций по любой тематике: будь то финансовые рынки и форекс-трейдинг, или любая другая область знаний и умений (программирование, иностранные языки, школьные предметы, и тд и тп).
SEDU.ME - дает возможность оперативного обмена знаниями на взаимовыгодных условиях: продавай свое компетенции и (или) получи новые не выходя из дома. Все, что нужно - компьютер с выходом в интернет. Все остальное (видео-связь и связь голосом, удобное общее учебное поле, вспомогательные инструменты и удобную систему приема и отправки платежей в режиме онлайн) предоставит образовательный сервис SEDU.ME.
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. Мы рассмотрим обращение к массивам котировок и научимся открывать позиции.