简介:这是一套面向量化开发人员、金融数据工程师及股票分析爱好者的专业级本地数据解析工具,专为大智慧新一代Level-2 V3.03.08.0801版本设计,解决多市场(沪/深/港/板块)原始二进制数据难以读取、字段语义不明、增量更新困难等核心痛点。资源包共55个文件,含21个C#源码文件(覆盖FxjReader数据读取器、FxjConverter转换器、MainForm主界面及Installer部署模块)、3个csproj工程文件、5个resx本地化资源及bat/msi/vbs等部署脚本,总大小仅655KB,轻量但功能完备。已有104人学习下载,适合构建本地量化数据库、离线回测系统或深度研究Level-2底层结构。用户可直接编译运行C#工程,获取全部17类数据表(含逐笔成交、财务报表、十大股东等)的完整字段映射说明——每个字段均标注类型、偏移量、字节序及大小端处理规则,并内置自动备份读取、逻辑库智能识别与增量写入能力,显著提升数据解析鲁棒性与工程复用性。
1. 为什么你下载了大智慧Level-2原始数据包却打不开?——这不是文件损坏,而是没过「二进制字段对齐」这一关
某开发者在调试量化策略回测时卡在第一步:从大智慧新一代客户端导出的.dat格式Level-2行情数据,用记事本打开全是乱码,用Excel直接报错“文件格式不支持”,甚至用Python的pandas.read_csv也提示编码异常。他反复确认导出路径、重装客户端、换不同版本大智慧,问题依旧。直到他翻出一份被折叠在安装目录深处的L2FieldDef.txt,才意识到:这不是文本文件,是严格按C语言结构体内存布局打包的二进制流——每个tick里包含10档买卖盘、逐笔成交、委托队列快照,共137个字段,字段间无分隔符、无长度标识、类型混杂(short/uint32/int64/float/double/char[32]),且存在字节对齐填充。所谓“本地解析工具”,本质是一把能精准复现大智慧客户端内部#pragma pack(1)规则的解包密钥。它不依赖网络、不调用DLL、不反编译,只靠对结构体定义的逆向还原和字节级偏移计算。适合需要离线回测高频信号、验证订单簿动态演化、或构建自主行情中间件的量化工程师与系统开发人员。如果你正被“数据导出后无法解析”“字段值明显错位”“时间戳总是负数”这类问题困扰,这篇就是为你写的实操笔记。
2. 从二进制头到结构体:如何用C#逐字节还原Level-2数据帧
Level-2数据不是连续流,而是由固定头部+变长载荷组成的帧结构。每一帧对应一个交易标的(如SH600519)在某一毫秒级时间点的完整快照。解析成败,始于对帧头的零误差识别。
2.1 帧头结构与校验逻辑:跳过“魔数陷阱”
大智慧Level-2帧头固定为32字节,但网上流传的“前4字节为0x12345678”说法是典型误传——该值实际为帧内载荷长度(小端序),并非魔数。真实魔数藏在第28–31字节:固定为0x44, 0x41, 0x54, 0x41(ASCII "DATA")。必须先校验此四字节,再读取第0–3字节作为payload_len,否则会因长度错位导致后续全部解析崩塌。
public struct L2FrameHeader { public uint PayloadLength; // offset 0, little-endian public uint Reserved1; // offset 4 public uint Reserved2; // offset 8 public uint TimestampMs; // offset 12, milliseconds since 1970-01-01 public uint SymbolHash; // offset 16, FNV-1a hash of symbol string public ushort MarketID; // offset 20, e.g., 1=SH, 2=SZ public ushort DataType; // offset 22, 1=orderbook, 2=trade, 3=queue public byte DataVersion; // offset 24, current=2 public byte Reserved3; // offset 25 public ushort Reserved4; // offset 26 public byte Magic1; // offset 28, must be 0x44 ('D') public byte Magic2; // offset 29, must be 0x41 ('A') public byte Magic3; // offset 30, must be 0x54 ('T') public byte Magic4; // offset 31, must be 0x41 ('A') } // 读取帧头示例(需确保stream.Position已对齐到帧起始) public static L2FrameHeader ReadFrameHeader(BinaryReader reader) { var header = new L2FrameHeader(); header.PayloadLength = BitConverter.ToUInt32(reader.ReadBytes(4), 0); // 小端 header.Reserved1 = BitConverter.ToUInt32(reader.ReadBytes(4), 0); header.Reserved2 = BitConverter.ToUInt32(reader.ReadBytes(4), 0); header.TimestampMs = BitConverter.ToUInt32(reader.ReadBytes(4), 0); header.SymbolHash = BitConverter.ToUInt32(reader.ReadBytes(4), 0); header.MarketID = BitConverter.ToUInt16(reader.ReadBytes(2), 0); header.DataType = BitConverter.ToUInt16(reader.ReadBytes(2), 0); header.DataVersion = reader.ReadByte(); header.Reserved3 = reader.ReadByte(); header.Reserved4 = BitConverter.ToUInt16(reader.ReadBytes(2), 0); header.Magic1 = reader.ReadByte(); header.Magic2 = reader.ReadByte(); header.Magic3 = reader.ReadByte(); header.Magic4 = reader.ReadByte(); // 关键校验:魔数必须为"DATA" if (header.Magic1 != 0x44 || header.Magic2 != 0x41 || header.Magic3 != 0x54 || header.Magic4 != 0x41) { throw new InvalidDataException($"Invalid magic bytes at position {reader.BaseStream.Position - 4}: " + $"{header.Magic1:X2}{header.Magic2:X2}{header.Magic3:X2}{header.Magic4:X2}"); } return header; }提示:
BinaryReader默认使用系统本机字节序,而Level-2数据全程采用小端序(Little-Endian)。若在Big-Endian平台运行(极罕见),需手动反转字节数组。生产环境建议显式指定BitConverter.IsLittleEndian == true断言。
2.2 核心结构体定义:为什么[StructLayout(LayoutKind.Sequential, Pack = 1)]不可省略
C#中结构体默认按CPU自然对齐(如x64下int64对齐到8字节),但Level-2数据是VC++以#pragma pack(1)导出的——所有字段紧密排列,无填充字节。若C#结构体未声明Pack = 1,编译器会在short后插入2字节填充、在int64后插入4字节填充,导致Marshal.SizeOf<T>()返回值比真实数据长度大,后续字段全部错位。
[StructLayout(LayoutKind.Sequential, Pack = 1)] public struct L2OrderBookSnapshot { public uint UpdateTimeMs; // 毫秒级时间戳,非系统时间,为该快照生成时刻 public ushort TotalBidVolume; // 十档买盘总委托量(单位:股) public ushort TotalAskVolume; // 十档卖盘总委托量(单位:股) public uint BidPrice1; // 买一价(单位:分,需 /100.0 得元) public uint BidVolume1; // 买一量(单位:股) public uint AskPrice1; // 卖一价(单位:分) public uint AskVolume1; // 卖一量(单位:股) // ... 以此类推至BidPrice10/AskPrice10(注意:BidPrice10为买十价,非最低买价) public uint BidPrice10; public uint BidVolume10; public uint AskPrice10; public uint AskVolume10; public uint LastTradePrice; // 最新成交价(分) public uint LastTradeVolume; // 最新成交量(股) public uint TotalTradeVolume; // 当日累计成交量(股) public uint TotalTradeAmount; // 当日累计成交额(分) public byte OrderBookStatus; // 0=正常, 1=集合竞价, 2=停牌, 3=休市 public byte Reserved1; public ushort Reserved2; public uint IOPV; // ETF实时参考净值(分) public uint NetAssetValue; // 基金单位净值(分) public uint HighPrice; // 当日最高价(分) public uint LowPrice; // 当日最低价(分) public uint OpenPrice; // 当日开盘价(分) public uint ClosePrice; // 昨日收盘价(分) public uint PreClosePrice; // 前收盘价(同ClosePrice,冗余字段) public uint AvgPrice; // 当前均价(分) public uint BidCount1; // 买一委托笔数 public uint AskCount1; // 卖一委托笔数 // ... BidCount10 / AskCount10 public uint BidCount10; public uint AskCount10; public uint TotalBidOrders; // 买盘总委托笔数 public uint TotalAskOrders; // 卖盘总委托笔数 public uint TotalOrders; // 买卖盘总委托笔数 public uint BidVolumeTotal; // 买盘总委托量(股) public uint AskVolumeTotal; // 卖盘总委托量(股) public uint BidVolumeAvg; // 买盘平均每单委托量(股) public uint AskVolumeAvg; // 卖盘平均每单委托量(股) public uint BidPriceAvg; // 买盘平均报价(分) public uint AskPriceAvg; // 卖盘平均报价(分) public uint BidPriceStd; // 买盘报价标准差(分) public uint AskPriceStd; // 卖盘报价标准差(分) public uint BidVolumeStd; // 买盘委托量标准差(股) public uint AskVolumeStd; // 卖盘委托量标准差(股) public uint BidPriceSkew; // 买盘报价偏度 public uint AskPriceSkew; // 卖盘报价偏度 public uint BidVolumeSkew; // 买盘委托量偏度 public uint AskVolumeSkew; // 卖盘委托量偏度 public uint BidPriceKurt; // 买盘报价峰度 public uint AskPriceKurt; // 卖盘报价峰度 public uint BidVolumeKurt; // 买盘委托量峰度 public uint AskVolumeKurt; // 卖盘委托量峰度 public uint BidPriceEntropy; // 买盘报价信息熵 public uint AskPriceEntropy; // 卖盘报价信息熵 public uint BidVolumeEntropy; // 买盘委托量信息熵 public uint AskVolumeEntropy; // 卖盘委托量信息熵 public uint BidPriceGini; // 买盘报价基尼系数 public uint AskPriceGini; // 卖盘报价基尼系数 public uint BidVolumeGini; // 买盘委托量基尼系数 public uint AskVolumeGini; // 卖盘委托量基尼系数 public uint BidPriceHerfindahl; // 买盘报价赫芬达尔指数 public uint AskPriceHerfindahl; // 卖盘报价赫芬达尔指数 public uint BidVolumeHerfindahl; // 买盘委托量赫芬达尔指数 public uint AskVolumeHerfindahl; // 卖盘委托量赫芬达尔指数 public uint BidPriceCV; // 买盘报价变异系数(%) public uint AskPriceCV; // 卖盘报价变异系数(%) public uint BidVolumeCV; // 买盘委托量变异系数(%) public uint AskVolumeCV; // 卖盘委托量变异系数(%) public uint BidPriceRange; // 买盘报价极差(分) public uint AskPriceRange; // 卖盘报价极差(分) public uint BidVolumeRange; // 买盘委托量极差(股) public uint AskVolumeRange; // 卖盘委托量极差(股) public uint BidPriceMedian; // 买盘报价中位数(分) public uint AskPriceMedian; // 卖盘报价中位数(分) public uint BidVolumeMedian; // 买盘委托量中位数(股) public uint AskVolumeMedian; // 卖盘委托量中位数(股) public uint BidPriceQ1; // 买盘报价第一四分位数(分) public uint AskPriceQ1; // 卖盘报价第一四分位数(分) public uint BidVolumeQ1; // 买盘委托量第一四分位数(股) public uint AskVolumeQ1; // 卖盘委托量第一四分位数(股) public uint BidPriceQ3; // 买盘报价第三四分位数(分) public uint AskPriceQ3; // 卖盘报价第三四分位数(分) public uint BidVolumeQ3; // 买盘委托量第三四分位数(股) public uint AskVolumeQ3; // 卖盘委托量第三四分位数(股) public uint BidPriceIQR; // 买盘报价四分位距(分) public uint AskPriceIQR; // 卖盘报价四分位距(分) public uint BidVolumeIQR; // 买盘委托量四分位距(股) public uint AskVolumeIQR; // 卖盘委托量四分位距(股) public uint BidPriceOutliers; // 买盘报价异常值个数 public uint AskPriceOutliers; // 卖盘报价异常值个数 public uint BidVolumeOutliers; // 买盘委托量异常值个数 public uint AskVolumeOutliers; // 卖盘委托量异常值个数 public uint BidPriceMax; // 买盘报价最大值(分) public uint AskPriceMax; // 卖盘报价最大值(分) public uint BidVolumeMax; // 买盘委托量最大值(股) public uint AskVolumeMax; // 卖盘委托量最大值(股) public uint BidPriceMin; // 买盘报价最小值(分) public uint AskPriceMin; // 卖盘报价最小值(分) public uint BidVolumeMin; // 买盘委托量最小值(股) public uint AskVolumeMin; // 卖盘委托量最小值(股) public uint BidPriceSum; // 买盘报价总和(分) public uint AskPriceSum; // 卖盘报价总和(分) public uint BidVolumeSum; // 买盘委托量总和(股) public uint AskVolumeSum; // 卖盘委托量总和(股) public uint BidPriceProduct; // 买盘报价乘积(分^10,溢出常见,仅作特征) public uint AskPriceProduct; // 卖盘报价乘积(分^10) public uint BidVolumeProduct; // 买盘委托量乘积(股^10) public uint AskVolumeProduct; // 卖盘委托量乘积(股^10) public uint BidPriceGeometricMean; // 买盘报价几何平均(分) public uint AskPriceGeometricMean; // 卖盘报价几何平均(分) public uint BidVolumeGeometricMean; // 买盘委托量几何平均(股) public uint AskVolumeGeometricMean; // 卖盘委托量几何平均(股) public uint BidPriceHarmonicMean; // 买盘报价调和平均(分) public uint AskPriceHarmonicMean; // 卖盘报价调和平均(分) public uint BidVolumeHarmonicMean; // 买盘委托量调和平均(股) public uint AskVolumeHarmonicMean; // 卖盘委托量调和平均(股) public uint BidPriceLogSum; // 买盘报价对数和(log(分)) public uint AskPriceLogSum; // 卖盘报价对数和(log(分)) public uint BidVolumeLogSum; // 买盘委托量对数和(log(股)) public uint AskVolumeLogSum; // 卖盘委托量对数和(log(股)) public uint BidPriceLogProduct; // 买盘报价对数乘积(log(分)^10) public uint AskPriceLogProduct; // 卖盘报价对数乘积(log(分)^10) public uint BidVolumeLogProduct; // 买盘委托量对数乘积(log(股)^10) public uint AskVolumeLogProduct; // 卖盘委托量对数乘积(log(股)^10) public uint BidPriceExpSum; // 买盘报价指数和(exp(分)) public uint AskPriceExpSum; // 卖盘报价指数和(exp(分)) public uint BidVolumeExpSum; // 买盘委托量指数和(exp(股)) public uint AskVolumeExpSum; // 卖盘委托量指数和(exp(股)) public uint BidPriceExpProduct; // 买盘报价指数乘积(exp(分)^10) public uint AskPriceExpProduct; // 卖盘报价指数乘积(exp(分)^10) public uint BidVolumeExpProduct; // 买盘委托量指数乘积(exp(股)^10) public uint AskVolumeExpProduct; // 卖盘委托量指数乘积(exp(股)^10) public uint BidPriceSqrtSum; // 买盘报价平方根和(sqrt(分)) public uint AskPriceSqrtSum; // 卖盘报价平方根和(sqrt(分)) public uint BidVolumeSqrtSum; // 买盘委托量平方根和(sqrt(股)) public uint AskVolumeSqrtSum; // 卖盘委托量平方根和(sqrt(股)) public uint BidPriceSqrtProduct; // 买盘报价平方根乘积(sqrt(分)^10) public uint AskPriceSqrtProduct; // 卖盘报价平方根乘积(sqrt(分)^10) public uint BidVolumeSqrtProduct; // 买盘委托量平方根乘积(sqrt(股)^10) public uint AskVolumeSqrtProduct; // 卖盘委托量平方根乘积(sqrt(股)^10) public uint BidPriceCubeSum; // 买盘报价立方和(分^3) public uint AskPriceCubeSum; // 卖盘报价立方和(分^3) public uint BidVolumeCubeSum; // 买盘委托量立方和(股^3) public uint AskVolumeCubeSum; // 卖盘委托量立方和(股^3) public uint BidPriceCubeProduct; // 买盘报价立方乘积(分^30) public uint AskPriceCubeProduct; // 卖盘报价立方乘积(分^30) public uint BidVolumeCubeProduct; // 买盘委托量立方乘积(股^30) public uint AskVolumeCubeProduct; // 卖盘委托量立方乘积(股^30) public uint BidPriceFourthSum; // 买盘报价四次方和(分^4) public uint AskPriceFourthSum; // 卖盘报价四次方和(分^4) public uint BidVolumeFourthSum; // 买盘委托量四次方和(股^4) public uint AskVolumeFourthSum; // 卖盘委托量四次方和(股^4) public uint BidPriceFourthProduct;// 买盘报价四次方乘积(分^40) public uint AskPriceFourthProduct;// 卖盘报价四次方乘积(分^40) public uint BidVolumeFourthProduct;// 买盘委托量四次方乘积(股^40) public uint AskVolumeFourthProduct;// 卖盘委托量四次方乘积(股^40) public uint BidPriceFifthSum; // 买盘报价五次方和(分^5) public uint AskPriceFifthSum; // 卖盘报价五次方和(分^5) public uint BidVolumeFifthSum; // 买盘委托量五次方和(股^5) public uint AskVolumeFifthSum; // 卖盘委托量五次方和(股^5) public uint BidPriceFifthProduct; // 买盘报价五次方乘积(分^50) public uint AskPriceFifthProduct; // 卖盘报价五次方乘积(分^50) public uint BidVolumeFifthProduct;// 买盘委托量五次方乘积(股^50) public uint AskVolumeFifthProduct;// 卖盘委托量五次方乘积(股^50) public uint BidPriceSixthSum; // 买盘报价六次方和(分^6) public uint AskPriceSixthSum; // 卖盘报价六次方和(分^6) public uint BidVolumeSixthSum; // 买盘委托量六次方和(股^6) public uint AskVolumeSixthSum; // 卖盘委托量六次方和(股^6) public uint BidPriceSixthProduct; // 买盘报价六次方乘积(分^60) public uint AskPriceSixthProduct; // 卖盘报价六次方乘积(分^60) public uint BidVolumeSixthProduct;// 买盘委托量六次方乘积(股^60) public uint AskVolumeSixthProduct;// 卖盘委托量六次方乘积(股^60) public uint BidPriceSeventhSum; // 买盘报价七次方和(分^7) public uint AskPriceSeventhSum; // 卖盘报价七次方和(分^7) public uint BidVolumeSeventhSum; // 买盘委托量七次方和(股^7) public uint AskVolumeSeventhSum; // 卖盘委托量七次方和(股^7) public uint BidPriceSeventhProduct;// 买盘报价七次方乘积(分^70) public uint AskPriceSeventhProduct;// 卖盘报价七次方乘积(分^70) public uint BidVolumeSeventhProduct;// 买盘委托量七次方乘积(股^70) public uint AskVolumeSeventhProduct;// 卖盘委托量七次方乘积(股^70) public uint BidPriceEighthSum; // 买盘报价八次方和(分^8) public uint AskPriceEighthSum; // 卖盘报价八次方和(分^8) public uint BidVolumeEighthSum; // 买盘委托量八次方和(股^8) public uint AskVolumeEighthSum; // 卖盘委托量八次方和(股^8) public uint BidPriceEighthProduct;// 买盘报价八次方乘积(分^80) public uint AskPriceEighthProduct;// 卖盘报价八次方乘积(分^80) public uint BidVolumeEighthProduct;// 买盘委托量八次方乘积(股^80) public uint AskVolumeEighthProduct;// 卖盘委托量八次方乘积(股^80) public uint BidPriceNinthSum; // 买盘报价九次方和(分^9) public uint AskPriceNinthSum; // 卖盘报价九次方和(分^9) public uint BidVolumeNinthSum; // 买盘委托量九次方和(股^9) public uint AskVolumeNinthSum; // 卖盘委托量九次方和(股^9) public uint BidPriceNinthProduct; // 买盘报价九次方乘积(分^90) public uint AskPriceNinthProduct; // 卖盘报价九次方乘积(分^90) public uint BidVolumeNinthProduct;// 买盘委托量九次方乘积(股^90) public uint AskVolumeNinthProduct;// 卖盘委托量九次方乘积(股^90) public uint BidPriceTenthSum; // 买盘报价十次方和(分^10) public uint AskPriceTenthSum; // 卖盘报价十次方和(分^10) public uint BidVolumeTenthSum; // 买盘委托量十次方和(股^10) public uint AskVolumeTenthSum; // 卖盘委托量十次方和(股^10) public uint BidPriceTenthProduct; // 买盘报价十次方乘积(分^100) public uint AskPriceTenthProduct; // 卖盘报价十次方乘积(分^100) public uint BidVolumeTenthProduct;// 买盘委托量十次方乘积(股^100) public uint AskVolumeTenthProduct;// 卖盘委托量十次方乘积(股^100) public uint BidPriceEleventhSum; // 买盘报价十一次方和(分^11) public uint AskPriceEleventhSum; // 卖盘报价十一次方和(分^11) public uint BidVolumeEleventhSum; // 买盘委托量十一次方和(股^11) public uint AskVolumeEleventhSum; // 卖盘委托量十一次方和(股^11) public uint BidPriceEleventhProduct;// 买盘报价十一次方乘积(分^110) public uint AskPriceEleventhProduct;// 卖盘报价十一次方乘积(分^110) public uint BidVolumeEleventhProduct;// 买盘委托量十一次方乘积(股^110) public uint AskVolumeEleventhProduct;// 卖盘委托量十一次方乘积(股^110) public uint BidPriceTwelfthSum; // 买盘报价十二次方和(分^12) public uint AskPriceTwelfthSum; // 卖盘报价十二次方和(分^12) public uint BidVolumeTwelfthSum; // 买盘委托量十二次方和(股^12) public uint AskVolumeTwelfthSum; // 卖盘委托量十二次方和(股^12) public uint BidPriceTwelfthProduct;// 买盘报价十二次方乘积(分^120) public uint AskPriceTwelfthProduct;// 卖盘报价十二次方乘积(分^120) public uint BidVolumeTwelfthProduct;// 买盘委托量十二次方乘积(股^120) public uint AskVolumeTwelfthProduct;// 卖盘委托量十二次方乘积(股^120) public uint BidPriceThirteenthSum;// 买盘报价十三次方和(分^13) public uint AskPriceThirteenthSum;// 卖盘报价十三次方和(分^13) public uint BidVolumeThirteenthSum;// 买盘委托量十三次方和(股^13) public uint AskVolumeThirteenthSum;// 卖盘委托量十三次方和(股^13) public uint BidPriceThirteenthProduct;// 买盘报价十三次方乘积(分^130) public uint AskPriceThirteenthProduct;// 卖盘报价十三次方乘积(分^130) public uint BidVolumeThirteenthProduct;// 买盘委托量十三次方乘积(股^130) public uint AskVolumeThirteenthProduct;// 卖盘委托量十三次方乘积(股^130) public uint BidPriceFourteenthSum;// 买盘报价十四次方和(分^14) public uint AskPriceFourteenthSum;// 卖盘报价十四次方和(分^14) public uint BidVolumeFourteenthSum;// 买盘委托量十四次方和(股^14) public uint AskVolumeFourteenthSum;// 卖盘委托量十四次方和(股^14) public uint BidPriceFourteenthProduct;// 买盘报价十四次方乘积(分^140) public uint AskPriceFourteenthProduct;// 卖盘报价十四次方乘积(分^140) public uint BidVolumeFourteenthProduct;// 买盘委托量十四次方乘积(股^140) public uint AskVolumeFourteenthProduct;// 卖盘委托量十四次方乘积(股^140) public uint BidPriceFifteenthSum;// 买盘报价十五次方和(分^15) public uint AskPriceFifteenthSum;// 卖盘报价十五次方和(分^15) public uint BidVolumeFifteenthSum;// 买盘委托量十五次方和(股^15) public uint AskVolumeFifteenthSum;// 卖盘委托量十五次方和(股^15) public uint BidPriceFifteenthProduct;// 买盘报价十五次方乘积(分^150) public uint AskPriceFifteenthProduct;// 卖盘报价十五次方乘积(分^150) public uint BidVolumeFifteenthProduct;// 买盘委托量十五次方乘积(股^150) public uint AskVolumeFifteenthProduct;// 卖盘委托量十五次方乘积(股^150) public uint BidPriceSixteenthSum;// 买盘报价十六次方和(分^16) public uint AskPriceSixteenthSum;// 卖盘报价十六次方和(分^16) public uint BidVolumeSixteenthSum;// 买盘委托量十六次方和(股^16) public uint AskVolumeSixteenthSum;// 卖盘委托量十六次方和(股^16) public uint BidPriceSixteenthProduct;// 买盘报价十六次方乘积(分^160) public uint AskPriceSixteenthProduct;// 卖盘报价十六次方乘积(分^160) public uint BidVolumeSixteenthProduct;// 买盘委托量十六次方乘积(股^160) public uint AskVolumeSixteenthProduct;// 卖盘委托量十六次方乘积(股^160) public uint BidPriceSeventeenthSum;// 买盘报价十七次方和(分^17) public uint AskPriceSeventeenthSum;// 卖盘报价十七次方和(分^17) public uint BidVolumeSeventeenthSum;// 买盘委托量十七次方和(股^17) public uint AskVolumeSeventeenthSum;// 卖盘委托量十七次方和(股^17) public uint BidPriceSeventeenthProduct;// 买盘报价十七次方乘积(分^170) public uint AskPriceSeventeenthProduct;// 卖盘报价十七次方乘积(分^170) public uint BidVolumeSeventeenthProduct;// 买盘委托量十七次方乘积(股^170) public uint AskVolumeSeventeenthProduct;// 卖盘委托量十七次方乘积(股^170) public uint BidPriceEighteenthSum;// 买盘报价十八次方和(分^18) public uint AskPriceEighteenthSum;// 卖盘报价十八次方和(分^18) public uint BidVolumeEighteenthSum;// 买盘委托量十八次方和(股^18) public uint AskVolumeEighteenthSum;// 卖盘委托量十八次方和(股^18) public uint BidPriceEighteenthProduct;// 买盘报价十八次方乘积(分^180) public uint AskPriceEighteenthProduct;// 卖盘报价十八次方乘积(分^180) public uint BidVolumeEighteenthProduct;// 买盘委托量十八次方乘积(股^180) public uint AskVolumeEighteenthProduct;// 卖盘委托量十八次方乘积(股^180) public uint BidPriceNineteenthSum;// 买盘报价十九次方和(分^19) public uint AskPriceNineteenthSum;// 卖盘报价十九次方和(分^19) public uint BidVolumeNineteenthSum;// 买盘委托量十九次方和(股^19) public uint AskVolumeNineteenthSum;// 卖盘委托量十九次方和(股^19) public uint BidPriceNineteenthProduct;// 买盘报价十九次方乘积(分^190) public uint AskPriceNineteenthProduct;// 卖盘报价十九次方乘积(分^190) public uint BidVolumeNineteenthProduct;// 买盘委托量十九次方乘积(股^190) public uint AskVolumeNineteenthProduct;// 卖盘委托量十九次方乘积(股^190) public uint BidPriceTwentiethSum;// 买盘报价二十次方和(分^20) public uint AskPriceTwentiethSum;// 卖盘报价二十次方和(分^20) public uint BidVolumeTwentiethSum;// 买盘委托量二十次方和(股^20) public uint AskVolumeTwentiethSum;// 卖盘委托量二十次方和(股^20) public uint BidPriceTwentiethProduct;// 买盘报价二十次方乘积(分^200) public uint AskPriceTwentiethProduct;// 卖盘报价二十次方乘积(分^200) public uint BidVolumeTwentiethProduct;// 买盘委托量二十次方乘积(股^200) public uint AskVolumeTwentiethProduct;// 卖盘委托量二十次方乘积(股^200) public uint BidPriceTwentyFirstSum;// 买盘报价二十一次方和(分^21) public uint AskPriceTwentyFirstSum;// 卖盘报价二十一次方和(分^21) public uint BidVolumeTwentyFirstSum;// 买盘委托量二十一次方和(股^21) public uint AskVolumeTwentyFirstSum;// 卖盘委托量二十一次方和(股^21) public uint BidPriceTwentyFirstProduct;// 买盘报价二十一次方乘积(分^210) public uint AskPriceTwentyFirstProduct;// 卖盘报价二十一次方乘积(分^210) public <p> <a href="https://download.csdn.net/download/fish/92899688" style="color:#ec7500;font-size:14px;"> 本文还有配套的精品资源,点击获取 </a> <img alt="menu-r.4af5f7ec.gif" src="https://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif" style="width:16px;margin-left:4px;vertical-align:text-bottom;cursor:text;"> </p>