加载中…
个人资料
文和_股市脉冲波复利
文和_股市脉冲波复利
  • 博客等级:
  • 博客积分:0
  • 博客访问:486,425
  • 关注人气:353
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

[转载]大智慧数据格式

(2014-11-01 13:35:13)
标签:

转载

分类: 数据接口/API
原文地址:大智慧数据格式作者:yckjluzz

大智慧day数据格式

日线数据放在目录dzhDATASHaseDay以及dzhDATASZnseDay下,分别是上海和深圳。
里边每个文件就是个股的数据了。

每个文件一开头就是日数据,不像有些股软数据开始有一些格式。
每日数据一共为40个字节。
第一个四字节:日期,转换为十进制即可。
第二个四字节:开盘,除以1000
第三个四字节:最高,除以1000
第四个四字节:最低,除以1000
第五个四字节:收盘,除以1000
第六个四字节:成交额,除以10
第七个四字节:成交量
第八个四字节:散户线
第九个四字节:似乎无用
第十个四字节:似乎与散户线有关

下边以601988为例说明:
打开文件601988.day,看到最后四十个字节为:
EC 1A 32 01 C6 0C 00 00
DA 0C 00 00 BC 0C 00 00 D0 0C 00 00 A9 5D 01 00
02 2C 04 00 D3 00 00 00 00 00 00 00 00 00 00 00
第一个四字节:EC 1A 32 01,十六进制为0x01321AEC,转换为十进制就是20060908,是日期
第二个四字节:C6 0C 00 00,十六进制为0x0CC6,转换为十进制就是3270,除以1000为3.27,是开盘价
第三个四字节:DA 0C 00 00,十六进制为0x0CDA,转换为十进制就是3290,除以1000为3.29,是最高价
第四个四字节:BC 0C 00 00,十六进制为0x0CBC,转换为十进制就是3260,除以1000为3.26,是最低价
第五个四字节:D0 0C 00 00,十六进制为0x0CD0,转换为十进制就是3280,除以1000为3.28,是收盘价
第六个四字节:A9 5D 01 00,十六进制为0x00015DA9,转换为十进制就是89513,除以10为8951.3,是成交额
第七个四字节:02 2C 04 00,十六进制为0x00042C02,转换为十进制就是273410,是成交量
第八个四字节:D3 00 00 00,十六进制为0xD3,转换为十进制为211,散户线(这个好像不太正确,不知道为什么,可能分析有误)
___________
大智慧5.60经典版
数据格式分析与程序接口开发(一)
作者:百度斑泥狼 更新时间:2008-5-8

1代码表
1.1证券代码列表
证券代码列表对应文件为 dzh安装目录 internet tcpipdata index.dat 文件,该文件在大智慧每次启动时被删除,并重新从服务器上下载。

文件结构描述如下:

(1)文件大小 =证券数量 × 9字节(每个证券占用 9 字节)

(2)每个证券内容描述

(2.1)1~2字节:排序序号,从0开始编号计数 == 2字节的整数

(2.2)3~8字节:证券代码 == 6字节的ASCII字符串

(2.3)9~9字节:统一为0x00,无特殊意义,可能是作为分隔符

1.2证券名称列表
证券名称列表对应文件为 dzh安装目录 internet tcpipdata init.dat 文件,该文件在大智慧每次启动时被删除,并重新从服务器上下载。

文件结构描述如下:

(1)文件大小 =头部字段28字节 + 证券数量 × 32字节(每个证券占用 32 字节)

(2)头部字段

(2.1) 1~8字节:大智慧最后一次联网的日期,8字节ASCII字符串

(2.2) 9~10字节:未知

(2.3)11~12字节:证券数量

(2.4)13~28字节:未知

(3)每个证券内容描述

(3.1)1~8字节:证券名称

(3.2)9~14字节:证券代码

(3.3)15~16字节:证券代码类型

(3.3.1)0x1F 0x00一般证券(场内交易的股票和基金等)

(3.3.2)0x1E 0x00 证券指数(上证指数、深圳)

(3.3.3) 0x20 0x00 证券指数(沪深300指数等)

