Сработавшая стоп заявка не изменяет, Position стратегии.
StockSharp_4.2.3.7_Sources
1. Создаю Ордер и подписываюсь на его событие WhenNewTrades
Код
var order = this.BuyAtLimit(pLevel + this.Security.PriceStep); //открываем лонг
order
.WhenNewTrades()
.Do(ProcessOrder)
.Apply(this);
this.RegisterOrder(order);
далее создаю связанную стоп заявку,
Код
private void ProcessOrder(IEnumerable<MyTrade> trades)
{
var t = trades.FirstOrDefault();
var BuyDir = t.Order.Direction == Sides.Buy;
var orStopOrder = new Order
{
Type = OrderTypes.Conditional,
Volume = t.Trade.Volume,
Price = BuyDir ? (t.Order.Price - 350) : (t.Order.Price + 350), //цена исполнения стопа
Portfolio = Portfolio,
Security = Security,
Direction = BuyDir ? Sides.Sell : Sides.Buy,
Comment = "Placed by TradingTrainer",
ExpiryDate = DateTime.MaxValue,
Condition = new QuikOrderCondition()
{
Type = QuikOrderConditionTypes.LinkedOrder,
LinkedOrderPrice = BuyDir ? (t.Order.Price + 300) : (t.Order.Price - 300), //лимит
LinkedOrderCancel = false,
StopPrice = BuyDir ? (t.Order.Price - 150) : (t.Order.Price + 150), //стоп цена
ActiveTime = null,
},
};
this.RegisterOrder(orStopOrder);
}
Значит, стопы ставятся прекрасно, но при срабатывании стопа Position стратегии не изменяется.
Получается что фактически позиции нет, а Position == осталось тем же.