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

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