private static void AddMinutesToGrid(List <IRecord> minutes, MinuteRequest request) { string symbol = request.Symbol; foreach (IRecord rec in minutes) { if (cancelRequest) { break; } var minute = (IMinute)rec; var record = minute as IIntradayRecord; var sym = record != null ? record.Symbol : symbol; var bar = new MinuteBar { Close = (decimal)(minute.Close * Data.PriceMultiplier), High = (decimal)(minute.High * Data.PriceMultiplier), Interval = request.Interval, Low = (decimal)(minute.Low * Data.PriceMultiplier), Open = (decimal)(minute.Open * Data.PriceMultiplier), Symbol = sym, Volume = minute.Volume, Time = minute.Timestamp }; Data.MinuteBars.Add(bar); } }
void AddNewBarInDb(MinuteBar minuteBar) { using (var con = OpenConnection()) { using (var command = con.CreateCommand()) { command.CommandText = "INSERT INTO minutebars (open, high, low, close, symbol, TimeFrame,volume, bartime) VALUES (?o,?h,?l,?c,?s,?tf,?v, ?bt)"; command.Parameters.AddWithValue("?o", (minuteBar.Open / Data.PriceMultiplier)); command.Parameters.AddWithValue("?h", minuteBar.High / Data.PriceMultiplier); command.Parameters.AddWithValue("?l", minuteBar.Low / Data.PriceMultiplier); command.Parameters.AddWithValue("?c", minuteBar.Close / Data.PriceMultiplier); command.Parameters.AddWithValue("?s", minuteBar.Symbol.Substring(0, 2)); command.Parameters.AddWithValue("?v", minuteBar.Volume); command.Parameters.AddWithValue("?tf", minuteBar.Interval); command.Parameters.AddWithValue("?bt", minuteBar.Time); var result = command.ExecuteNonQuery(); if (result == 1) { Console.WriteLine("INB in DB:" + minuteBar.Open / Data.PriceMultiplier + " H:" + minuteBar.High / Data.PriceMultiplier + " L:" + minuteBar.Low / Data.PriceMultiplier + " C:" + minuteBar.Close / Data.PriceMultiplier + " Symbol:" + minuteBar.Symbol + " Timeframe:" + minuteBar.Interval ); } else { Console.WriteLine("Adding new bar into db was unsuccessful!"); } } } }
/// <summary> /// Converts the list to bar. /// </summary> /// <param name="list">The list.</param> /// <param name="contractcode"></param> /// <param name="tf"></param> /// <returns></returns> private static MinuteBar ConvertListToBar(List <MinuteBar> list, string contractcode, int tf) { var barC = list.Last().Close; var barH = list.Max(x => x.High); var barL = list.Min(x => x.Low); var barO = list.First().Open; var volume = list.Sum(x => x.Volume); var symbol = contractcode; var minuteBar = new MinuteBar { Open = barO, High = barH, Low = barL, Close = barC, Interval = tf, Symbol = symbol, Volume = volume, Time = DateTime.Now.AddHours(-7).AddMinutes(-tf) }; Console.WriteLine("New bar O:" + minuteBar.Open / Data.PriceMultiplier + " H:" + minuteBar.High / Data.PriceMultiplier + " L:" + minuteBar.Low / Data.PriceMultiplier + " C:" + minuteBar.Close / Data.PriceMultiplier + " Symbol:" + minuteBar.Symbol + " Timeframe:" + minuteBar.Interval ); return(minuteBar); }