广明星 WIN95/98 接口说明(V2.00)

由于深圳代码升位及创业板的可能推出,进行本次接口的升级

. 安装广明星WINDOWS95/98驱动。
. 广明星WINDOWS95外部接口文件包含:  
1. 动态连接库:GMXDRV.DLL。  
2. 程序连接库:GMXDRV.LIB。

. 广明星接口函数:

1. 广明星初始化函数,应用程序首先调用:
函数原形: int FAR PASCAL EXPORT InitCard(char *CardNumber);  
    能: 初始化接收卡函数,接收卡的参数由《广明星驱动设置程序》设定。
参数说明: CardNumber, 应为16字节数据输入输出缓冲区
输入:分析软件类型说明,主要是为了在驱动中,能针对特定的分析软件能作特定的处理,以完成有针对性的任务或纠正接口中可能的错误,具体见后表说明
输出:接收卡卡号。

分析软件类型说明表:

CardNumber输入值   分析软件名称   备注  
0000”   通用的Win95/98  
分析软件  
驱动将不针对性  
的作特殊处理  

0100”  

广明星

0200”  

分析家  
0300”   投资家  
0400”   汇金  
0500”   胜龙  
0600”   钱龙  
0700”   指南针  
0800”   海融  
其它任何值   ***无效***   同“0000”一样处理  
返 回 值: 返回0 为成功。
返回其它为失败
升级说明: A、CardNumber,在V1.00中,仅为输出参数。
B、
返回值,出错时,在V1.00中,只返回-1。
2. 广明星退出函数,应用程序退出前调用:  
函数原形: int FAR PASCAL EXPORT CloseCard(void);  
    能: 关闭接收卡。  
返 回 值: 返回0 为成功。
返回-1为失败。
3. 广明星取数函数:  
函数原形: int FAR PASCAL EXPORT ReadData(unsigned char *DataPack);  
    能: 读取行情数据
参数说明: DataPack –    应为256*96字节数据输出缓冲区;
输出,如调用成功,则返回实际数据,数据多少由返回值决定。具体数据结构见《广明星出口数据结构》。
返 回 值: 返回 n=0 为无数据包。
返回 n>0 为n个数据包(每个数据包为96字节),最大256个包。

 


. 广明星出口数据结构:  
*: 所有数据结构,字节对齐。  

(1). 行情数据包结构

typedef struct {
  BYTE Type;  //类型,见下注释
char Code[6]; //证卷代码,为6位数字代码,上海深圳有相同的代码
DWORD Close; //昨收,0.1分
DWORD Open; //今开,0.1分
DWORD High; //最高,0.1分
DWORD Low; //最低,0.1分
DWORD New; //最新,0.1分
DWORD Pbuy1; //买盘价1,0.1分
DWORD Vbuy1;  //买盘量1,股
DWORD Pbuy2;  //买盘价2,0.1分
DWORD Vbuy2; //买盘量2,股
DWORD Pbuy3;  //买盘价3,0.1分
DWORD Vbuy3;   //买盘量3,股
DWORD Psell1; //卖盘价1,0.1分
DWORD Vsell1; //卖盘量1,股
DWORD Psell2; //卖盘价2,0.1分
DWORD Vsell2;   //卖盘量2,股
DWORD Psell3; //卖盘价3,0.1分
DWORD Vsell3; //卖盘量3,股
DWORD Volume; //成交量,股
float  Amount;   //成交价,元,以前版本也为DWORD,有溢出可能
char  RES[4] //保留,全部置0xFF
char Chksum;   //校验,忽略
char Name[8];   //股票名称,可为空名称
} rStock;
注: a. 数据包的类型由Type值决定;
b. 详细内容见下表
Type实际取值

说明

备注  
0x11 上证A股  
0x12 上证B股  
0x13 上证债券  
0x21 深证A股  
0x22 深证B股  
0x23 深证债券  
0x24 创业个股 V2.00新增
c. 建议只用Type来区别市场和行情数据包,而不用于区分股票类别,股票类别以代码区分,这样创业板推出时,不过分依赖此确认Type值

(2). 指数数据包结构

