|
广明星
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 |