Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXI): Отложенные торговые запросы - открытие позиций по условиям"

 

Опубликована статья Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXI): Отложенные торговые запросы - открытие позиций по условиям:

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

Вкратце, что это даст? Данный функционал библиотеки позволит пользователю самостоятельно программно создавать условия, при выполнении которых будет отсылаться торговый приказ на сервер.
Как пример:

  1. При наступлении или превышении некоего времени, и при условии что цена стала ниже заданного значения, открыть позицию Buy (два условия по значениям свойств символа).
  2. При превышении заданного размера прибыли закрыть часть позиции (одно условие по значению свойства аккаунта).
  3. При регистрации события закрытия позиции по стоплосс, открыть противоположную позицию (одно условие по значению свойства событий счёта).

Это всего три простых примера. Но условий и их комбинаций может быть достаточно много. На данном этапе мы будем разрабатывать контроль изменения свойств аккаунта, символа и событий, происходящих на текущем счёте. Условия из этих трёх списков можно будет задавать в любых их комбинациях.
И начнём с простого — с контроля изменений значений свойств символа и аккаунта. Контролем событий счёта и реакцией на них займёмся позже.

Чтобы объект-отложенный запрос мог работать как часть торговой логики (отсылка торговых приказов по условию), нам нужно добавить в этот объект дополнительные данные для хранения условий активации отложенного запроса и методы их контроля и обработки. Хранилищем таких данных у нас будет двумерный массив, в котором в первом измерении будет храниться номер условия (условий может быть сколь угодно), а во втором измерении — все данные условия, номер которого указан в первом измерении — тип источника условия (символ, аккаунт или событие), само условие (создадим перечисления для каждого из источников), метод сравнения (>,<,==,!=,>=,<=), контрольное значение отслеживаемого свойства и текущее его значение.

Автор: Artyom Trishkin

Причина обращения: