通达信数据接口及日线数据格式
2013-07-16 10:34阅读:
一、中天软件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事件中处理实际获得的数据
6、已实测TDXManager组件可用
1、组件的版本信息

2、组件的过程

3、组件的属性
