Учебник по MQL4
Торговые операции
Программирование торговых операций
При программировании торговых операций необходимо учитывать требования и ограничения, связанные с характеристиками ордеров и правилами, принятыми в дилинговом центре, а также особенности технологии исполнения торговых приказов.
В разделе подробно рассматривается порядок проведения торговых операций и приводится достаточно примеров, поясняющих назначение всех торговых функций, с помощью которых формируются различные торговые приказы. Представлено несколько готовых к использованию скриптов, ориентированных на узкую область применения.
- Общий порядок проведения торговых операций.
Трейдер или программа на MQL4 могут только отдавать приказы на совершение торговых операций. Сами же торговые операции регистрируются на торговом сервере. Посредником между торговым сервером и программой является клиентский терминал. Некорректно составленные торговые приказы отклоняются прямо в терминале, поэтому необходимо понимать общий порядок проведения торговых операций.
- Характеристики ордеров и правила проведения торговых операций.
Торговые приказы оформляются с помощью ордеров. В ордере необходимо указать множество параметров, одна часть которых определяется текущими ценами и направлением операции, другая часть зависит от инструмента, по которому будет производиться торговая операция. Торговые приказы, поступившие на сервер, проверяются в режиме реального времени на соответствие текущей ситуации и состоянию торгового счета. Поэтому, знание правил проведения торговых операций просто необходимо.
- Открытие и установка ордеров.
Наиболее важная торговая функция - OrderSend(). Именно с ее помощью торговому серверу отсылаются приказы на открытие рыночного ордера или постановку отложенного. При этом можно сразу указать требуемые значения StopLoss и TakeProfit. Некоректное значение этих параметров, а также цены открытия и объема ордера, может приводить к получению ошибок. Важно правильно обрабатывать эти ошибки. Функция MarketInfo() позволяет свести количество таких ошибок к минимуму.
- Закрытие и удаление ордеров. Функция OrderSelect.
Закрытие рыночных ордеров производится с помощью функции OrderClose(), для удаления отложенных ордеров существует функция OrderDelete(). При отсылке приказа на закрытие или удаление ордера необходимо указать тикет этого ордера. Нужный ордер мы выберем с помощью функции OrderSelect(). Кроме того, если по некоторому финансовому инструменту имеется два встречных ордера, то их можно
закрыть одновременно, один за счёт другого, с помощью функции OrderCloseBy().
При исполнении такой торговой операции экономится один спред.
- Модификация ордеров.
Уровни TakeProfit и StopLoss можно изменять с помощью торговой функции OrderModify(). Для отложенных ордеров можно также менять уровень открытия ордера. Изменять объем для отложенных ордеров нельзя. Модификация рыночных и отложенных ордеров также налагает определенные требования на корректность этой торговой операции. При любой торговой операции крайне желательна обработка результатов этих операций, обработка ошибок.
|
|