typedef  struct {
BYTE Type; //类型,见下注释
char Code[6]; //指数代码,见下注释
DWORD Close; //昨收,0.001点
DWORD Open; //今开,0.001点
DWORD High; //最高,0.001点
DWORD Low; //最低,0.001点
DWORD New; //最新,0.001点
DWORD Vbuy; //买盘总量,股,忽略
DWORD Vsell; //卖盘总量,股,忽略
DWORD Volume; //总成交量,百股
float Amount; //总成交额,百元
WORD Total; //本市场个股总家数
DWORD Date; //日期,忽略
DWORD Time; //时间,忽略
WORD  ZsTotal; //本市场指数总数
WORD  Up; //本市场个股涨家数,=0xFFFF时 忽略
WORD  Down; //本市场个股跌家数,=0xFFFF时 忽略
char Res[28]; //保留,全部置0xFF
char Chksum; //校验码,忽略
char Name[8]; //指数名称,可为空名称
}  rIndex;
注: a. 数据包的类型由Type值决定,并且Type=0x10,上证指数,Type=0x20,深圳指数。
b. 相应指数代码Code值不再使用以前版本转化后的值,而使用泸深卫星库中的标准代码,如以前 的"1A0001"(上证综合指数),现以标准代码 "000001" 取代,"2A01"(深证成份指数),现以标准代码 "399001" 取代,所需的转换,应由分析软件来完成。
c. 版本变化,增加 WORD  ZsTotal,来适应深市指数个数的不确定性。

(3). 公告信息数据包结构

typedef struct{
char Type;  //类型,见下注释
WORD Time; //时间
WORD Serialno;  //序列号
char Provider[14]; //提供者(最多7个汉字)
WORD Totalblock; //总块数
WORD Blockno;  //块号
char Content[64];  //信息内容
char Chksum;  //校验,忽略
char Res[8];  //保留
} rInfo;  
注: a. 数据包的类型由Type值决定;
 b. 详细内容见下表
Type实际取值   说明  

备注  

0x05   财经新闻信息    
0x15   上证公告信息    
0x25   深证公告信息    
0x35   创业公告信息   V2.00新增
c.     《其它信息包》和此类型包是新闻公告信息两处不同的来源,分析软件新的接口应处理此类型包和《其它信息包》;
    在驱动升级后,新的驱动会根据需要,选择发送此类信息包还是用《其它信息包》处理。

(4). 分时数据包结构  

typedef struct{
BYTE Time; // 0为9:30,, 1为9:31, 120为11:30, 121为13:01, 239为14:59, 其余依此类推
DWORD Price; //价位:个股 0.1分,指数 0.001点
DWORD Volume;   //成交量:个股 股,指数 百股
float Amount; //成交额: 个股 元,指数 百元
} rOneMin;  
typedef struct{
BYTE Type;   //类型,见下注释
char Code[6]; //证卷代码或指数代码
BYTE Count; //分时有效数据包组数(最大为6)  
struct rOneMin m[6]; //数据包内容
char Res; //保留
char Chksum; //校验码,忽略
char  Res1[8]; //保留
} rMin;  
注: a. 数据包的类型由Type值决定;
b. 详细内容见下表
Type实际取值   说明   备注  
0x16   上海分时数据包    
0x26   深圳分时数据包(含创业分时数据包)    

(5). 日线数据包结构

typedef struct{
DWORD Date; //日期 例:19980101,  ==0 为空包
DWORD Open; //开盘价: 个股 0.1分,指数 0.001点
DWORD High; //最高价: 个股 0.1分,指数 0.001点
DWORD Low; //最低价: 个股 0.1分,指数 0.001点
DWORD Close;  //收盘价: 个股 0.1分,指数 0.001点
DWORD Volume; //成交量: 个股 股,指数 百股
float Amount; //成交额:个股 元, 指数 百元
DWORD res[2];
} rOneDay;
typedef struct{
BYTE Type;   //类型,见下注释
BYTE Code[6]; //股票/指数代码: 6字节字符串
BYTE res[8];
rOneDay d[2]; //每天数据
char chksum;
BYTE res1[8];
}rDay;  
注: a. 数据包的类型由Type值决定;
 b. 详细内容见下表
Type实际取值 说明 备注
0x17   上海日线数据包    
0x27   深圳日线数据包 (含创业日线数据包)  

(6). 个股资料文件包结构

