void _ResolveL1Quote(BinaryReader br) { if (_dictSERef == null) { return; } int count = br.ReadInt32(); int size = br.ReadInt32(); _hsAltered.Clear(); for (int i = 0; i < count; i++) { var code = Encoding.ASCII.GetString(br.ReadBytes(16)).ToLower().Substring(1).Split(new char[] { '\0' })[0]; if (code.Length == 0) { br.ReadBytes(170 - 16); break; } var name = Encoding.GetEncoding(936).GetString(br.ReadBytes(16)).Split(new char[] { '\0' })[0]; var factor = code.StartsWith("h510") || code.StartsWith("z160") ? 1000.0f : 100.0f; var pc = br.ReadInt32() / factor; var lh = br.ReadInt32() / factor; var ll = br.ReadInt32() / factor; StockEntity se = null; if (_dictSERef.ContainsKey(code)) { se = _dictSERef[code]; } else { se = new StockEntity() { UniqueCode = code, Code = code.Substring(1), Name = name }; _dictSERef[code] = se; } DateTime dt; lock (se) { se.PreClose = pc; se.LimitHigh = lh; se.LimitLow = ll; br.ReadBytes(2); // 忽略一个字段SHORT dt = _dtScrach.AddSeconds(br.ReadUInt32()); se.Open = br.ReadInt32() / factor; se.Highest = br.ReadInt32() / factor; se.Lowest = br.ReadInt32() / factor; se.Latest = br.ReadInt32() / factor; var VOL = br.ReadUInt32() * 100; var VOL_old = se.TotalVolume; se.TotalVolume = VOL; if (VOL > VOL_old) { se.DataInfoList.Add(new NewDataInfo() { Delta_num = (int)(VOL - VOL_old), Close_num = (int)VOL, Last_price = se.Latest, Time = dt.ToString("hh:mm:ss") }); if (se.DataInfoList.Count > 30) { se.DataInfoList.RemoveAt(0); } } se.TotalAmount = (UInt64)br.ReadDouble(); se.TotalDealtCount = br.ReadUInt32(); for (int k = 0; k < 5; k++) { se.BidPairs[k].Price = br.ReadInt32() / factor; } for (int k = 0; k < 5; k++) { se.BidPairs[k].Count = br.ReadInt32() * 100; } for (int k = 0; k < 5; k++) { se.AskPairs[k].Price = br.ReadInt32() / factor; } for (int k = 0; k < 5; k++) { se.AskPairs[k].Count = br.ReadInt32() * 100; } } var rn1 = br.ReadInt32(); var rn2 = br.ReadInt32(); _hsAltered.Add(se.UniqueCode); //if(se.UniqueCode.Contains("002796")) writelog(DateTime.Now.ToString("yyyyMMdd") + "\\盘口\\" + se.Code + ".txt", string.Format("收到 {0} 卖一盘口:{1},{2}", se.Name, se.AskPairs[0].Price, se.AskPairs[0].Count)); //writelog("dzh_log_pk.txt", string.Format("收到 {0} 买一盘口:{1},{2}", se.Name, se.BidPairs[0].Price, se.BidPairs[0].Count)); //Console.ForegroundColor = ConsoleColor.Red; //Console.Write("new quote arrvies:"); //Console.ForegroundColor = ConsoleColor.Green; //Console.Write(string.Format("{0} 最新价:{1} 时间:{2}\n", se.UniqueCode, se.Latest, dt.ToShortTimeString())); } }