Mikhail Sukhov Стратегий по одной и той же бумаге может быть несколько. Если у Вас не так, используйте Trader.Positions. Если же все таки так, то надо самостоятельно где-то в своем коде восстанавливать текущую позицию.
Это мне понятно, мне непонятно:
как в своем коде указать стратегии, что она уже имеет позицию по бумаге и должна ее дальше "вести", в соответствии с заложенной в стратегии логикой.
Я ожидал нечто подобное:
Codevar pos = _trader.Positions.FirstOrDefault(p => p.Security.Code == _secCode);
_strategy = new SmaStrategy();
_strategy.PositionManager.Init( pos != null ? pos.CurrentValue : 0 );
// Или
_strategy.PositionManager.StartPosition = pos != null ? pos.CurrentValue : 0;
но так нельзя, подскажите, пожалуйста, как можно.
Сохраненной информации о старых трейдах по этой бумаге у меня, допустим, нет.
Закрывать позицию вручную в терминале и потом открыть с помощью стратегии, конечно можно, но это не подходящий вариант для меня.
Можно, наверное, MyTrade создать и добавить в Trades, но что-то не пойму как, да и способ это кривой.
Вариант со _strategy.PositionManager.StartPosition мне кажется наиболее правильным. Для вычисления текущей позиции нужно будет лишь к вычисленному по трейдам числу прибавлять это значение. Так, пожалуй, и сделаю.