public static ForexTimePeriodStats OHLCStats(this List <ForexPriceRecord> records)
        {
            string symbol;

            if (records.Count == 0)
            {
                return(new ForexTimePeriodStats());
            }

            symbol = records[0].Symbol;

            ForexTimePeriodStats stats =
                new ForexTimePeriodStats()
            {
                SymbolId      = records[0].SymbolId,
                Symbol        = symbol,
                DateTimeBegin = records[0].PriceDateTime,
                DateTimeEnd   = records[records.Count - 1].PriceDateTime,
                Open          = records.Open(),
                High          = records.High(),
                Low           = records.Low(),
                Close         = records.Close()
            };

            return(stats);
        }
        public static void ToCsvFile(this List <ForexTimePeriodStats> records, string Filepath, bool IncludeHeader)
        {
            try
            {
                List <string> recs = (from r in records select r.ToCsv(true)).ToList();
                if (IncludeHeader)
                {
                    recs.Insert(0, ForexTimePeriodStats.CsvHeader());
                }

                File.WriteAllLines(Filepath, recs.ToArray());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }