示例#1
0
        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());
        }
示例#2
0
        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);
        }
示例#3
0
 /// <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));
 }
示例#4
0
 /// <summary>
 /// 参数标记ModelBinder
 /// </summary>
 /// <param name="bar"></param>
 /// <returns></returns>
 public ActionResult Bar([ModelBinder(typeof(Models.BarModelBinder))] Models.Bar bar)
 {
     return(Json(bar, JsonRequestBehavior.AllowGet));
 }