Exemple #1
0
        /// <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);
        }
Exemple #2
0
 /// <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());
 }
Exemple #3
0
        /// <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()));
        }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
 /// <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);
 }
Exemple #6
0
 /// <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));
 }
Exemple #7
0
 /// <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));
 }
Exemple #8
0
 /// <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));
 }
Exemple #9
0
 /// <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));
 }
Exemple #10
0
 /// <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));
 }
Exemple #11
0
 /// <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));
 }
Exemple #12
0
 /// <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;
 }
Exemple #13
0
 /// <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);
 }
Exemple #14
0
 /// <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);
 }
Exemple #15
0
        /// <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;
        }
Exemple #16
0
 /// <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);
 }
Exemple #17
0
 /// <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);
 }
Exemple #18
0
 /// <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);
 }