Ejemplo n.º 1
0
        /// <summary>
        /// MarketsUpdated callback.
        /// NOTE: MarketsUpdated will be called on the dispatcher that TT API was initialized on.
        /// </summary>
        private void marketsUpdated(object sender, MarketCatalogUpdatedEventArgs e)
        {
            listViewMarketList.Groups.Clear();
            listViewMarketList.Items.Clear();

            // Create a sorted list of markets objects.
            // Please refer to MSDN for more information about Lambda expressions used to Query collections. http://msdn.microsoft.com/en-us/library/bb397675
            var marketList = m_TTAPI.Session.MarketCatalog.Markets.Values.OrderBy(market => market.Name);

            // Create new MarketListViewItems and add them to the view.
            foreach (Market market in marketList)
            {
                // Add all markets except for synthetic ones.
                if (market.Key != MarketKey.AlgoSE &&
                    market.Key != MarketKey.Autospreader)
                {
                    // Add the item if not currently in the tree
                    if (m_marketList.Where(m => m.Name == market.Name).Count() == 0)
                    {
                        MarketListViewItem marketItem = new MarketListViewItem(listViewMarketList);
                        marketItem.Market = market;
                        m_marketList.Add(marketItem);
                    }
                }
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Event notification for status of authentication. </summary>
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        private void m_api_TTAPIStatusUpdate(object sender, TTAPIStatusUpdateEventArgs e)
        {
            statusLabel.Text = e.StatusMessage.ToString();

            if (e.IsReady)
            {
                statusLabel.Text = "APP KEY AUTHENTICATED : LOGIN SUCCESSFUL";

                // TODO: Do any connection up processing here
                //       note: can happen multiple times with your application life cycle

                // can get status multiple times - do not create subscription if it exists
                if (m_marketCatalog != null)
                {
                    return;
                }

                // Init the windows.
                initWindowViews();

                m_marketList = new List <MarketListViewItem>();

                m_instrumentCatalogList = new Dictionary <Product, InstrumentCatalog>();

                // Create the Market Catalog
                m_marketCatalog = m_api.MarketCatalog;

                listViewMarketList.Items.Clear();

                // Create a sorted list of markets objects.
                var marketList = m_api.MarketCatalog.Markets.Values.OrderBy(market => market.Name);

                foreach (Market market in marketList)
                {
                    // Add the item if not currently in the tree
                    if (m_marketList.Where(m => m.Name == market.Name).Count() == 0)
                    {
                        MarketListViewItem marketItem = new MarketListViewItem(listViewMarketList);
                        marketItem.Market = market;
                        m_marketList.Add(marketItem);
                        listViewMarketList.Items.Add(marketItem);
                    }
                }

                statusLabel.Text = "There are " + m_marketList.Count.ToString() + " Markets";
            }
            else
            {
                MessageBox.Show(String.Format("M_TTAPI_TTAPIStatusUpdate: {0}", e));
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// SelectedIndexChanged event from the market ListView window.
        /// This event fires when the user changes the selected market.
        /// </summary>
        private void listViewMarketList_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listViewMarketList.SelectedItems.Count > 0)
            {
                treeViewProductList.Nodes.Clear();
                toolStripStatusLabel.Text = "";
                listViewProductTypeList.Items.Clear();
                listViewMarketFeeds.Groups.Clear();
                listViewMarketFeeds.Items.Clear();

                // Cleanup and dispose all feeds.
                foreach (FeedListViewItem item in m_feedList)
                {
                    item.Dispose();
                }
                m_feedList.Clear();

                MarketListViewItem marketItem = listViewMarketList.SelectedItems[0] as MarketListViewItem;

                IEnumerable <ProductType> types = marketItem.SupportedProductTypes;
                foreach (ProductType type in types)
                {
                    ListViewItem item = new ListViewItem();
                    item.Name            = type.ToString();
                    item.Text            = type.ToString();
                    item.StateImageIndex = item.ImageIndex = GetImageCode(type);
                    item.Tag             = type;
                    listViewProductTypeList.Items.Add(item);
                }

                if (listViewProductTypeList.Items.Count > 0)
                {
                    listViewProductTypeList.Items[0].Selected = true;
                    listViewMarketList.Select();
                }

                // Create the market subscription.
                createProductSubscription(marketItem.Market);

                var allFeeds = marketItem.Market.PriceFeeds.Values.AsEnumerable <Feed>()
                               .Concat(marketItem.Market.OrderFeeds.Values)
                               .Concat(marketItem.Market.FillFeeds.Values);

                foreach (Feed feed in allFeeds)
                {
                    FeedListViewItem feedItem = new FeedListViewItem(listViewMarketFeeds);
                    feedItem.Feed = feed;
                    m_feedList.Add(feedItem);
                }
            }
        }
 /// <summary>
 /// MarketsUpdated callback.
 /// NOTE: MarketsUpdated will be called on the dispatcher that TT API was initialized on.
 /// </summary>
 private void marketsUpdated(object sender, MarketCatalogUpdatedEventArgs e)
 {
     foreach (Market market in e.Added)
     {
         // Add the item if not currently in the tree
         if (m_marketList.Where(m => m.Name == market.Name).Count() == 0)
         {
             MarketListViewItem marketItem = new MarketListViewItem(listViewMarketList);
             marketItem.Market = market;
             m_marketList.Add(marketItem);
             listViewMarketList.Items.Add(marketItem);
         }
     }
 }
        private void listViewMarketList_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listViewMarketList.SelectedItems.Count > 0)
            {
                treeViewProductList.Nodes.Clear();
                statusLabel.Text = "";
                listViewProductTypeList.Items.Clear();

                MarketListViewItem marketItem = listViewMarketList.SelectedItems[0] as MarketListViewItem;

                if (m_prodCat != null)
                {
                    m_prodCat.OnData -= productsUpdated;
                    m_prodCat.Dispose();
                    m_prodCat = null;
                }

                // Create the market subscription.
                createProductSubscription(marketItem.Market);
            }
        }
        /// <summary>
        /// MarketsUpdated callback.
        /// NOTE: MarketsUpdated will be called on the dispatcher that TT API was initialized on.
        /// </summary>
        private void marketsUpdated(object sender, MarketCatalogUpdatedEventArgs e)
        {
            listViewMarketList.Groups.Clear();
            listViewMarketList.Items.Clear();

            // Create a sorted list of markets objects.
            // Please refer to MSDN for more information about Lambda expressions used to Query collections. http://msdn.microsoft.com/en-us/library/bb397675
            var marketList = m_TTAPI.Session.MarketCatalog.Markets.Values.OrderBy(market => market.Name);
            
            // Create new MarketListViewItems and add them to the view.
            foreach (Market market in marketList)
            {
                // Add all markets except for synthetic ones.
                if (market.Key != MarketKey.AlgoSE &&
                    market.Key != MarketKey.Autospreader)
                {
                    // Add the item if not currently in the tree
                    if (m_marketList.Where(m => m.Name == market.Name).Count() == 0)
                    {
                        MarketListViewItem marketItem = new MarketListViewItem(listViewMarketList);
                        marketItem.Market = market;
                        m_marketList.Add(marketItem);
                    }
                }
            }
        }