internal void RegisterStrategy(Strategy strategy, InstrumentList instruments, int orderRouteId) { strategy.portfolio.Parent = this.portfolio; foreach (Instrument current in instruments) { LinkedList <Strategy> linkedList; if (this.strategiesByInstrument[current.Id] == null) { linkedList = new LinkedList <Strategy>(); this.strategiesByInstrument[current.Id] = linkedList; } else { linkedList = this.strategiesByInstrument[current.Id]; } linkedList.Add(strategy); IdArray <int> idArray; int num; (idArray = this.instrumentCountTable)[num = current.id] = idArray[num] + 1; } Dictionary <IDataProvider, InstrumentList> dictionary = new Dictionary <IDataProvider, InstrumentList>(); foreach (Instrument current2 in instruments) { InstrumentList instrumentList = null; IDataProvider dataProvider = this.GetDataProvider(strategy, current2); IExecutionProvider executionProvider = strategy.GetExecutionProvider(current2); if (dataProvider.Status == ProviderStatus.Disconnected) { dataProvider.Connect(); } if (executionProvider.Status == ProviderStatus.Disconnected) { executionProvider.Connect(); } if (!dictionary.TryGetValue(dataProvider, out instrumentList)) { instrumentList = new InstrumentList(); dictionary[dataProvider] = instrumentList; } instrumentList.Add(current2); } foreach (KeyValuePair <IDataProvider, InstrumentList> current3 in dictionary) { this.framework.strategyManager.RegisterMarketDataRequest(current3.Key, current3.Value); } this.strategyByOrderId[orderRouteId] = strategy; if (this.parent != null) { this.parent.RegisterStrategy(this, instruments, orderRouteId); } }
private void RegisterInstrument(Instrument instrument) { InstrumentList instrumentList = new InstrumentList(); instrumentList.Add(instrument); IDataProvider dataProvider = this.GetDataProvider(this, instrument); IExecutionProvider executionProvider = this.GetExecutionProvider(instrument); if (dataProvider.Status == ProviderStatus.Disconnected) { dataProvider.Connect(); } if (executionProvider.Status == ProviderStatus.Disconnected) { executionProvider.Connect(); } this.framework.strategyManager.RegisterMarketDataRequest(dataProvider, instrumentList); if (this.parent != null) { this.parent.RegisterStrategy(this, instrumentList, (int)this.id); } }