예제 #1
0
        public QuandlError GetCandlesDic(string fstr, string end_date, out Dictionary <string, double[]> dic, int n = int.MinValue)
        {
            QuandlError       err    = default(QuandlError);
            QuandlDataWrapper result = default(QuandlDataWrapper);
            string            req_url;
            int ccnt = 0, rcnt = 0;

            dic = new Dictionary <string, double[]>();

            if (n != int.MinValue)
            {
                n = Math.Max(n, _MAX_JSON); fstr += "&rows=" + n;
            }
            else
            {
                n = int.MaxValue;
            }

            req_url = string.Format(fstr, end_date);

            do
            {
                try
                {
                    result = (QuandlDataWrapper)WnFElliottBrowser.GetJSONObjects(req_url, typeof(QuandlDataWrapper));
                }
                catch (WebException ex)
                {
                    int status = (int)((HttpWebResponse)ex.Response).StatusCode;
                    err = GetQuandlError(ex);
                    Console.WriteLine("Exception at QuandlAPI.GetCandlesDic() GetJSONObjects returned {0} after {1} candles.", status, dic.Count);
                    if (dic.Count > 0)
                    {
                        dic.Clear();
                    }
                    break;
                }

                rcnt += 1;
                ccnt  = result.dataset_data.data.Length;
                foreach (TimeSeries l in result.dataset_data.data)
                {
                    end_date      = l.Date;
                    dic[end_date] = l.Values;
                }

                req_url = string.Format(fstr, end_date);
            } while (ccnt >= n);

            result = null;
            return(err);
        }
예제 #2
0
        public QuandlError GetCandlesTable(string fstr, string end_date, out DataTable dic, string tname = "")
        {
            QuandlError       err = default(QuandlError);
            QuandlDataWrapper result = default(QuandlDataWrapper);
            DataRow           r = default(DataRow);
            string            req_url = string.Format(fstr, end_date);
            int ccnt = 0, rcnt = 0;

            dic = _candles_table(tname);

            try
            {
                result = (QuandlDataWrapper)WnFElliottBrowser.GetJSONObjects(req_url, typeof(QuandlDataWrapper));
            }
            catch (WebException ex)
            {
                int status = (int)((HttpWebResponse)ex.Response).StatusCode;
                err = GetQuandlError(ex);
                Console.WriteLine("Exception at QuandlAPI.GetCandlesTable() GetJSONObjects returned {0}", status);
            }

            rcnt += 1;
            ccnt  = result.dataset_data.data.Length;
            for (int i = result.dataset_data.data.Length - 1; i >= 0; i--)
            {
                TimeSeries v = result.dataset_data.data[i];
                r             = dic.NewRow();
                r["DateTime"] = v.Date.Replace("-", "/");
                r["Open"]     = v.Values[0];
                r["High"]     = v.Values[1];
                r["Low"]      = v.Values[2];
                r["Close"]    = v.Values[3];
                r["Volume"]   = v.Values[4];
                dic.Rows.Add(r);
            }

            result = null;
            return(err);
        }