private PositionManager GetPositionManager(Strategy strategy) { var manager = _managers[strategy.Id]; if (manager == null) { if (strategy is InstrumentStrategy iss && iss.IsInstance) { manager = GetPositionManager(iss.Parent.Id); _managers[strategy.Id] = manager; } else { manager = new PositionManager(strategy.Portfolio); } }
public PositionManager GetPositionManager(int strategyId, bool createNew = true) { var manager = _positionManagers[strategyId]; if (manager != null) { return(manager); } if (createNew) { var strategy = _framework.StrategyManager.FindStrategy(strategyId); if (strategy == null) { //OrderAgent Strategy manager = new PositionManager(GetLastMarketCloseTime()); _positionManagers[strategyId] = manager; return(manager); } return(GetPositionManager(strategy)); } return(null); }