async Task <List <Observation2> > LoadTheData() { var sf = await Package.Current.InstalledLocation.GetFileAsync(@"Assets\MSFT.json"); var jsonText = await Windows.Storage.FileIO.ReadTextAsync(sf); var json = JsonObject.Parse(jsonText); var prices = json.GetNamedObject("Time Series (Daily)"); var list = new List <Observation2>(); foreach (var price in prices) { // this is an object not an array so we lose the ordering var date = price.Key; var ts = DateTime.Parse(date); var ohlcv = price.Value.GetObject(); var open = ohlcv.GetNamedString("1. open"); var high = ohlcv.GetNamedString("2. high"); var low = ohlcv.GetNamedString("3. low"); var close = ohlcv.GetNamedString("4. close"); var volume = ohlcv.GetNamedString("5. volume"); var obs = new Observation2(date, double.Parse(open), double.Parse(high), double.Parse(low), double.Parse(close), int.Parse(volume)) { Timestamp = ts }; list.Add(obs); } // since it's a Map we need to sort things based on the "date" keys list.Sort((o1, o2) => { return(o1.Timestamp.CompareTo(o2.Timestamp)); }); return(list); }
/// <summary> /// Fabricate the "next" observation. /// </summary> /// <param name="label"></param> /// <returns></returns> protected Observation2 Next(string label) { var v1 = 4 + .5 - rnd.NextDouble(); var v2 = 3 + .5 - rnd.NextDouble(); var v3 = -2 + .5 - rnd.NextDouble(); var v4 = -4 + .5 - rnd.NextDouble(); var v5 = 10 * rnd.NextDouble(); var obs = new Observation2(label, v1, v2, v3, v4, (int)v5); return(obs); }