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);
            }
        }
Esempio n. 2
0
        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!");
                    }
                }
            }
        }
Esempio n. 3
0
        /// <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);
        }