大智慧日K线的数据结构

 大智慧股票行情软件是目前应用广泛的一个炒股工具,有时我们需要自编炒股的算法进行研究,如提取某只股票的收盘价,成交量等,这时候如果能直接读大智慧股票分析系统的数据格式,将对软件的编制带来极大的方便。(注:大智慧用的钱龙数据格式,本文适用于钱龙股票行情软件中的日k线数据)。
一、数据文件和数据结构: 
大智慧数据文件和数据结构:(假设大智慧股票行情软件安装在D:dzh目录下) 
上海日线存储路径为:D:dzhDATASHaseDay,文件扩展名为:.day 
上海周线存储路径为:D:dzhDATASHaseweek,文件扩展名为: .wek 
上海月线存储路径为:D:dzhDATASHasemonth,文件扩展名为: .mnt 
深圳日线存储路径为:D:dzhDATASZnseDay 
深圳周线存储路径为:D:dzhDATASZnseweek 
深圳月线存储路径为:D:dzhDATASZnsemonth 
周线,月线格式与日线格式一致. 
以深发展日线为例: 
1A76:0100 D6 CD 2F 01 52 07 01 00-52 07 01 00 52 07 01 00 
1A76:0110 52 07 01 00 86 0F 00 00-4D 02 00 00 00 00 00 00 
1A76:0120 00 00 00 00 00 00 00 00-D7 CD 2F 01 60 03 01 00 
1A76:0130 60 03 01 00 60 03 01 00-60 03 01 00 82 05 00 00 
1A76:0140 D4 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 
每一条记录的长度为40字节:
1-4字节为日期,D6 CD 2F 01转换为十进制是:19910102
5-8字节=开盘价(元)*1000
9-12字节=最高价(元)*1000
13-16字节=最低价(元)*1000
17-20字节=收盘价(元)*1000
21-24字节=成交金额(元)/1000
25-28字节=成交量(手)
其余12字节未使用
实现步骤:
1、先定义日线数据结构数组
2、再以实际记录数分配动态数组空间
3、然后把数据读入相应数组中
日线数据放在:%app_dir%\DATA\SHase\Day(上证A股) 以及 %app_dir%\DATA\SZnse\Day(深圳A股)
#pragma once
struct DZH5Day
{
unsigned long date;//date的格式:20070423
unsigned long open;//开盘价
unsigned long high;//最高价
unsigned long low;//最低价
unsigned long close;//收盘价
unsigned long moneysum;//成交金额
unsigned long turnover;//成交数量
char unused[12];//保留
};
整个结构共40个字节,读者可以查看所有的日线文件,大小肯定是40的倍数
这样很容易读出相应的数据:
如:
FILE* pFile = fopen("600001.day", "rb");
if (NULL != pFile)
{
while(!feof(pFile))
{
DZH5Day dayK;
fread(&dayK, sizeof(DZH5Day), 1, pFile);
......
}
}
posted on 2011-02-12 15:52  巍巍边疆  阅读(934)  评论(0编辑  收藏  举报