(3.4)17~32字节:未知

2自选股
自选股文件保存位置:dzh安装目录 CFG netwrkic.bk2

文件结构描述如下:

(1)文件最开始的4字节:自选股板块的数目

(2)后面是每个板块的内容按顺序描述如下(长度不定):

(2.1)4字节:板块编号,4字节整数

(2.2)1字节:板块名称的长度(单位为字节,一个汉字占用两个字节),1字节整数

(2.3)20字节:板块名称,20字节字符串。板块名称最长20字节,默认名称为“自选”加序号,所以修改名称后,在二进制文件中可能出现Love11的情况(04 4C 6F 76 65 31 31),这种情况不用理会后面的两个31,直接根据名称长度04取四个字节即可。

(2.4)4字节:该板块中证券的数目,4字节整数

(2.5)14字节:板块中证券的内容

(2.5.1)2字节:证券类型 0x00 0x06 上海股票;0x01 0x06 深圳股票

(2.5.2)6字节:证券代码,6字节字符串

(2.5.3)6字节:未知


3日线文件
日线文件保存位置:

上海:dzh安装目录 DATA SHase Day ,深圳:dzh安装目录 DATA SZnse Day ,名称为“证券代码.day”。

文件结构描述如下:

(1)文件大小 =证券数量 × 40字节(每个证券占用 40 字节)

(2)每个证券内容描述

(2.1)1~4字节:日期 == 4字节的整数

(2.2)5~8字节:开盘价 == 4字节的整数(数值=真实开盘价×1000)

(2.3)9~12字节:最高价 == 4字节的整数(数值=真实最高价×1000)

(2.4)13~16字节:最低价 == 4字节的整数(数值=真实最低价×1000)

(2.5)17~20字节:收盘价 == 4字节的整数(数值=真实收盘价×1000)

 

 

大智慧数据目录解读

cfg 主页

Data(数据目录)
---$$(大盘指数)
------day.dat(日线数据)
------min1.dat(一分钟数据)
------min.dat(五分钟数据)
------extday.dat(扩展数据)
------report.dat(当天的分笔数据)
------stkinfo.dat(代码表/即时行情数据/财务数据/除权数据)
---B$(板块数据)
---DC()
---Extra(扩展数据)
---FI()
---HK(香港市场)
---HS()
---IX()
---ListPage(平台数据)
---SC()
---SF(上海金融期货指数)[只是一个模拟平台,要看行情每天要执行收盘,第二天要下载数据再看]
---SG()
---SH(上海市场)
------day.dat(日线数据)[多个股票日线出现错误可删除,再重新下载数据]
------min1.dat(一分钟数据)[多个股票一分钟线出现错误可删除,再重新下载数据]
------min.dat(五分钟数据)[多个股票日线出现错误可删除,再重新下载数据]
------extday.dat(扩展数据)
------report.dat(当天的分笔数据)
------stkinf060.dat(代码表/即时行情数据/财务数据/除权数据)[多个股票财务数据出现错误可删除,再重新下载数据]
------abh.txt(A股B股H股相关信息)
------*.prp(历史回忆文件,一天一个文件)[只能通过每天执行收盘获得该文件,从别的机器拷贝及网上下载软件均不能识别]
---SZ(深圳市场)
------day.dat(日线数据)
------min1.dat(一分钟数据)
------min.dat(五分钟数据)
------extday.dat(扩展数据)
------report.dat(当天的分笔数据)
------stkinfo060.dat(代码表/即时行情数据/财务数据/除权数据)
------abh.txt(A股B股H股相关信息)
------*.prp(历史回忆文件,一天一个文件)[只能通过每天执行收盘获得该文件,从别的机器拷贝及网上下载软件均不能识别]
---ZC()
---ZI()
---Deflayout(默认方案布局)[与文件夹Layout内容一样,但Layout文件夹不能删除,因为系统不能自动生成Layout文件夹,而可以生成Deflayout文件夹。]
[如果软件中股票价格或dde决策数据不对,建议删除DATA文件夹里(除*.prp)所有文件夹及文件,再重新下载数据。]


