Example #1
0
 public Boolean InitiateDataset(string quandlDatabase, string datacodeParams, int datapointsNumber, string frequency)
 {
     //create the object with the appropriate parameters
     this.quandlObject = QuandlProcess.GrabData(quandlDatabase, datacodeParams, datapointsNumber, frequency);
     return true;
 }
        public static ParsedData GrabData(string quandlDatabase, string datacodeParams, int datapointsNumber, string frequency)
        {
            //Quandl request
            QuandlDownloadRequest request = new QuandlDownloadRequest();
            request.APIKey = "xNA_rA8KzZepxFUeu9bA";

            request.Datacode = new Datacode(quandlDatabase, datacodeParams); // PRAGUESE is the source, PX is the datacode
            request.Format = FileFormats.JSON;

            switch (frequency)
            {
                case "d":
                    request.Frequency = Frequencies.Daily;
                    break;
                case "w":
                    request.Frequency = Frequencies.Weekly;
                    break;
                case "m":
                    request.Frequency = Frequencies.Monthly;
                    break;
                case "q":
                    request.Frequency = Frequencies.Quarterly;
                    break;
                case "a":
                    request.Frequency = Frequencies.Annualy;
                    break;
                default:
                    request.Frequency = Frequencies.Daily;
                    break;
            }

            request.Truncation = datapointsNumber;
            request.Sort = SortOrders.Descending;
            request.Transformation = Transformations.None;

            //OUTPUT: https://www.quandl.com/api/v1/datasets/PRAGUESE/PX.json?auth_token=xNA_rA8KzZepxFUeu9bA&collapse=monthly&transformation=diff&sort_order=asc&rows=150
            //https://www.quandl.com/api/v3/datasets/YAHOO/YHOO.json

            //Initialize data structure
            ParsedData pData = new ParsedData();
            List<string> paramList = new List<string>();
            List<string> paramType = new List<string>();

            //Parsing the data
            using (WebClient web = new WebClient())
            {
                string data = web.DownloadString(string.Format(request.ToRequestString()));
                JObject o = JObject.Parse(data);

                //Parse column_names
                foreach (string parameter in o["column_names"].Children())
                {
                    pData.Add(parameter.ToString(), "Heading");
                    paramList.Add(parameter.ToString());
                }

                //var headings = o["column_names"].Children();
                pData.dataName = (string)o["name"].ToString();

                var results = o["data"].Children();

                //REWRITE THIS---------------------------
                //Find the parameters of the data
                foreach (var val in results)
                {
                    foreach (var type in val)
                    {
                        paramType.Add(type.Type.ToString());
                    }
                    if (paramType.Count > paramList.Count)
                        break;
                }
                pData.AddDataTypeList(paramType);
                //-----------------------------------------
                foreach (var dataPoint in results)
                {
                    int count = 0;
                    foreach (var val in dataPoint)
                    {
                        pData.Add(paramList[count], val.ToString());
                        count++;
                    }
                }
                return pData;
               }
        }
 public Boolean InstantiateQuandl(string quandlDatabase, string datacodeParams, int datapointsNumber, string frequency)
 {
     this.quandlObject = QuandlProcess.GrabData(quandlDatabase, datacodeParams, datapointsNumber, frequency);
     return true;
 }