CloseAtStop в OsEngine.

CloseAtStop в OsEngine.

Метод CloseAtStop устанавливает стоп-лосс для позиции. Логика проверки на срабатывание стопа выполняется в терминале. Можно сказать это условная заявка, которая превращается в реальный ордер только при выполнении заданных условий.

public void CloseAtStop(Position position, decimal priceActivation, decimal priceOrder, string signalType)
  1. position – позиция, для которой нужно установить стоп-лосс;
  2. priceActivation – цена, при достижении которой на биржу будет выслан реальный ордер;
  3. priceOrder – цена для исполняющего ордера;
  4. signalType – тип сигнала на закрытие позиции;

Допустим нам нужна такая логика выхода: после открытия позиции, она будет закрыта либо по стоп-лоссу, либо по времени.

  1. Подписываемся на событие успешного открытия позиции.
  2. В обработчике этого события рассчитываем цену активации ордера и цену для самой заявки.
  3. Устанавливаем стоп-лосс для позиции, вызывая метод CloseAtStop.
  4. По истечению заданного времени закрываем позицию по рынку.

Важно! 1

Установить стоп-лосс можно только после открытия позиции, то есть, когда ее открытый объем будет больше нуля. Для этих целей как нельзя лучше подходит событие PositionOpeningSuccesEvent. Оно сигнализирует роботу о том, что по открывающему ордеру прошла как минимум одна сделка. В обработчике этого события мы и установим стоп-лосс.

public void CloseAtStop(Position position, decimal priceActivation, decimal priceOrder)

Перегрузка метода, в которой не используется параметр signalType.

Важно! 2

При исполнении данного типа приказа, приказ CloseAtProfit отменяется, если таковой был выставлен для позиции.

16:53
248
FAQ

Комментарии

Нет комментариев. Ваш будет первым!