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;
}
}