Beispiel #1
0
        /// <summary>
        /// Requests history data from the IB API
        /// </summary>
        /// <param name="reqId"></param>
        /// <param name="histContract"></param>
        /// <param name="endDate">Last Date requested</param>
        /// <param name="duration">How many days back from endDate</param>
        public void AddBar(int reqId, Bar ibBar)
        {
            int    conId  = myRequests.GetConId(reqId);
            string symbol = myRequests.GetSymbol(reqId);

            if (symbol == null)
            {
                Log.Error(3, string.Format("AddBar Null Symbol ConId= {0}", conId));
            }

            Log.Data(2, string.Format("AddBar {0,-10} {1,-8} {2:MM/dd/yyyy} {3:0.000} {4:0.000} {3:0.000} {5:0.000} {6,-8}",
                                      conId, symbol, ibBar.Time, ibBar.Open, ibBar.High, ibBar.Low, ibBar.Close, ibBar.Volume));
            myBDL.Add(reqId, ibBar);
        }
Beispiel #2
0
        public static BarDataList ReadAllBars(string cmdString)
        {
            BarDataList     mBarDataList = new BarDataList();
            MySqlConnection connection   = new MySqlConnection(myConnPath);

            connection.Open();

            MySqlCommand    cmd        = new MySqlCommand(cmdString, connection);
            MySqlDataReader dataReader = cmd.ExecuteReader();

            int       numBars   = 0;
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            // SELECT ticker, tdate, volume, open, high, low, close, editdate FROM historical WHERE ticker = "FB";
            while (dataReader.Read())
            {
                BarDataItem mBarData = new BarDataItem(
                    dataReader.GetString(1),                   // Time
                    dataReader.GetDouble(3),                   // Open
                    dataReader.GetDouble(4),                   // High
                    dataReader.GetDouble(5),                   // Low
                    dataReader.GetDouble(6),                   // Close
                    dataReader.GetUInt32(2),                   // Volume
                    0,                                         // Other
                    0);                                        // Other

                mBarData.editTime = dataReader.GetDateTime(7); // EditTime
                mBarDataList.Add(mBarData);
                numBars++;

                Log.Data(0, string.Format("{0,20} {1,8} {2:0.000} {3:0.000} {4:0.000} {5:0.000} {6:MM/dd/yyyy HH:mm:ss}",
                                          mBarData.Time, mBarData.Volume, mBarData.Open, mBarData.High, mBarData.Low, mBarData.Close, mBarData.editTime));
            }

            stopwatch.Stop();
            if (numBars != 0)
            {
                Log.Info(2, string.Format("End ReadAllBars Changed={0} Time/Rec= {1:F}", numBars, stopwatch.Elapsed.TotalMilliseconds / numBars));
            }

            dataReader.Close();
            connection.Close();
            return(mBarDataList);
        }