一、中天软件stock 2000 日数据 (*.day)股票数据格式
每一条记录的长度为40字节:
1-4字节为日期,02
b9 30 01转换为十进制是:19970307
5-8字节为开盘价*1000
9-12字节为最高价*1000
13-16字节为最低价*1000
17-20字节为收盘价*1000
25-28字节为成交量(手)
其余12字节未使用
翻译的时候是这样的 02 b9 30 01
=>>0130b902(16进制)
转10进制19970307,
其它的也是如D4 30 00 00是表达为000030D4
是12500(就是12.5¥)
二、RSR证券数据引擎组件TTDXManager使用说明
1、安装组件:用Delphi7打开TDXManager.dpk文件,点“install”按钮,安装完毕后,在Delphi组件面版上TDX栏里生成TTDXManger组件。
然后点Tools-->Environments
Options-->Library,
将组件目录加入到目录列表中。
2、TTDXManager类之方法介绍:
function Connect: boolean;
用途:连接到数据服务器
参数:无
返回值: True=连接成功 False=连接失败
procedure Run;
用途:对组件消息进行处理
提示:因为本组件是模仿消息队列模式工作的,请求命令先加入到消息列表,然后通过Run过程逐一取出消息进行处理的。因此必须循环运行Run过程。
procedure Get_PK (Const codenames:
string); 用途:发送获取股票盘口请求
参数:
codenames
用,分隔的代码列表,比如,想获取中体产业和万科A的盘口,Get_PK ('600158SH,000002SZ');
procedure Get_TestRealPK (Const code: string; market, Time:
integer);
用途:发送获取实时盘口请求
参数:
code 证券代码
market 市场类别,0=深圳 1=上海
Time 开始时间 145522表示获取14:55:22后的最后一笔交易时的盘口,如果没有最新交易,该请求不会返回数据
procedure Get_K_Days (Const code: string; market, startcount,
count: integer);
用途: 发送获取历史日K线数据请求
参数:
code 证券代码
market 市场类别
startcount 从现在往前的第几天开始
count 希望获得的天数
procedure Get_Deals (Const code: string; market, startcount,
count: integer);
用途: 发送获取分笔成交数据请求
参数:
code 证券代码
market 市场类别
startcount 从现在往前的第几笔数据
count 希望获得的交易笔数
procedure Get_Mins (Const code: string;
market, start: integer);
用途: 发送获取分时图请求
参数:
code 证券代码
market 市场类别
start 从现在开始的第几分钟开始
procedure Get_InitData (ID :integer);
用途: 发送获取初始化市场信息请求
参数:
ID 市场类别 0=深圳 1=上海
function GetMarketMode (Const StkCode,
StkName: string): byte;
用途: 查询市场类别编号
参数:
StkCode 证券代码
StkName 证券名称
本函数必须在成功初始化市场信息数据后才能正确返回
function GetStockCode (Const
StkName: string):string;
用途: 根据证券名称返回证券代码
参数:
StkName 证券名称
本函数必须在成功初始化市场信息数据后才能正确返回
3、属性介绍:
property Host :string;
数据服务器地址 默认为国信证券深圳1服务器
property Port :integer;
数据服务器端口 默认为7709,这个一般不要变动
property RegKeyString :string;
组件注册字符串 未通过注册的则为试用版。试用版在接收到一定数量的数据后,将可能出现随机不解包
4、事件介绍:
TOnReadTDXStockDataEvent= procedure(Const pData: pTTdxData)of
object;
TRNotifyEvent = procedure of object;
TOnAfterReadEvent = procedure (msg :integer) of object;
TOnDecodePacket_PKDAT = procedure (data: array of TTDX_PKDAT; StockCount: integer)of
object;
接收到使用Get_PK请求命令后而返回的盘口信息数据
StockCount 表示盘口数据包含的证券数目
TOnDecodePacket_REALPK =
procedure (data: TTDX_REALPKDAT) of object;
接收到使用 Get_TestRealPK 请求命令后而返回的盘口信息数据
TOnDecodePacket_DAYS = procedure (StockInfo: TCallBackStockInfo; data: array of
TTDX_DAYInfo; start, daysCount: integer)of object;
接收到使用Get_K_Days 请求命令后而返回的日K线数据
TOnDecodePacket_DEALS = procedure (StockInfo: TCallBackStockInfo; data: array of
TTDX_DEALINFO; start, Count: integer)of object;
接收到使用 Get_Deals 请求命令后返回的分笔交易数据
TOnDecodePacket_MINS = procedure (StockInfo: TCallBackStockInfo; data: array of
TTDX_MIN; start, Count: integer) of object;
接收到使用 Get_MINS 请求命令后返回的分时图数据
TOnDecodePacket_INITMARKET = procedure (data: array of TTDX_STOCKINFO; Market: byte; Count:
integer)of object;
接收到使用 Get_InitData 请求命令而返回的市场初始化数据
5、如何实际编程获得中体产业盘口实时数据1、在主窗体上放置一个TTimer组件,在OnTimer事件中执行TTDXManager.Run
2、使用Connect连接到服务器
3、发送Get_PK('600158SH');
4、在OnDecodePacket_PKDAT事件中处理实际获得的数据