示例#1
0
        /// <summary>
        /// Delete symbol from scanner
        /// </summary>
        private void DeleteSymbolCommandExecute(object param)
        {
            if (WPFMessageBox.Show(_scannerWindow,
                                   string.Format("Delete symbol {0}?", (param as MarketDataDetail).Security.Symbol),
                                   string.Format("{0} Scanner", _provider.ProviderName),
                                   MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                var tickDetail = (MarketDataDetail)param;

                // Remove from Providers collection
                _provider.RemoveMarketInformation(tickDetail.Security.Symbol);

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

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

                // Try to find and to close LOB for removed tick detail
                string title = string.Format("LOB - {0} ({1})", tickDetail.Security.Symbol, _provider.ProviderName);
                LimitOrderBookWindow lobWindow = (LimitOrderBookWindow)FindWindowByTitle(title);
                if (lobWindow != null)
                {
                    lobWindow.DataContext = null;
                    lobWindow.Close();
                }
            }
        }
示例#2
0
        /// <summary>
        /// Show LOB for current TickDetail
        /// </summary>
        /// <param name="param">current TickDetail</param>
        private void ShowLimitOrderBookExecute(object param)
        {
            SelectedTickDetail = (MarketDataDetail)param;
            string title = string.Format("LOB - {0} ({1})", SelectedTickDetail.Security.Symbol, Provider.ProviderName);

            // if LOB window is already shown, just activate it
            LimitOrderBookWindow lobWindow = (LimitOrderBookWindow)FindWindowByTitle(title);

            if (lobWindow != null)
            {
                lobWindow.Activate();
                return;
            }

            // if LOB window is not already shown, create the new one and show it
            lobWindow             = new LimitOrderBookWindow();
            lobWindow.Title       = title;
            lobWindow.DataContext = new LimitOrderBookViewModel(SelectedTickDetail);
            lobWindow.Show();
        }