Ejemplo n.º 1
0
        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);
        }