public void SyncPositions(Iterable <StrategyPosition> strategyPositions) { if (strategyPositions == null) { return; } if (trace) { for (var node = strategyPositions.First; node != null; node = node.Next) { var sp = node.Value; log.Trace("Received strategy position. " + sp); } } for (var current = strategyPositions.First; current != null; current = current.Next) { var position = current.Value; StrategyPosition strategyPosition; if (!this.strategyPositions.TryGetValue(position.Id, out strategyPosition)) { strategyPosition = new StrategyPositionDefault(position.Id, position.Symbol); this.strategyPositions.Add(position.Id, strategyPosition); } strategyPosition.TrySetPosition(position.ExpectedPosition); } // if( debug) log.Debug("SyncPositions() strategy positions:\n" + StrategyPositionsToString()); }
public void SetStrategyPosition(SymbolInfo symbol, int strategyId, long position) { using (positionsLocker.Using()) { StrategyPosition strategyPosition; if (!this.strategyPositions.TryGetValue(strategyId, out strategyPosition)) { strategyPosition = new StrategyPositionDefault(strategyId, symbol); this.strategyPositions.Add(strategyId, strategyPosition); } strategyPosition.SetExpectedPosition(position); } // if (debug) log.Debug("SetStrategyPosition() strategy positions:\n" + StrategyPositionsToString()); }