/// <summary>
        /// Load financial data from Google.
        /// </summary>
        /// <param name="ticker">The ticker to load from.</param>
        /// <param name="dataNeeded">The data needed.</param>
        /// <param name="from">The starting time.</param>
        /// <param name="to">The ending time.</param>
        /// <returns>The loaded data.</returns>
        public ICollection <LoadedMarketData> Load(TickerSymbol ticker, IList <MarketDataType> dataNeeded, DateTime from,
                                                   DateTime to)
        {
            ICollection <LoadedMarketData> result = new List <LoadedMarketData>();
            Uri        url      = BuildUrl(ticker, from, to);
            WebRequest http     = WebRequest.Create(url);
            var        response = (HttpWebResponse)http.GetResponse();

            if (response != null)
            {
                using (Stream istream = response.GetResponseStream())
                {
                    var csv = new ReadCSV(istream, true, CSVFormat.DecimalPoint);

                    while (csv.Next())
                    {
                        DateTime date = csv.GetDate("date");

                        double open   = csv.GetDouble("open");
                        double close  = csv.GetDouble("close");
                        double high   = csv.GetDouble("high");
                        double low    = csv.GetDouble("low");
                        double volume = csv.GetDouble("volume");

                        var data =
                            new LoadedMarketData(date, ticker);

                        data.SetData(MarketDataType.Open, open);
                        data.SetData(MarketDataType.Close, close);
                        data.SetData(MarketDataType.High, high);
                        data.SetData(MarketDataType.Low, low);
                        data.SetData(MarketDataType.Open, open);
                        data.SetData(MarketDataType.Volume, volume);
                        result.Add(data);
                    }

                    csv.Close();
                    if (istream != null)
                    {
                        istream.Close();
                    }
                }
            }
            return(result);
        }
        public ICollection <LoadedMarketData> ReadAndCallLoader(TickerSymbol symbol, IList <MarketDataType> neededTypes, DateTime from, DateTime to, string File)
        {
            try
            {
                //We got a file, lets load it.



                ICollection <LoadedMarketData> result = new List <LoadedMarketData>();
                ReadCSV csv = new ReadCSV(File, true, LoadedFormat);


                csv.DateFormat = DateTimeFormat.Normalize();
                //  Time,Open,High,Low,Close,Volume
                while (csv.Next())
                {
                    DateTime         date   = csv.GetDate("Time");
                    double           open   = csv.GetDouble("Open");
                    double           close  = csv.GetDouble("High");
                    double           high   = csv.GetDouble("Low");
                    double           low    = csv.GetDouble("Close");
                    double           volume = csv.GetDouble("Volume");
                    LoadedMarketData data   = new LoadedMarketData(date, symbol);
                    data.SetData(MarketDataType.Open, open);
                    data.SetData(MarketDataType.High, high);
                    data.SetData(MarketDataType.Low, low);
                    data.SetData(MarketDataType.Close, close);
                    data.SetData(MarketDataType.Volume, volume);
                    result.Add(data);
                }

                csv.Close();
                return(result);
            }

            catch (Exception ex)
            {
                Console.WriteLine("Something went wrong reading the csv");
                Console.WriteLine("Something went wrong reading the csv:" + ex.Message);
            }

            Console.WriteLine("Something went wrong reading the csv");
            return(null);
        }
Exemple #3
0
        /// <summary>
        /// Load financial data from a CSV file.
        /// </summary>
        /// <param name="ticker">The ticker being loaded, ignored for a CSV load.</param>
        /// <param name="dataNeeded">The data needed.</param>
        /// <param name="from">The starting date.</param>
        /// <param name="to">The ending date.</param>
        /// <returns></returns>
        public ICollection <LoadedMarketData> Load(TickerSymbol ticker, IList <MarketDataType> dataNeeded, DateTime from,
                                                   DateTime to)
        {
            try
            {
                if (File.Exists(TheFile))
                {
                    //We got a file, lets load it.
                    TheFile = TheFile;
                    ICollection <LoadedMarketData> result = new List <LoadedMarketData>();
                    var csv = new ReadCSV(TheFile, true, CSVFormat.English);

                    //  Time,Open,High,Low,Close,Volume
                    while (csv.Next())
                    {
                        DateTime date   = csv.GetDate("Time");
                        double   open   = csv.GetDouble("Open");
                        double   close  = csv.GetDouble("High");
                        double   high   = csv.GetDouble("Low");
                        double   low    = csv.GetDouble("Close");
                        double   volume = csv.GetDouble("Volume");
                        var      data   = new LoadedMarketData(date, ticker);
                        data.SetData(MarketDataType.Open, open);
                        data.SetData(MarketDataType.Volume, close);
                        data.SetData(MarketDataType.High, high);
                        data.SetData(MarketDataType.Low, low);
                        data.SetData(MarketDataType.Volume, volume);
                        result.Add(data);
                    }

                    csv.Close();
                    return(result);
                }
            }
            catch (Exception ex)
            {
                throw new LoaderError(ex);
            }

            throw new LoaderError(@"Something went wrong reading the csv");
        }
