public Models.Bar[] Get(string symbol, string date) { if (bars == null) { loadBars(); } //DateTime inDate = DateTime.Parse("01/26/2016"); int dayNo = Array.BinarySearch(dates, date); int dayStart = 7 * symbols.Length * 390 * dayNo; int[] v = new int[1]; int symbolNo = Array.BinarySearch(symbols, symbol); if (symbolNo < 0 || dayNo < 0) { return(null); } //int symbolNo = 1; int b; List <Models.Bar> bz = new List <Models.Bar>(); DateTime dt = DateTime.Parse(date).AddHours(9.5).AddMinutes(1); for (int i = 0; i < 390; i++) { int off = i * 7 * symbols.Length; b = (symbolNo * 7) + off + dayStart; Buffer.BlockCopy(bars, (b * 4) + 24, v, 0, 4); Models.Bar bar = new Models.Bar() { Open = bars[b + 0], Close = bars[b + 3], High = bars[b + 1], Low = bars[b + 2], Volume = v[0], Time = dt.AddMinutes(i), DayHigh = bars[b + 4], DayLow = bars[b + 5] }; bz.Add(bar); } return(bz.ToArray()); }
protected List <Models.Bar> GetBars(Models.QuoteHistoryRoot quoteHistory) { List <Models.Bar> barsList = new List <Models.Bar>(); for (int i = 0; i < quoteHistory.chart.result[0].timestamp.Count; i++) { int gmtoffset = -14400; int timestamp = quoteHistory.chart.result[0].timestamp[i]; int timestampWithOffset = timestamp + gmtoffset; DateTimeOffset timestampWithoutOffset = DateTimeOffset.FromUnixTimeSeconds(timestamp); DateTimeOffset timestampWitOffset = DateTimeOffset.FromUnixTimeSeconds(timestampWithOffset); var quote = quoteHistory.chart.result[0].indicators.quote[0]; var bar = new Models.Bar() { TimestampUtc = timestampWithoutOffset.DateTime , TimestampOffset = timestampWitOffset.DateTime , Open = quote.open[i] , Close = quote.close[i] , High = quote.high[i] , Low = quote.low[i] , Volume = quote.volume[i] , EpochTimestamp = EpochTime(timestampWithoutOffset.DateTime) }; if (barsList.Count > 0 && i > 0) { bar.PreviousBar = barsList[i - 1]; barsList[i - 1].NextBar = bar; } barsList.Add(bar); } return(barsList); }
/// <summary> /// 使用DefaultModelBinder /// /baz?Name=baz&Desc=hehe /// </summary> /// <param name="bar"></param> /// <returns></returns> public ActionResult Baz(Models.Bar bar) { return(Json(bar, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 参数标记ModelBinder /// </summary> /// <param name="bar"></param> /// <returns></returns> public ActionResult Bar([ModelBinder(typeof(Models.BarModelBinder))] Models.Bar bar) { return(Json(bar, JsonRequestBehavior.AllowGet)); }