typedef struct{
BYTE Type; //类型,见下注释
BYTE Code[6];  //股票代码
char FileName[80];  //个股资料文件名
char ChkSum;  //忽略
char Res1[8];
} rTxt;  
注: a. 数据包的类型由Type值决定;
b. 详细内容见下表
Type实际取值 说明 备注
0x18   上海个股资料文件包  
Code='CW????' 财务
数据文件,????为数字
文件结构
见注e.
Code='CQ????' 除权
数据文件,????为数字
文件结构
见注f.
0x28   深圳个股资料文件包
(含
创业个股资料文件包)
c.   数据包中的FileName:
V1.00版中为: 相对路径+文件名 FileName的前4个字符为"gmx_")
例:gmx_ext\news0001.txt 以0为结束,这时实际文件news0001.txt在本驱动安装路径下的子目录gmx_ext中,子目录名不一定固定为gmx_ext。这种情况下,驱动应安装在分析软件主程序目录下。
d.V2.00版中,为:绝对路径+文件名
e.文件头两个DWORD为标记,其后为下结构内容,文件名是CW????.TXT,后缀TXT无实际意义,只是为和其它个股资料文件一致。 
struct CW
{
DWORD Type;    //"SH"
为上海,"SZ"为深圳
char Code[14]; //股票代码
float cw[37];  //此股票对应的财务数据
}
CW.cw[37]内容如下:

0 总股本(万股) 13 长期投资 26 上年损益调整
1 国家股 14 流动负债 27 利润总额
2 发起人法人股 15 长期负债 28 税后利润
3 法人股 16 资本公积金 29 净利润
4 B股 17 每股公积金 30 未分配利润
5 H股 18 股东权益 31 每股未分配
6 流通A股 19 主营收入 32 每股收益
7 职工股 20 主营利润 33 每股净资产
8 A2转配股 21 其他利润 34 调整每股净资
9 总资产(千元) 22 营业利润 35 股东权益比
10 流动资产 23 投资收益 36 净资收益率
11 固定资产 24 补贴收入
12 无形资产 25 营业外收支    
f.文件头两个DWORD为标记,其后为下结构内容,文件名是CQ????.TXT,后缀TXT无实际意义,只是为和其它个股资料文件一致。  
struct CQ{
DWORD dwDate; //日期 
float fSong; //送股
float fPei; //配股
float fPrice; //配股价
float fHong; //红利
};

用法:定义CQ a;
如果a.dwDate==0xffffffff,则 (char*)(&a.fSong)为下一股票的代码(SH600000或SZ000001),这时其它字段勿略;
如果a.dwDate!=0xffffffff, 则a即为上一只股票的除权数据。

(7). 其它信息包结构

typedef struct {
BYTE Type; //类型,见下注释
BYTE SubType; //子类型,见下注释
BYTE Res1[5];
char FileName[80]; //文件名
char ChkSum;
char Res2[8];
} rOther;
a. 数据包的类型由Type和SubType值决定;
b. 详细内容见下表  
Type实
际取值
SubType
实际取值
说明   备注  

0x99

0x00

股评  

分析软件处理
0x99 0x01 电视台公告

V2.00新增

 分析软件
可处理  

 

0x99

0x02 压缩的网页文件 

0x99

0x05 财经新闻信息 
0x99

0x15

上证公告信息 
0x99 0x25 深证公告信息 
0x99 0x35 公告信息
0x99 0x90 压缩的财经新闻信息 

V2.00新增,

增强的
接口类型,

分析软件
不处理

 

0x99 0x91 压缩的上证公告信息 
0x99 0x92 压缩的深证公告信息 
0x99 0x93 压缩的创业公告信息 
0x99 0xA0 压缩的上海F10资料 
0x99 0xA1 压缩的深圳F10资料 
  其它 保留  
c. 数据包中的FileName:
在V1.00版中为: 相对路径+文件名 FileName的前4个字符为"gmx_")
例:gmx_ext\news0001.txt 以0为结束,这时实际文件news0001.txt在本驱动安
装路径下的子目录gmx_ext中,子目录名不一定固定为gmx_ext。这种情况下,
驱动应安装在分析软件主程序目录下。
在V2.00版中,为:绝对路径+文件名

 


北京广明星科技有限公司·陈琳
2001.11.16
联系电话:(
010) 62975300-8
EMAIL:LChen@GMXING.COM
网址:HTTP://WWW.GMXING.COM