Drvdata(实时数据目录)
---sh(接收上海股票实时数据)
---sz(接收深圳股票实时数据)
---hk(接收香港股票实时数据)

[如果在电脑时间年月日正确及网络状态良好的情况下,分时线出现一条直线或紊乱现象,删除该文件夹,重新开启大智慧软件就可解决。]

Drvuser()
Face(图片文件)---广告类的图形 [可删除,软件不会自动生成,但影响不大,未遇到这方面的问题]
INFCATCH(地雷信息目录)---[每只股票都有相对应的信息地雷,文件格式为*.IDX]
Layout(布局方案设计)---有七种窗口方案 [删除后只有默认方案,且页面类型不能切换,软件不能自动生成,不能删除该文件夹]
log()
NEWs(新闻)---[作用不大,遇到问题几乎为零]
pushinfo()


Update(系统自动更新目录)
--- Level-2指标(新).FNC [新一代的特色指标,如果软件没有DDE决策系统,做公式引入即可;如删除,将不会自动生成,丢失特色指标]
---zb.reg(注册表文件) [当没有香港股票时,导入该注册表即可]


Upgrade(升级文件目录)
---UpdateFiles.ini(升级文件)
---update.log(升级日志)


Userdata(用户目录)
---SELFN.DTA(存入用户自编的公式)
---FREQ.IND(常用指标)
---AUTOBLK.CFG(自动板块设定)
---Attention()
---block(板块定义,包括板块数据/自选股)
---bmp()
---DefaultList()
---import()
---IndiTemp()
---ListFilter()
---note(备忘录) [即便自己加了备忘,该文件夹里也不保存文件]
---param(参数指引)
---pattern(模式匹配设计)
---pool()
---poolsys()
---posible(预测分析设计)
---relate(相关性分析保存结果)
---self(用户自定义数据,用户自定义函数)
------dde决策.xml(动态显示牌中页面布局文件) [删除后软件重启两次可自动恢复]
------*.xml(用户自己新增的页面)
------*.wsv(保存页面文件)
------*.cep(保存组合条件选股条件)
------*.tpt(保存指标模板)
------*.inv(个人理财文件)
------self年月日.DTA(每日自动公式备分文件)
------ALERT.DAT(历史预警纪录)
---selfdata(自定义数据)
---selfline(用户画线文件) [保存的文件格式是:SH*.LIN、SZ*.LIN]
---spotana(定位分析保存结果)
---star()
---table(数据保存结果)
---temp()
---test(系统测试、优化保存结果)
---workspace()



*.XML(动态显示牌不同页面布局文件,如:行情、扩展、财务、统计)
FxjHqServer.ini(该文件保存了各主站的名称和IP地址)
dzhinfo.txt()
autoupdate.ini(软件自动升级文件)
fxj.reg(注册表项文件)[如果没有键盘精灵、没有股票代码、开机菜单点击无效、F10资料栏和菜单栏重合时导入注册表;一般是软件安装或升级出错要导入;英文版的XP安装好后一定要导入注册表]

 

 

证券代码init.dat文件结构:

头部字段(28字节)

1~8:大智慧最后一次联网的日期,字符串

9~28:未知,但猜测应该和A股,B股等的证券数目有关

证券内容描述(每个证券占用 32 字节)

1~8:证券名称

9~14:证券代码

15~16:证券代码类型

0x1F 0x00一般证券(场内交易的股票和基金等)

0x1E 0x00 证券指数(上证指数、深圳)

0x20 0x00 证券指数(沪深300指数等)

17~20:昨天收盘(*1000)

21~24:昨天的5日平均成交量(单位手,奇怪,记录这个数据干嘛? 估计和量比数据有关,量比是一个衡量相对成交量的指标,它是开市后每分钟的平均成交量与过去5个交易日每分钟平均成交量之比。量比数值大于1,说明当日每分钟的平均成交量大于过去5个交易日的平均数值,成交放大;量比数值小于1,表明现在的成交比不上过去5日的平均水平,成交萎缩。)

25~28:总股本(单位手)

17~20:流通股(单位手)

******************************例子**********************************************************

