/// <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); }
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); }