Exemple #4
0
        /// <summary>
        /// Reads the CSV and call loader.
        /// Used internally to load the csv and place data in the marketdataset.
        /// </summary>
        /// <param name="symbol">The symbol.</param>
        /// <param name="neededTypes">The needed types.</param>
        /// <param name="from">From.</param>
        /// <param name="to">To.</param>
        /// <param name="File">The file.</param>
        /// <returns></returns>
        private ICollection <LoadedMarketData> ReadAndCallLoader(
            TickerSymbol symbol,
            IEnumerable <MarketDataType> neededTypes,
            DateTime from,
            DateTime to,
            string File)
        {
            //We got a file, lets load it.

            ICollection <LoadedMarketData> result = new List <LoadedMarketData>();
            ReadCSV csv = new ReadCSV(File, true, CSVFormat.English);

            //In case we want to use a different date format...and have used the SetDateFormat method, our DateFormat must then not be null..
            //We will use the ?? operator to check for nullables.
            csv.DateFormat = DateFormat ?? "yyyy-MM-dd HH:mm:ss";
            csv.TimeFormat = "HH:mm:ss";

            DateTime ParsedDate = from;
            bool     writeonce  = true;

            while (csv.Next())
            {
                DateTime date = csv.GetDate(0);
                ParsedDate = date;

                if (writeonce)
                {
                    Console.WriteLine(@"First parsed date in csv:" + ParsedDate.ToShortDateString());
                    Console.WriteLine(@"Stopping at date:" + to.ToShortDateString());
                    Console.WriteLine(@"Current DateTime:" + ParsedDate.ToShortDateString() + @" Time:" +
                                      ParsedDate.ToShortTimeString() + @"  Asked Start date was " +
                                      from.ToShortDateString());
                    writeonce = false;
                }
                if (ParsedDate >= from && ParsedDate <= to)
                {
                    DateTime         datex            = csv.GetDate(0);
                    double           open             = csv.GetDouble(1);
                    double           close            = csv.GetDouble(2);
                    double           high             = csv.GetDouble(3);
                    double           low              = csv.GetDouble(4);
                    double           volume           = csv.GetDouble(5);
                    double           range            = Math.Abs(open - close);
                    double           HighLowRange     = Math.Abs(high - low);
                    double           DirectionalRange = close - open;
                    LoadedMarketData data             = new LoadedMarketData(datex, symbol);
                    data.SetData(MarketDataType.Open, open);
                    data.SetData(MarketDataType.High, high);
                    data.SetData(MarketDataType.Low, low);
                    data.SetData(MarketDataType.Close, close);
                    data.SetData(MarketDataType.Volume, volume);
                    data.SetData(MarketDataType.RangeHighLow, Math.Round(HighLowRange, 6));
                    data.SetData(MarketDataType.RangeOpenClose, Math.Round(range, 6));
                    data.SetData(MarketDataType.RangeOpenCloseNonAbsolute, Math.Round(DirectionalRange, 6));
                    result.Add(data);
                }
            }

            csv.Close();
            return(result);
        }
Exemple #5
0
        public ICollection <LoadedMarketData> ReadAndCallLoader(TickerSymbol symbol, IList <MarketDataType> neededTypes, DateTime from, DateTime to, string File)
        {
            try
            {
                //We got a file, lets load it.
                ICollection <LoadedMarketData> result = new List <LoadedMarketData>();
                ReadCSV csv = new ReadCSV(File, true, CSVFormat.DecimalComma);
                csv.DateFormat = "yyyy.MM.dd HH:mm";

                DateTime ParsedDate = from;


                //  Time,Open,High,Low,Close,Volume
                while (csv.Next() /*&& ParsedDate >= from && ParsedDate <= to*/)
                {
                    DateTime date = csv.GetDate("Date");

                    if (date > to)
                    {
                        break;
                    }
                    if (date < from)
                    {
                        continue;
                    }

                    double close = csv.GetDouble("Close");
                    //double Bid= csv.GetDouble("Bid");
                    //double Ask = csv.GetDouble("Ask");
                    //double AskVolume = csv.GetDouble("AskVolume");
                    //double BidVolume= csv.GetDouble("BidVolume");
                    //double _trade = ( Bid + Ask ) /2;
                    //double _tradeSize = (AskVolume + BidVolume) / 2;
                    LoadedMarketData data = new LoadedMarketData(date, symbol);
                    data.SetData(MarketDataType.Close, close);
                    //data.SetData(MarketDataType.Trade, _trade);
                    //data.SetData(MarketDataType.Volume, _tradeSize);
                    result.Add(data);

                    Console.WriteLine("Current DateTime:" + date.ToShortDateString() + " Time:" + date.ToShortTimeString() + "  Start date was " + from.ToShortDateString());
                    Console.WriteLine("Stopping at date:" + to.ToShortDateString());

                    //double open = csv.GetDouble("Open");
                    //double close = csv.GetDouble("High");
                    //double high = csv.GetDouble("Low");
                    //double low = csv.GetDouble("Close");
                    //double volume = csv.GetDouble("Volume");
                    //LoadedMarketData data = new LoadedMarketData(date, symbol);
                    //data.SetData(MarketDataType.Open, open);
                    //data.SetData(MarketDataType.High, high);
                    //data.SetData(MarketDataType.Low, low);
                    //data.SetData(MarketDataType.Close, close);
                    //data.SetData(MarketDataType.Volume, volume);
                    result.Add(data);
                }

                csv.Close();
                return(result);
            }

            catch (Exception ex)
            {
                Console.WriteLine("Something went wrong reading the csv");
                Console.WriteLine("Something went wrong reading the csv:" + ex.Message);
            }

            Console.WriteLine("Something went wrong reading the csv");
            return(null);
        }