Русский

Учебник по MQL4  Торговые операции

Программирование торговых операций


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

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