Метод CloseAtStopMarket устанавливает стоп-лосс для позиции. Логика проверки на срабатывание стопа выполняется в терминале. Можно сказать, это условная заявка, которая превращается в реальный ордер типа Market только при выполнении заданных условий.
public void CloseAtStopMarket(Position position, decimal priceActivation)
position – позиция, для которой нужно установить стоп-лосс;
priceActivation – цена, при достижении которой на биржу будет выслан реальный ордер;
Пример использования можно посмотреть в коде робота: https://github.com/AlexWan/OsEngine
В данном примере, уже открытую позицию передаём в метод, где для позиции выставляется стоп приказ:
1. Проверяем, стоит ли по позиции стоп-приказ.
2. Для позиции Buy выставляем стоп-маркет приказ ниже рынка.
3. Для позиции Sell выставляем стоп-маркет приказ выше рынка.
Важно! 1
Установить стоп-лосс можно только после открытия позиции, то есть, когда ее открытый объем будет больше нуля. Для этих целей как нельзя лучше подходит событие PositionOpeningSuccesEvent. Оно сигнализирует роботу о том, что по открывающему ордеру прошла как минимум одна сделка. В обработчике этого события мы и установим стоп-лосс.
Важно! 2
При исполнении данного типа приказа, приказ CloseAtProfit отменяется, если таковой был выставлен для позиции.
Комментарии