N
nalyc
Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi 读取大智慧2的日线数据,
-----------------------------------
说明:日线数据文件day.dat
case DataTypes.hq:
fileName = "DAY.DAT";
startAddress = 0x41000;
blockSize = 8192;
recordSize = 32;
codeIsLong = false;
fieldString =
"dm,代码,code,10,0,0,;" +
"rq,日期,date,4,1,0,;" +
"kp,开盘,single,4,2,4,B;" +
"zg,最高,single,4,3,8,B;" +
"zd,最低,single,4,4,12,B;" +
"sp,收盘,single,4,5,16,B;" +
"sl,成交数量,single,4,6,20,A;"+
"je,成交金额,single,4,7,24,";
数据格式几乎与分析家相同
起止地址 数据内容 数据含义 数据类型
00 - 03 F4 9B 13 FC 文件标志 int
04 - 07 00 06 00 00 未知 int
08 - 0B 00 00 00 00 保留 int
0C - 0F 97 04 00 00 证券总数 int
10 - 13 00 18 00 00 未知 int需添加之起始块号
14 - 17 DB 17 00 00 未知 int当前最后空块号
18 - 21 31 41 30 30 30...FF 证券代码 byte[10]
22 - 25 B0 09 00 00 日线记录数 int
26 - 57 00 00 25 04...FF FF 记录块号 char[25]
......
记录块开始于0x41000
41000 - 41003 80 47 B2 2B 日期 int
41004 - 41007 B9 1E 25 41 开盘价 float
41008 - 4100B CD CC 4C 41 最高价 float
4100C - 4100F EC 51 18 41 最低价 float
41010 - 41013 9A 99 41 41 收盘价 float
41014 - 41017 80 06 B2 47 成交量 float
41018 - 4101B 40 1C BC 4C 成交金额 float
4101C - 4101D 00 00 上涨家数 char
4101E - 4101F 00 00 下跌家数 char
注:
1)起止地址、数据内容为十六进制,数据类型为 Delphi 下之定义。
2)从18h开始至40017h每64byte为一条股票数据分配记录,含义如上表18h - 57h所示;
3)从41000h开始每8KB为一股票数据存储块,每个股票数据存储块共存储256条日线记录,
每一条记录的长度为32 byte(含义如上表;上涨家数及下跌家数只对指数有效);
4)从41000h开始的8KB为第0号数据存储块,以后类推;
5)系统对每个股票日线数据存储以存储块为单位进行分配。
6)具体应用实例分析家数据管理程序。
7) 日期字段的意义为:实际日期 = StrToDate(^1970-01-01^)+(日期字段 div 86400);
即“日期字段”除以86400所得数为实际日期距1970年01月01日的天数。
-----------------------------------
说明:日线数据文件day.dat
case DataTypes.hq:
fileName = "DAY.DAT";
startAddress = 0x41000;
blockSize = 8192;
recordSize = 32;
codeIsLong = false;
fieldString =
"dm,代码,code,10,0,0,;" +
"rq,日期,date,4,1,0,;" +
"kp,开盘,single,4,2,4,B;" +
"zg,最高,single,4,3,8,B;" +
"zd,最低,single,4,4,12,B;" +
"sp,收盘,single,4,5,16,B;" +
"sl,成交数量,single,4,6,20,A;"+
"je,成交金额,single,4,7,24,";
数据格式几乎与分析家相同
起止地址 数据内容 数据含义 数据类型
00 - 03 F4 9B 13 FC 文件标志 int
04 - 07 00 06 00 00 未知 int
08 - 0B 00 00 00 00 保留 int
0C - 0F 97 04 00 00 证券总数 int
10 - 13 00 18 00 00 未知 int需添加之起始块号
14 - 17 DB 17 00 00 未知 int当前最后空块号
18 - 21 31 41 30 30 30...FF 证券代码 byte[10]
22 - 25 B0 09 00 00 日线记录数 int
26 - 57 00 00 25 04...FF FF 记录块号 char[25]
......
记录块开始于0x41000
41000 - 41003 80 47 B2 2B 日期 int
41004 - 41007 B9 1E 25 41 开盘价 float
41008 - 4100B CD CC 4C 41 最高价 float
4100C - 4100F EC 51 18 41 最低价 float
41010 - 41013 9A 99 41 41 收盘价 float
41014 - 41017 80 06 B2 47 成交量 float
41018 - 4101B 40 1C BC 4C 成交金额 float
4101C - 4101D 00 00 上涨家数 char
4101E - 4101F 00 00 下跌家数 char
注:
1)起止地址、数据内容为十六进制,数据类型为 Delphi 下之定义。
2)从18h开始至40017h每64byte为一条股票数据分配记录,含义如上表18h - 57h所示;
3)从41000h开始每8KB为一股票数据存储块,每个股票数据存储块共存储256条日线记录,
每一条记录的长度为32 byte(含义如上表;上涨家数及下跌家数只对指数有效);
4)从41000h开始的8KB为第0号数据存储块,以后类推;
5)系统对每个股票日线数据存储以存储块为单位进行分配。
6)具体应用实例分析家数据管理程序。
7) 日期字段的意义为:实际日期 = StrToDate(^1970-01-01^)+(日期字段 div 86400);
即“日期字段”除以86400所得数为实际日期距1970年01月01日的天数。