search Ничего не найдено
Главная Документация по алготрейдингу Торговые операции Отложенные ордера

PendingOrders.Open

Посылаем запрос на установку отложенного ордера с заданными параметрами.

Существует два варианта вызова метода:

int PendingOrders.Open(symbolName, oprderType, volume, price, takeProfit, stopLoss, label, out orderId, isJustCheck = false, isAsync = false)

Входные параметры

Параметр
Тип
Описание
SymbolName
string
Название символа
OrderType
oprderType
Тип отложенного ордера(buy stop, buy limit, sell stop, sell limit):
100 – Buy Limit
101 – Sell Limit
102 – Buy Stop
103 – SellStop
volume
double
Объем позиции в лотах
price
double
Цена, в котируемой валюте, по которой устанавливается отложенный ордер
takeProfit
double
Тейкпрофит. Уровень цены в котируемой валюте для фиксации прибыли.
stopLoss
double
Стоплосс. Уровень цены в котируемой валюте для фиксации убытков.
label
string
Уникальная метка отложенного ордера, которая используется для идентификации отложенного ордера, при асинхронном методе вызова функций.
orderId
out int
В параметре можно задать переменную, в которую после успешного открытия отложенного ордера будет записан уникальный идентификатор. Параметр работает только для синхронного режима.
isJustCheck
bool
Режим проверки (включен или выключен). При включенном режиме запрос на открытие отложенного ордера не отправляется, а только проверяется возможность открытия с такими параметрами.
По умолчанию выключен = false
isAsync
bool
Асинхронный режим (включен или выключен).
По умолчанию выключен = false


int PendingOrders.Open(ref order, isJustCheck = false, isAsync = false)

Входные параметры

Параметр
Тип
Описание
order
Объект, который содержит все параметры операции для установки отложенного ордера
isJustCheck
bool
Режим проверки (включен или выключен). При включенном режиме запрос на открытие отложенного ордера не отправляется, а только проверяется возможность открытия с такими параметрами.
По умолчанию выключен
= false
isAsync
bool
Асинхронный режим (включен или выключен).
По умолчанию выключен
= false


Возвращаемое значение:

При isJustCheck= true

Возвращает код результата выполнения операции: 

0
Проверка на возможность открытия прошла успешно. Проверка происходит на стороне клиента
-1
Проверка не прошла


При isAsync= false (синхронный режим по умолчанию), возвращает код результата выполнения операции: 

0
Отложенный ордер успешно установлен
В случае, если произошла ошибка возвращает код ошибки сервера

Если в out параметр orderId передано название переменной и ордер успешно установлен, то в эту переменную будет записан уникальный идентификатор установленного ордера.


При isAsync= true (асинхронный режим)

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

Использование out параметра orderId при асинхронном режиме не имеет смысла. Всегда будет возвращать -1


Пример:

// Установка отложенного BuyStop ордера на расстояние N от текущей цены

private void OpenPendingOrder(int N)
{
int orderId;
string line ="";
double price = Math.Round(Symbol.Quote.Ask + N / Math.Pow(10, Symbol.Digits), Symbol.Digits);
double takeProfit = Math.Round(price + N / Math.Pow(10, Symbol.Digits), Symbol.Digits);
double stopLoss = Math.Round(price - N / Math.Pow(10, Symbol.Digits), Symbol.Digits);

int err = PendingOrders.Open(Symbol.SymbolName, OrderType.BuyStop, 0.5, price, takeProfit, stopLoss, "TestOrderLabel", out orderId);
if (err != 0) {
line = " Failed, ServerErrorCode = " + err.ToString() + Environment.NewLine;
}
}