Positions.Оpen
Посылаем запрос на открытие позиции с заданными параметрами.
Существует два варианта вызова метода:
int Positions.Open(symbolName, positionType, volume, takeProfit, stopLoss, takeProfitByPips,
stopLossByPips, label, out positionId, isJustCheck = false, isAsync = false)
Входные параметры:
Параметр | Тип | Описание |
symbolName | string | Название символа |
positionType | PositionType | BuyилиSell |
volume | double | Объем позиции в лотах |
takeProfit | double | Тейк профит – уровень рыночной цены, при достижении которой следует закрыть позицию для фиксации прибыли. Указывается в котируемой валюте. |
stopLoss | double | Стоп лосс - уровень рыночной цены, при достижении которой следует закрыть позицию для фиксирования убытков. Указывается в котируемой валюте. |
takeProfitByPips | Int | Тейк профит. Уровень цены в пунктах для фиксации прибыли. |
stopLossByPips | Int | Стоп лосс. Уровень цены в пунктах для фиксации убытков. |
positionId | outint | В параметре можно задать переменную, в которую после успешного открытия позиции будет записан уникальный идентификатор открытой позиции. Параметр работает только для синхронного режима. |
isJustCheck | bool | Режим проверки (включен или выключен). При включенном режиме запрос на открытие позиции не отправляется, а только проверяется возможность открытия с такими параметрами. По умолчанию выключен = false |
isAsync | bool | Асинхронный режим (включен или выключен). По умолчанию выключен = false |
int Positions.Open(ref position, isJustCheck = false, isAsync = false)
Входные параметры:
Параметр | Тип | Описание |
position | Объект, который содержит все параметры операции для открытия позиции | |
isJustCheck | bool | Режим проверки (включен или выключен). При включенном режиме запрос на открытие позиции не отправляется, а только проверяется возможность открытия с такими параметрами. По умолчанию выключен = false |
isAsync | bool | Асинхронный режим (включен или выключен). По умолчанию выключен = false |
Возвращаемое значение:
При isJustCheck= true
Возвращает код результата выполнения операции:
0 | Проверка на возможность открытия прошла успешно. Проверка происходит на стороне клиента |
-1 | Проверка не прошла |
При isAsync= false (синхронный режим по умолчанию), возвращает код результата выполнения операции:
0 |
Отложенный ордер успешно открыт |
В случае, если произошла ошибка возвращает код ошибки сервера |
Если в out параметр positionId передано название переменной и позиция успешно открыта, то в эту переменную будет записан уникальный идентификатор открытой позиции.
При isAsync= true (асинхронный режим)
0 |
Запрос на установку отложенного ордера успешно отправлен на сервер. Не означает, что отложенный ордер уже установлен или обязательно будет установлен. |
В случае, если произошла ошибка возвращает код ошибки, полученный на клиенте. Коды совпадают с кодами ошибки сервера. |
Использование out параметра positionId при асинхронном режиме не имеет смысла. Всегда будет возвращать -1
Пример:
/*
Открываем позицию на покупку,по основному символу робота, объемом 0.1 лота,
без установки TP/SL, с установленной значением метки позиции MyLabel.
*/
string MyLabel="MyPosition";
int PositionId;
int err = -1;
err = Positions.Open(Symbol.SymbolName, PositionType.Sell, Lot, 0, 0, 0, 0, MyLabel, out positionId);
if (err != 0) {
msg= DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss:fff") + " Failed, ServerErrorCode = " + err.ToString();
}