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); }
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); }