Пример #1
0
        public void GetOpenCloseHighLow(string symbl, DateTime start, DateTime end, out TimeSeries open, out TimeSeries close, out TimeSeries high, out TimeSeries low)
        {
            var a = new Quote(symbl);
            XDocument doc = null;
            if (Properties.Settings.Default.PollWebAPI) {
                doc = a.Fetch(start.Date, end);
                if (doc == null) {
                    throw new Exception();
                }
            }

            open = new TimeSeries(symbl);
            close = new TimeSeries(symbl);
            high = new TimeSeries(symbl);
            low = new TimeSeries(symbl);

            if (!Properties.Settings.Default.PollWebAPI) {
                open = Open(symbl, start, end, 1);
                high = Open(symbl, start, end, 2);
                low = Open(symbl, start, end, 3);
                close = Open(symbl, start, end, 4);
                return;
            }

            foreach (var quote in doc.Descendants("quote")) {
                open.Add(DateTimeAxis.ToDouble(DateTime.Parse(quote.Element("Date").Value)),
                    double.Parse(quote.Element("Open").Value));
                close.Add(DateTimeAxis.ToDouble(DateTime.Parse(quote.Element("Date").Value)),
                    double.Parse(quote.Element("Close").Value));
                high.Add(DateTimeAxis.ToDouble(DateTime.Parse(quote.Element("Date").Value)),
                    double.Parse(quote.Element("High").Value));
                low.Add(DateTimeAxis.ToDouble(DateTime.Parse(quote.Element("Date").Value)),
                    double.Parse(quote.Element("Low").Value));
            }
        }
Пример #2
0
        public TimeSeries Open2(string symbl, DataType type, DateTime start, DateTime end)
        {
            var a = new Quote(symbl);
            XDocument doc = null;
            if (Properties.Settings.Default.PollWebAPI) {
                doc = a.Fetch(start.Date, end);
                if (doc == null) {
                    throw new Exception();
                }
            }

            TimeSeries ts = new TimeSeries(symbl);
            if (type == DataType.AdjClose) {
                if (!Properties.Settings.Default.PollWebAPI) {
                    return Open(symbl, start, end, 6);
                }
                foreach (var quote in doc.Descendants("quote")) {
                    ts.Add(DateTimeAxis.ToDouble(DateTime.Parse(quote.Element("Date").Value)),
                        double.Parse(quote.Element("Adj_Close").Value));
                }
            }

            if (type == DataType.Volume) {
                if (!Properties.Settings.Default.PollWebAPI) {
                    return Open(symbl, start, end, 5);
                }
                foreach (var quote in doc.Descendants("quote")) {
                    ts.Add(DateTimeAxis.ToDouble(DateTime.Parse(quote.Element("Date").Value)),
                        double.Parse(quote.Element("Volume").Value));
                }
            }

            if (type == DataType.Close) {
                if (!Properties.Settings.Default.PollWebAPI) {
                    return Open(symbl, start, end, 4);
                }
                foreach (var quote in doc.Descendants("quote")) {
                    ts.Add(DateTimeAxis.ToDouble(DateTime.Parse(quote.Element("Date").Value)),
                        double.Parse(quote.Element("Close").Value));
                }
            }

            if (type == DataType.Open) {
                if (!Properties.Settings.Default.PollWebAPI) {
                    return Open(symbl, start, end, 1);
                }
                foreach (var quote in doc.Descendants("quote")) {
                    ts.Add(DateTimeAxis.ToDouble(DateTime.Parse(quote.Element("Date").Value)),
                        double.Parse(quote.Element("Open").Value));
                }
            }

            if (type == DataType.High) {
                if (!Properties.Settings.Default.PollWebAPI) {
                    return Open(symbl, start, end, 2);
                }
                foreach (var quote in doc.Descendants("quote")) {
                    ts.Add(DateTimeAxis.ToDouble(DateTime.Parse(quote.Element("Date").Value)),
                        double.Parse(quote.Element("High").Value));
                }
            }

            if (type == DataType.Low) {
                foreach (var quote in doc.Descendants("quote")) {
                    ts.Add(DateTimeAxis.ToDouble(DateTime.Parse(quote.Element("Date").Value)),
                        double.Parse(quote.Element("Low").Value));
                }
            }
            return ts;
        }