Основы языка MQL4
В этом разделе представлены основные понятия, на которых построен язык программирования
MQL4:
- Некоторые основные понятия
Описываются такие понятия, как "тик" (изменение цены), "управление" в алгоритме, "комментарий" в программе. Главное событие при торговле на финансовых рынках - изменение цены. Поэтому тик является важным событием, которое запускает основные механизмы работы MQL4-программ. Что делать по приходу каждого нового тика, какие действия предпринимать - здесь уже на первый план выходит управление. Но не забывайте комментировать свой код.
- Константы и переменные
Вводятся понятия константы и переменной, объясняется разница между ними. Как следует из названия, константа - это нечто неизменное, раз и навсегда заданное. В отличие от константы, переменная - это некоторый объект программного кода, который может изменять свое содержимое. Невозможно написать программу, не используя неизменные объекты (константы) и/или изменяемые в процессе работы программы объекты (переменные).
- Типы данных
В любом языке программирования используются определенные типы данных. Тип переменной выбирается исходя из ее назначения. Как объявить переменную, как инициализировать (задать начальное значение)? Неправильный выбор типа для переменной может впоследствии затруднить работу программы или даже привести к ошибочным действиям.
- Операции и выражения
Операции производят действия над операндами. Какие существуют виды операций, для чего требуется приведение типов, каковы особенности операций с целыми числами? Почему нужно помнить о приоритете одного типа данных над другим? Не зная особенностей некоторых операций, можно сделать неочевидные ошибки.
- Операторы
Операторы, простые и составные. Не всегда необходимое действие можно выполнить одним простым оператором. Если требуется, чтобы группа операторов выполнялась как один большой оператор, то эту группу заключают в один составной оператор. Требования и примеры использования.
- Функции
Необходимость получения понятного и простого кода приводит нас к понятию Функция. Для того чтобы функцию можно было использовать из разных мест программы, требуется передать ей Параметры функции. Рассмотрим процесс создания пользовательской функции. Приводятся примеры использования стандартных функций.
- Виды программ
Скрипты, индикаторы и эксперты - разные варианты MQL4 программ, которые позволяют охватить практически весь класс задач для торговли на финансовых рынках. Необходимо понимать назначение каждого типа программы, чтобы лучше пользоваться терминалом MetaTrader 4.
Что нового в MQL5
В MQL5 вся логика программы строится на обработке событий – с помощью функций-обработчиков событий можно писать торговые алгоритмы, создавать пользовательский интерфейс, собирать и визуализировать результаты оптимизации. При этом количество событий увеличилось, и наиболее важными для алготрейдинга являются следующие пять:
- NewTick – возникает при поступлении новых котировок и обрабатывается в советниках функцией OnTick()
- Calculate – создается только для индикаторов при любом изменении ценовых данных и обрабатывается функцией OnCalculate()
- Trade – генерируется при завершении торговой операции на торговом сервере и обрабатывается функцией OnTrade()
- TradeTransaction – отправлется торговым сервером в терминал при изменениях на торговом счете и обрабатывается функцией OnTradeTransaction()
- BookEvent – сообщает об изменениях стакана цен и обрабатывается функцией OnBookEvent().
Разработчики торговых роботов оценят возможности нового тестера, которые описаны в статьях и документации. Среди наиболее интересных отметим следующие преимущества:
- Автоматическая загрузка истории и синхронизация баров по всем таймфреймам – вся необходимая для тестирования история скачивается терминалом автоматически.
- Использование реальных тиков при тестировании – теперь проверить свою торговлю на истории можно максимально точно. Эмуляция поступления тиков по всем символам.
- Мультивалютное тестирование позволяет создавать стратегии, которые торгуют на нескольких инструментах. При этом корректно синхронизируются тики и бары по всем символам, точно моделируется торговое окружение, включая спреды, маржинальные требования и расчет прибыли в нужной валюте депозита.
- Функции OnTimer() и Sleep() корректно работают в тестере и позволяют провести их отладку.
- Мультипоточный тестер используют все вычислительные ядра процессора и позволяет провести оптимизацию на тысячах агентах из MQL5 Cloud Network.