示例#1
0
        void m_instrLookupRequest_OnData(object sender, InstrumentLookupEventArgs e)
        {
            if (e.Event == ProductDataEvent.Found)
            {
                // Instrument was found
                m_instrument = e.InstrumentLookup.Instrument;
                Console.WriteLine("Found: {0}", m_instrument);

                AlgoLookupSubscription algoLookupSubscription = new AlgoLookupSubscription(tt_net_sdk.Dispatcher.Current, "TT Iceberg");
                algoLookupSubscription.OnData += AlgoLookupSubscription_OnData;
                algoLookupSubscription.GetAsync();

                // Subscribe for market Data
                m_priceSubscription                = new PriceSubscription(m_instrument, tt_net_sdk.Dispatcher.Current);
                m_priceSubscription.Settings       = new PriceSubscriptionSettings(PriceSubscriptionType.MarketDepth);
                m_priceSubscription.FieldsUpdated += m_priceSubscription_FieldsUpdated;
                m_priceSubscription.Start();
            }
            else if (e.Event == ProductDataEvent.NotAllowed)
            {
                Console.WriteLine("Not Allowed : Please check your Token access");
            }
            else
            {
                // Instrument was not found and TT API has given up looking for it
                Console.WriteLine("Cannot find instrument: {0}", e.Message);
                Dispose();
            }
        }
示例#2
0
        public void Dispose()
        {
            lock (m_Lock)
            {
                if (!m_isDisposed)
                {
                    // Unattached callbacks and dispose of all subscriptions
                    if (m_instrLookupRequest != null)
                    {
                        m_instrLookupRequest.OnData -= m_instrLookupRequest_OnData;
                        m_instrLookupRequest.Dispose();
                        m_instrLookupRequest = null;
                    }

                    if (m_algoLookupSubscription != null)
                    {
                        m_algoLookupSubscription.OnData -= AlgoLookupSubscription_OnData;
                        m_algoLookupSubscription.Dispose();
                        m_algoLookupSubscription = null;
                    }

                    if (m_priceSubscription != null)
                    {
                        m_priceSubscription.FieldsUpdated -= m_priceSubscription_FieldsUpdated;
                        m_priceSubscription.Dispose();
                        m_priceSubscription = null;
                    }

                    if (m_algoTradeSubscription != null)
                    {
                        m_algoTradeSubscription.OrderUpdated        -= m_algoTradeSubscription_OrderUpdated;
                        m_algoTradeSubscription.OrderAdded          -= m_algoTradeSubscription_OrderAdded;
                        m_algoTradeSubscription.OrderDeleted        -= m_algoTradeSubscription_OrderDeleted;
                        m_algoTradeSubscription.OrderFilled         -= m_algoTradeSubscription_OrderFilled;
                        m_algoTradeSubscription.OrderRejected       -= m_algoTradeSubscription_OrderRejected;
                        m_algoTradeSubscription.ExportValuesUpdated -= m_algoTradeSubscription_ExportValuesUpdated;
                        m_algoTradeSubscription.AlertsFired         -= m_algoTradeSubscription_AlertsUpdated;
                        m_algoTradeSubscription.Dispose();
                        m_algoTradeSubscription = null;
                    }

                    m_isDisposed = true;
                }

                TTAPI.Shutdown();
            }
        }