/// <summary> /// get string-ified version of qdl data set code /// </summary> /// <param name="source"></param> /// <returns></returns> static string GetQdlDataCode(qdl_ds source) { var code = string.Empty; switch (source) { case qdl_ds.SecHarm: code = DATASOURCE_SEC_HARMONIZED; break; case qdl_ds.SECRaw: code = DATASOURCE_SEC_USA; break; case qdl_ds.StockPriceNA: code = DATASOURCE_STOCKPRICE_NA; break; case qdl_ds.ZacksEarnings: code = DATASOURCE_ZACKS_EARNEST; break; case qdl_ds.ZacksSurprises: code = DATASOURCE_ZACKS_EARNSUP; break; case qdl_ds.NYUProfessorDamodaran: code = DATASOURCE_FUNDAMENTAL_NYU; break; default: // should never happen throw new NotImplementedException("Unknown quandl data source: " + source.ToString()); } return(code); }
/// <summary> /// gets quandl datacode given source and symbol /// </summary> /// <param name="source"></param> /// <param name="symbol"></param> /// <returns></returns> public static Datacode BuildQdlCode(qdl_ds source, qdl_freq freq, params string[] datasetids) { if (freq== qdl_freq.None) return BuildQdlCode(GetQdlDataCode(source),datasetids); List<string> ids = new List<string>(datasetids); ids.Add(GetQdlFreq(freq)); return BuildQdlCode(GetQdlDataCode(source), ids.ToArray()); }
/// <summary> /// gets quandl datacode given source and symbol /// </summary> /// <param name="source"></param> /// <param name="symbol"></param> /// <returns></returns> public static Datacode BuildQdlCode(qdl_ds source, qdl_freq freq, params string[] datasetids) { if (freq == qdl_freq.None) { return(BuildQdlCode(GetQdlDataCode(source), datasetids)); } List <string> ids = new List <string>(datasetids); ids.Add(GetQdlFreq(freq)); return(BuildQdlCode(GetQdlDataCode(source), ids.ToArray())); }
/// <summary> /// get a quandl data set for particular symbol/column/frequency /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="trycache"></param> /// <param name="d"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, string additionaldataset, qdl_freq freq, bool trycache, DebugDelegate d) { if (_d == null) { _d = d; } Datacode dc = null; string raw = string.Empty; RootObject ro = null; try { if (string.IsNullOrWhiteSpace(additionaldataset)) { dc = BuildQdlCode(ds, freq, symbol); } else { dc = BuildQdlCode(ds, freq, symbol, additionaldataset); } } catch (Exception ex) { debug("Unable to get data, error building dataset: " + qh.dc2str(dc) + " " + symbol + " err: " + ex.Message + ex.StackTrace); return(default(RootObject)); } try { raw = GetData(symbol, dc, trycache, d); // verify data retrieved before continuing if (string.IsNullOrWhiteSpace(raw)) { if (isUseFakeDataOnError) { ro = GetRandomData(dc, freq); debug("FakeDataOnError enabled, using: " + ro.data.Count + " randomized data set."); return(ro); } else { debug(symbol + " " + qh.dc2str(dc) + " no data was retrieved. Retry or contact [email protected]"); return(default(RootObject)); } } } catch (Exception ex) { debug("Unable to get data, error retrieving set: " + qh.dc2str(dc) + " " + symbol + " err: " + ex.Message + ex.StackTrace); return(default(RootObject)); } try { ro = json.Deserialize2Root(raw, false, d); v(symbol + " " + qh.dc2str(dc) + " got data model containing " + ro.column_names.Count.ToString("N0") + " columns and " + ro.data.Count.ToString("N0") + " records."); } catch (Exception ex) { if (isVerboseDebugging) { debug("Unable to get data, error parsing set: " + ds + " " + symbol + " err: " + ex.Message + ex.StackTrace); debug(symbol + " " + qh.dc2str(dc) + " errored data set: " + raw); } else { debug("Unable to get data, error parsing set: " + qh.dc2str(dc) + " " + symbol + " err: " + ex.Message + ex.StackTrace); } return(default(RootObject)); } return(ro); }
/// <summary> /// get a quandl data set for particular symbol/column /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol) { return Get(ds, symbol, string.Empty, null); }
/// <summary> /// get a quandl data set for particular symbol/column /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="trycache"></param> /// <param name="d"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, bool trycache, DebugDelegate d) { return(Get(ds, symbol, string.Empty, trycache, d)); }
/// <summary> /// get a quandl data set for particular symbol/column (no frequency) /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="additionaldataset"></param> /// <param name="trycache"></param> /// <param name="d"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, string additionaldataset, bool trycache, DebugDelegate d) { return(Get(ds, symbol, additionaldataset, qdl_freq.None, trycache, d)); }
/// <summary> /// get a quandl data set for particular symbol/column /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="additionaldataset"></param> /// <param name="d"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, string additionaldataset, DebugDelegate d) { return(Get(ds, symbol, additionaldataset, isCheckCache, d)); }
/// <summary> /// get a quandl data set for particular symbol/column /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="d"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, DebugDelegate d) { return(Get(ds, symbol, isCheckCache, d)); }
/// <summary> /// get a quandl data set for particular symbol/column /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol) { return(Get(ds, symbol, string.Empty, null)); }
/// <summary> /// get a quandl data set for particular symbol/column /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="additionaldataset"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, string additionaldataset) { return(Get(ds, symbol, additionaldataset, isCheckCache, null)); }
/// <summary> /// get string-ified version of qdl data set code /// </summary> /// <param name="source"></param> /// <returns></returns> static string GetQdlDataCode(qdl_ds source) { var code = string.Empty; switch (source) { case qdl_ds.SecHarm: code = DATASOURCE_SEC_HARMONIZED; break; case qdl_ds.SECRaw: code = DATASOURCE_SEC_USA; break; case qdl_ds.StockPriceNA: code = DATASOURCE_STOCKPRICE_NA; break; case qdl_ds.ZacksEarnings: code = DATASOURCE_ZACKS_EARNEST; break; case qdl_ds.ZacksSurprises: code = DATASOURCE_ZACKS_EARNSUP; break; case qdl_ds.NYUProfessorDamodaran: code = DATASOURCE_FUNDAMENTAL_NYU; break; default: // should never happen throw new NotImplementedException("Unknown quandl data source: " + source.ToString()); } return code; }
/// <summary> /// get a quandl data set for particular symbol/column /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="additionaldataset"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, string additionaldataset) { return Get(ds, symbol,additionaldataset,isCheckCache, null); }
/// <summary> /// get a quandl data set for particular symbol/column /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="additionaldataset"></param> /// <param name="d"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, string additionaldataset, DebugDelegate d) { return Get(ds, symbol, additionaldataset, isCheckCache, d); }
/// <summary> /// get a quandl data set for particular symbol/column/frequency /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="trycache"></param> /// <param name="d"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, string additionaldataset, qdl_freq freq, bool trycache, DebugDelegate d) { if (_d==null) _d = d; Datacode dc = null; string raw = string.Empty; RootObject ro = null; try { if (string.IsNullOrWhiteSpace(additionaldataset)) dc = BuildQdlCode(ds,freq, symbol); else dc = BuildQdlCode(ds, freq, symbol, additionaldataset); } catch (Exception ex) { debug("Unable to get data, error building dataset: " + qh.dc2str(dc) + " " + symbol + " err: " + ex.Message + ex.StackTrace); return default(RootObject); } try { raw = GetData(symbol, dc, trycache, d); // verify data retrieved before continuing if (string.IsNullOrWhiteSpace(raw)) { if (isUseFakeDataOnError) { ro = GetRandomData(dc, freq); debug("FakeDataOnError enabled, using: " + ro.data.Count + " randomized data set."); return ro; } else { debug(symbol + " " + qh.dc2str(dc) + " no data was retrieved. Retry or contact [email protected]"); return default(RootObject); } } } catch (Exception ex) { debug("Unable to get data, error retrieving set: " + qh.dc2str(dc) + " " + symbol + " err: " + ex.Message + ex.StackTrace); return default(RootObject); } try { ro = json.Deserialize2Root(raw, false, d); v(symbol + " " + qh.dc2str(dc) + " got data model containing " + ro.column_names.Count.ToString("N0") + " columns and " + ro.data.Count.ToString("N0") + " records."); } catch (Exception ex) { if (isVerboseDebugging) { debug("Unable to get data, error parsing set: " + ds + " " + symbol + " err: " + ex.Message + ex.StackTrace); debug(symbol + " " + qh.dc2str(dc) + " errored data set: " + raw); } else debug("Unable to get data, error parsing set: " + qh.dc2str(dc) + " " + symbol + " err: " + ex.Message + ex.StackTrace); return default(RootObject); } return ro; }
/// <summary> /// get a quandl data set for particular symbol/column (no frequency) /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="additionaldataset"></param> /// <param name="trycache"></param> /// <param name="d"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, string additionaldataset, bool trycache, DebugDelegate d) { return Get(ds, symbol, additionaldataset,qdl_freq.None, trycache, d); }
/// <summary> /// get a quandl data set for particular symbol/column /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="trycache"></param> /// <param name="d"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, bool trycache, DebugDelegate d) { return Get(ds, symbol, string.Empty, trycache, d); }
/// <summary> /// get a quandl data set for particular symbol/column /// </summary> /// <param name="ds"></param> /// <param name="symbol"></param> /// <param name="d"></param> /// <returns></returns> public static RootObject Get(qdl_ds ds, string symbol, DebugDelegate d) { return Get(ds, symbol, isCheckCache, d); }