img

Ордера. Объект Orders

Функции установки ордеров

int64 SetPending(string symbol,double volume,float price,uint8 cmd,uint8 duration,bool islock,float sl,float tp,uint trailing_dist)

Установка отложенного ордера.

Параметры:

  • string symbol - символ
  • double volume - объем
  • float price - цена открытия
  • uint8 cmd - направление открытия
  • uint8 duration - длительность
  • bool islock - флаг локированности
  • float sl - цена stop loss
  • float tp - цена take profit
  • uint trailing_dist - дистанция трейлинг-стопа

В случае успешного создания ордера возвращается уникальный идентификатор.

В ином случае возвращается 0, а код ошибки можно узнать через System.LastError.

Пример

int64 SetOCO(string symbol,float ord1_price,double ord1_volume,uint8 ord1_cmd,bool ord1_islock,float ord2_price,double ord2_volume,uint8 ord2_cmd,bool ord2_islock,uint8 duration)

Установка OCO-ордера, состоящего из двух ордеров, при активации одного из которых другой удаляется.

Параметры:

В случае успешного создания ордера возвращается уникальный идентификатор. В ином случае возвращается 0, а код ошибки можно узнать через System.LastError.

Пример

int64 SetActivation(string symbol,float activaton_price,float ord1_price,double ord1_volume,uint8 ord1_cmd,bool ord1_islock,float ord2_price,double ord2_volume,uint8 ord2_cmd,bool ord2_islock,uint8 duration,bool ord2_oco)

Установка Activation-ордера, при срабатывании которого (по цене активации) устанавливаются два отложенных (или OCO-) ордера.

Параметры:

  • string symbol - символ ордеров
  • float activaton_price - цена активации
  • float ord1_price - цена открытия первого ордера
  • double ord1_volume - объем первого ордера
  • uint8 ord1_cmd - направление открытия первого ордера
  • bool ord1_islock - флаг локированности первого ордера
  • float ord2_price - цена открытия второго ордера
  • double ord2_volume - объем второго ордера
  • uint8 ord2_cmd - направление открытия второго ордера
  • bool ord2_islock - флаг локированности второго ордера
  • uint8 duration - длительность
  • bool ord2_oco - флаг OCO для пары активизируемых ордеров

В случае успешного создания ордера возвращается уникальный идентификатор.

В ином случае возвращается 0, а код ошибки можно узнать через System.LastError.

Функции изменения параметров ордеров

bool ModifyPending(int64 order,double volume,float price,uint8 cmd,uint8 duration,bool islock,float sl,float tp,uint trailing_dist)

Изменение параметров существующего отложенного ордера.

Параметры:

  • int64 order - идентификатор ордера
  • double volume - объем
  • float price - цена открытия
  • uint8 cmd - направление открытия
  • uint8 duration - длительность
  • bool islock - флаг локированности
  • float sl - цена stop loss
  • float tp - цена take profit
  • uint trailing_dist - дистанция трейлинг-стопа

В случае успешной модификации ордера функция возвращает true. В ином случае возвращается false, а код ошибки можно узнать через System.LastError.

bool ModifyOCO(int64 order,float ord1_price,double ord1_volume,uint8 ord1_cmd,bool ord1_islock,float ord2_price,double ord2_volume,uint8 ord2_cmd,bool ord2_islock,uint8 duration)

Изменение параметров существующего OCO-ордера

Параметры:

  • int64 order - идентификатор ордера
  • float ord1_price - цена первого ордера
  • double ord1_volume - объем первого ордера
  • uint8 ord1_cmd - направление открытия первого ордера
  • bool ord1_islock - локированность первого ордера
  • float ord2_price - цена второго ордера
  • double ord2_volume - объем второго ордера
  • uint8 ord2_cmd - направление открытия второго ордера
  • bool ord2_islock - локированность второго ордера
  • uint8 duration - длительность

В случае успешной модификации ордера функция возвращает true. В ином случае возвращается false, а код ошибки можно узнать через System.LastError.

bool ModifyActivation(int64 order,int64 linked1,int64 linked2,float activaton_price,float ord1_price,double ord1_volume,uint8 ord1_cmd,bool ord1_islock,float ord2_price,double ord2_volume,uint8 ord2_cmd,bool ord2_islock,uint8 duration,bool ord2_oco)

Изменение параметров существующего Activation-ордера

Параметры:

  • int64 order - идентификатор ордера
  • int64 linked1 - идентификатор первого ордера 2-го уровня
  • int64 linked2 - идентификатор второго ордера 2-го уровня
  • float activaton_price - цена активации
  • float ord1_price - цена первого ордера
  • double ord1_volume - объем первого ордера
  • uint8 ord1_cmd - направление открытия первого ордера
  • bool ord1_islock - локированность первого ордера
  • float ord2_price - цена второго ордера
  • double ord2_volume - объем второго ордера
  • uint8 ord2_cmd - направление открытия второго ордера
  • bool ord2_islock - локированность второго ордера
  • uint8 duration - длительность
  • bool ord2_oco - флаг OCO для пары активизируемых ордеров

В случае успешной модификации ордера функция возвращает true. В ином случае возвращается false, а код ошибки можно узнать через System.LastError.

Для модификации после срабатывания Activation-ордера с включенным флагом OCO в функцию ModifyActivation нужно передавать параметры order=0 и activaton_price=0.

После срабатывания Activation-ордера с выключенным флагом OCO, ордера 2-го уровня модифицируются независимо друг от друга. Для изменения каждого из них, необходимо вызывать функцию ModifyActivation с order=0, ord2=0, activaton_price=0, ord2_price=0, ord2_volume=0.

Дополнительные функции и свойства для работы с ордерами

bool Delete(int64 order)

Закрытие указанного ордера по его идентификатору. В качестве результата возвращается флаг успеха. В случае неудачи код ошибки можно узнать через System.LastError.

bool Select(int64 sel,int mode)

Осуществляет выбор ордера для дальнейшего обращения к его свойствам.

Параметры:

int64 Link(uint num)

Получение id для связанных ордеров второго уровня, где num - порядковый номер связанного ордера.

Свойства Orders

Ордер должен быть предварительно выбран с помощью функции Select().

  • int Total - количество установленных ордеров (предварительный вызов функции Select не нужен)
  • int64 ID - идентификатор ордера
  • string Symbol - символ ордера
  • uint16 Direction - направление ордера
  • uint16 Type - тип ордера
  • uint16 SubType - подтип ордера
  • bool IsActive - флаг активности ордера
  • double Volume - объем
  • float Price - цена открытия
  • float SL - цена stop loss
  • float TP - цена take profit
  • datetime OpenTime - время открытия
  • datetime ActTime - время активации
  • bool IsLimit - флаг лимитного ордера (иначе стоповый ордер)
  • uint16 Duration - длительность
  • bool IsLock - флаг локированости
  • int64 OCO - ссылка на парный OCO-ордер
  • int64 DealID - ссылка на сделку
  • uint TrailingDistance - дистанция трейлинга
  • string Currency - символ ордера (свойство является устаревшим)