Exemple #1
0
 private void btnConnect_Click(object sender, EventArgs e)
 {
     if (btnConnect.Text == "Connect")
     {
         client = new IBClient();
         client.ThrowExceptions = true;
         client.Connect(tbIPAddress.Text, Convert.ToInt32(tbPort.Text), 0);
         client.HistoricalData          += client_HistoricalData;
         btnConnect.Text                 = "Disconnect";
         gbDownloadConfiguration.Enabled = true;
     }
     else
     {
         client.Disconnect();
         client.Dispose();
         client          = null;
         btnConnect.Text = "Connect";
         gbDownloadConfiguration.Enabled = false;
     }
 }
 private void DXWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
 {
     _client.Dispose();
 }
        private void ConnectToIB()
        {
            DisposeIBClient();

            logger.Info("Rebuilding IBClient");

            if (client != null)
            {
                client.Dispose();
            }

            client = new IBClient();
            Thread.Sleep(1000);
            logger.Info("IBClient Rebuilt");


            //client.ThrowExceptions = true;
            int retryCt = 5;

            while (!client.Connected)
            {
                if ((retryCt--) <= 0)
                {
                    logger.Info("Tried to reconnect 5 times going to try re-creating the client...");
                    return;
                }

                if (terminateRequested)
                {
                    ShutdownRecorder();
                }

                try
                {
                    //int clientID = (new Random()).Next(0, 2000);
                    logger.Info("Connecting to TWS Interactive brokers on port 7496..." + "(Try " + (4 - retryCt) + " of 5)");
                    client.Connect(settings.IBHostToConnectTo, settings.IBPortToConnectTo, 1);
                    logger.Info("Connection initiated, requesting data");
                    Thread.Sleep(2000);
                    client.RequestIds(1);
                    Thread.Sleep(2000);
                }
                catch (Exception ex)
                {
                    logger.Info("IB Connecting Exception: " + ex.Message);
                    if (terminateRequested) // changed: 2004-1-28
                    {
                        ShutdownRecorder();
                    }
                    Thread.Sleep(3000);
                }
            }
            logger.Info("TWS Client Connected is now true.");

            Thread.Sleep(2000);

            logger.Info("Connected to TWS server version {0} at {1}.", client.ServerVersion, client.TwsConnectionTime);

            client.TickPrice += client_TickPrice;
            client.TickSize  += client_TickSize;
            client.Error     += client_Error;

            //client.UpdateMarketDepth += new EventHandler<UpdateMarketDepthEventArgs>(client_UpdateMarketDepth);
            //client.UpdateMarketDepthL2 += new EventHandler<UpdateMarketDepthL2EventArgs>(client_UpdateMarketDepthL2);
            //// client.TickString += new EventHandler<TickStringEventArgs>(client_TickString); // nothing of value that I see
            //client.TickGeneric += new EventHandler<TickGenericEventArgs>(client_TickGeneric);
            //client.TickEfp += new EventHandler<TickEfpEventArgs>(client_TickEfp);
            //client.FundamentalData += new EventHandler<FundamentalDetailsEventArgs>(client_FundamentalData);
            //client.ContractDetails += new EventHandler<ContractDetailsEventArgs>(client_ContractDetails);

            /////////// Register the list of symbols for TWS ///////////
            string listToEcho = "";

            for (int s = 0; s < symbols.Count(); s++)
            {
                string name = symbols[s].Symbol.Trim();

                Contract item = new Contract(name, symbols[s].Market, symbols[s].securityType, "USD");
                client.RequestMarketData(symbols[s].SymbolID, item, null, false, false);

                // Examples..
                //axTws1.reqMktData(curID++, symbols[s], "STK", "", 0, "", "", "SMART", "ISLAND", "USD", "", 0);
                //client.RequestMarketDepth(s, item, 10);
                //client.RequestContractDetails(s, item);
                //client.RequestFundamentalData(s, item, "Estimates");
                //client.RequestFundamentalData(s, item, "Financial Statements");
                //client.RequestFundamentalData(s, item, "Summary");
                //client.RequestNewsBulletins(false);

                listToEcho += ", " + name;
            }
            logger.Debug("Symbols: {0}", listToEcho);
            //(NowString() + ": Symbols: " + listToEcho).Log();
        }