예제 #1
0
        private void AddNewSymbolExecute()
        {
            // Check if symbol already exists in TickDetailsMap
            if (_provider.IsSymbolLoaded(NewSymbol))
            {
                // Select existing TickDetail
                SelectedTickDetail = TickDetailsCollection.First(x => x.Security.Symbol == NewSymbol);
            }
            else
            {
                // Create new tick detail's object
                MarketDataDetail tickDetail = new MarketDataDetail(new Security()
                {
                    Symbol = NewSymbol
                });

                // Add Tick Detail object to Provider's maps
                _provider.AddMarketDetail(tickDetail);

                // Select new tick detail in DataGrid
                SelectedTickDetail = tickDetail;

                // Create a new subscription request for requesting market data
                var subscriptionRequest = new SubscriptionRequest(tickDetail.Security, _provider, MarketDataType.Tick, SubscriptionType.Subscribe);

                // Raise Event to notify listeners
                EventSystem.Publish <SubscriptionRequest>(subscriptionRequest);
            }

            // Clear NewSymbol string
            NewSymbol = string.Empty;
        }
예제 #2
0
        /// <summary>
        /// Remove all symbols from scanner
        /// </summary>
        public void RemoveAllSymbols()
        {
            foreach (MarketDataDetail marketDataDetail in TickDetailsCollection.ToList())
            {
                // Create a new un-subscription request for requesting market data
                var unsubscriptionRequest = new SubscriptionRequest(marketDataDetail.Security, _provider, MarketDataType.Tick, SubscriptionType.Unsubscribe);

                // Raise Event to notify listeners
                EventSystem.Publish <SubscriptionRequest>(unsubscriptionRequest);

                _provider.RemoveMarketInformation(marketDataDetail.Security.Symbol);
            }
        }