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