32 30 31 30 30 32 30 33 2 FFFFFFA5 2A F 3A 2 FFFFFFB2 2 C 3 FFFFFF84 3 53 48 FFFFFFFE 7 53 5A 2C 7

20100203

C9 CF D6 A4 D6 B8 CA FD 30 30 30 30 30 31 1E 0 B9 C7 2C 0 54 AC 87 5 1 DA D9 1 36 2F BE 1

上证指数               000001       30   2934713    92777556 31054337 29241142      

C6 D6 B7 A2 D2 F8 D0 D0 36 30 30 30 30 30 1F 0 28 4B 0 0 AB 60 9 0 A8 5B 43 5 F1 64 B9 4

浦发银行             600000        31 19240   614571 88300456 79258865      

C9 EE B7 A2 D5 B9 A3 C1 30 30 30 30 30 31 1F 0 7A 53 0 0 62 7F 4 0 1 DA D9 1 36 2F BE 1

深发展A             000001       31   21370   294754 31054337 29241142

********************************************************************************************

权息数据 .wgt的数据格式

    每次权息变化一个记录,第一个记录中的日期为上市日期。每一记录占36个字节unsigned long wgt[9]

wgt[0]: 日期(解码见CCheck::CheckWgt)

wgt[1]: 送股数(每10股送股数*10000)

wgt[2]: 配股数(每10股配股数*10000)

wgt[3]: 配股价(* 1000)

wgt[4]: 红利(每10股分价格*1000)

wgt[5]: 转增数(*10000)

wgt[6]: 总股本(万股)

wgt[7]: 流通股数(万股)

wgt[8]: 备注

日线数据 .day的数据格式

每一条记录的长度为40字节, unsigned long Day[10]

Day[0]:日期

Day[1]:开盘价*1000

Day[2]:最高价*1000

Day[3]:最低价*1000

Day[4]:收盘价*1000

Day[5]:成交量(手)

Day[6]:成交金额(*1000)

Day[7]-Day[9]:未知 (早期是0,现在被加入了某些信息,但尚未理解)

超高频数据 .tic的数据格式

头部字段(8字节):意义未知,可能是对应于成交量的存储代码

交易记录(每次记录用 13*4 字节),unsigned long tic[13]

tic[0]:交易序号,0为集合竞价

tic[1]:交易时间和交易性质(解码见Ccheck::checktic,交易性质0未确定,FF内盘,01 外盘)

tic[2]:成交价(*1000)

tic[3]:未知

tic[4]:成交量(解码见Ccheck::checktic)

tic[5]:委买价(*1000)

tic[6]:委卖价(*1000)

tic[7]:成交笔数(上海未给出)

tic[8-13]:未知

 

 

大智慧文件格式

说明:

这是上个月为天涯股市论谈版荐股大赛做的排名程序用的,排名程序调用大智慧的日线数据来进行排名,但大智慧每天要到下午4点左右才生成日线数据,而之前早有人贴出了排名,所以写的排名程序也没派上什么用场。文件格式并没有分析的全,只分析了当时用到的数据。文章写于11月4日。

股票代码信息:

沪市在DATAShaseSTKINFO.DTA文件中。深市在DATASZnseSTKINFO.DTA文件中。
格式:
文件首220字节,意义未知。
结构:
未知:(4字节)
股票代码:字符串(6字节,例’600001’)
未知:(2字节)
股票名称:字符串,股票名称(8字节)
未知:(216字节)


日线数据:

沪市在DATA Shase Day目录下,以股票代码命名的的文件。深市在DATASZnseDay目录下。
格式:
   无文件首信息。
   结构:
    日期:4字节,整型表示的日期,例2005-11-01表示为20051101。
    开盘价:4字节,整型,为实际价格乘1000。例4.75元保存的是4750。
    最高价:4字节,同上。
    最低价:4字节,同上。
    收盘价:4字节,同上。
    成交额:4字节整型,为实际成交客*10。
    成交量:4字节,整型。
    散户数:4字节,整型
    未知:8字节。

除权信息:

