Можно попробовать так:
foreach (var order in secRt.Orders)
{
if (order.IsActive)
{
if (order.IsBuy)
{
if (order.OrderType == OrderType.Growth)
sec.Positions.BuyIfGreater(ctx.BarsCount-1,order.RestQuantity,order.Price,order.Slippage,order.Notes);
if (order.OrderType == OrderType.Fall)
sec.Positions.BuyIfLess(ctx.BarsCount - 1, order.RestQuantity, order.Price, order.Slippage, order.Notes);
if (order.OrderType == OrderType.Limit)
sec.Positions.BuyAtPrice(ctx.BarsCount - 1, order.RestQuantity, order.Price, order.Notes);
}
else
{
if (order.OrderType == OrderType.Growth)
sec.Positions.SellIfGreater(ctx.BarsCount - 1, order.RestQuantity, order.Price, order.Slippage, order.Notes);
if (order.OrderType == OrderType.Fall)
sec.Positions.SellIfLess(ctx.BarsCount - 1, order.RestQuantity, order.Price, order.Slippage, order.Notes);
if (order.OrderType == OrderType.Limit)
sec.Positions.SellAtPrice(ctx.BarsCount - 1, order.RestQuantity, order.Price, order.Notes);
}
}
}
Если заявка была выставлена, то на следующем пересчете мы ее находим и подтверждаем. Не представляю, правда, зачем такое может понадобиться.
Ну и как это будет работать я, естественно, не проверял. Вроде бы должно, хотя несколько смущают возможные типы ордеров. Что такое, например, OrderType.Unknown?