除权股票代码在zhdocbaserights.ctf文件中。除权数据在zhdocbaserights.cxt文件中。
除权股票代码文件(rights.ctf)格式:
   文件首:380字节,意义未知。
   结构:
    除权记录数:2字节,整型
    股票代码:4字节,整型(例’600036’的值为600036)。
    未知:4字节
    除权记录起始记录号:4字节(对应rights.cxt中的记录号)
    除权记录结束记录号:4字节(对就rigths.cxt中的记录号)
除权股票数据记录文件(rights.cxt)格式:
   文件首:46字节,意义未知。
   结构:
    未知:2字节
    除权时间:4字节。整型表示的日期,例2005-11-01表示为20051101。
    每10股送股数:4字节,同开盘价格格式。
    每10股配股送:4字节,同开盘价格格式。
    配股价:4字节,同开盘价格格式。
    每10股派息数:4字节,同开盘价格格式。
    除权前流通股:4字节整型,(万股)
    除权后流通股:同上。
    除权前总股本:同上。
    除权后总股本:同上。

 

 

大智慧数据文件和数据结构

大智慧数据文件和数据结构:(假设大智慧股票行情软件安装在D:gpdzh目录下)
上海日线存储路径为:D:gpdzhDATASHaseDay,文件扩展名为:.day
上海周线存储路径为:D:gpdzhDATASHaseweek,文件扩展名为: .wek
上海月线存储路径为:D:gpdzhDATASHasemonth,文件扩展名为: .mnt
深圳日线存储路径为:D:gpdzhDATASZnseDay
深圳周线存储路径为:D:gpdzhDATASZnseweek
深圳月线存储路径为:D:gpdzhDATASZnsemonth
周线,月线格式与日线格式一致.

每一条记录的长度为40字节:
1-4字节为日期,转换为十进制格式如下:19910102
5-8字节=开盘价(元)*1000
9-12字节=最高价(元)*1000
13-16字节=最低价(元)*1000
17-20字节=收盘价(元)*1000
21-24字节=成交金额(元)/1000
25-28字节=成交量(手)
其余12字节未使用

自己写了个C语言的小程序,奉献给大家,希望有人有用。

实现步骤:
定义一个股票价格的数据结构 gpjg

用fread函数读文件
用fprintf函数写文件

程序执行的结果即将二进制文件转换成逗号分割文本文件,由于后缀名为.csv,可以用excel打开,或后续处理。

程序如下:

#include <stdio.h>
#include <stdlib.h>


struct gpjg
{
unsigned long int rq ;
unsigned long int kp ;
unsigned long int zg ;
unsigned long int zd ;
unsigned long int sp ;
unsigned long int cjje ;
unsigned long int cjl ;
unsigned long int l1 ;
unsigned long int l2 ;
unsigned long int l3 ;
}gpjg1;

main()
{FILE *fp;
FILE *fp1;
int i;

if ((fp=fopen("D:\gp\dzh\DATA\SZnse\Day\184721.day","rb"))==NULL)
{printf("cannot open filen");
return;
}

if ((fp1=fopen("184721.csv","w"))==NULL)
{printf("cannot open filen");
return;
}


for (i=0;i<10000;i++) {
fread(&gpjg1,sizeof(struct gpjg),1,fp);
if feof(fp) { return; }
printf("%lu,%lu,%lu,%lu,%lu,%lu,%lun",gpjg1.rq,gpjg1.kp,gpjg1.zg,gpjg1.zd,gpjg1.sp,gpjg1.cjje,gpjg1.cjl);
fprintf(fp1,"%lu,%lu,%lu,%lu,%lu,%lu,%lun",gpjg1.rq,gpjg1.kp,gpjg1.zg,gpjg1.zd,gpjg1.sp,gpjg1.cjje,gpjg1.cjl);

}
}

大智慧5股票软件数据结构剖析

大智慧是比较有名的股票软件,我将通过一系列的文章,剖析其数据结构,

这里先给出日K线的数据结构

日线数据放在:%app_dir%DATASHaseDay(上证A股) 以及 %app_dir%DATASZnseDay(深圳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);
       ......
    }
}

0

  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有