同步操作将从 thorqq/GlTraderFree 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
为了满足投资者日益增长的程序化交易需求,XX证券公司开发了这款基于恒生PB系统的下单辅助软件。本软件使用SQLite数据库文件作为用户接口,投资者可使用自己的程序化交易软件通过读写SQLite数据库来与本软件交互委托和回报数据。因此,本软件具有轻量级、便捷性等优点。
开发语言 :C++
开发环境 :VS2015 + QT5.11
柜台接口 :恒生PB UFX
本软件主要功能是将第三方程序化交易软件写入in.db中的委托和撤单数据报给恒生PB,然后将恒生PB推送的委托回报和成交回报数据写入out.db供第三方软件读取。其架构示意图如下图所示。
本软件包含以下功能:
本软件使用SQLite数据库作为用户接口。SQLite是一个遵守ACID的轻量级关系型数据库管理系统。用户接口包括in.db和out.db两个数据库文件(保存在本软件的db目录下,实际的文件名为in_yyyymmdd.db和out_yyyymmdd.db,其中,yyyymmdd是年月日,例如:in_20190102.db。为方便表述,本文一律用in.db和out.db代替),其中,in.db包含委托表(tentrust)和撤单表(twithdraw),用户可将委托或撤单指令分别写入这两张表中,本软件会自动读取表中的指令并报送给恒生PB。out.db包含委托明细表(tentrustlist)、成交明细表(tdeallist)和其他一些系统内部表,本软件会把收到的委托回报和成交回报数据插入或更新到这两张表中,用户可定时扫描这两张表中的变化来获取回报数据。数据库文件和数据库表的读写方式如下表所示。
数据库文件 | in.db | in.db | out.db | out.db |
---|---|---|---|---|
数据库表 | 委托表tentrust | 撤单表twithdraw | 委托明细表tentrustlist | 成交明细表tdeallist |
用户程序化交易软件 | 可读写 | 可读写 | 只读 | 只读 |
本软件 | 只读 | 只读 | 只写更新和插入 | 只写只插入 |
注意:
下文将对这些数据库表所详细的介绍。
用户程序化交易软件将委托数据写入该表,本软件会定时读取表中的委托。表结构如下。
列名 | 名称 | 数据类型 | 插入示例 | 说明 |
---|---|---|---|---|
id | 序号 | INTEGER | (空) | 主键,自增序号,无需插入。与tentrustlist表中的id一一对应 |
entrust_time | 委托时间 | TIMESTAMP | (空) | 自动生成,无需插入 |
batch_no | 委托批号 | INTEGER, | 1 | 用户自定义 |
account_code | 账户编号 | TEXT(32), | 00020001 | 账户编号、资产单元编号、组合编号三者至少要传入一项,如资产单元编号或组合编号未传入则取默认资产单元或默认组合。账户编号建议传入,否则将影响性能。 |
asset_no | 资产单元编号 | TEXT(16), | (空) | |
combi_no | 组合编号 | TEXT(16), | 1 | |
market_no | 交易市场 | TEXT(3), | 1 | 参见:交易市场 market_no |
stock_code | 证券代码 | TEXT(16), | 600000 | |
entrust_direction | 委托方向 | TEXT(4), | 1 | 参见:委托方向 entrust_direction |
price_type | 价格类型 | TEXT(1), | 0 | 参见:价格类型 price_type |
entrust_price | 委托价格 | DOUBLE, | 10.2 | 单位:元 |
entrust_amount | 委托数量 | DOUBLE, | 100 | 单位:股 |
ext_access_system_id | 用户交易系统自定义序号 | INTEGER | 223 | 用户可根据该字段与委托明细表、成交明细表中的记录相关联。 |
用户程序化交易软件将撤单数据写入该表,本软件会定时读取。表结构如下。
列名 | 名称 | 数据类型 | 插入示例 | 说明 |
---|---|---|---|---|
id | 序号 | INTEGER | (空) | 主键,自增序号,无需插入 |
entrust_time | 委托时间 | TIMESTAMP | (空) | 自动生成,无需插入 |
entrust_no | 委托编号 | INTEGER, | 67171 | 恒生PB返回的委托编号。可在委托明细表中获取。 |
注意:
在接收到回报数据时(委托状态、成交数量等数据发生变化),本软件会将新的委托信息插入或者更新老的委托数据。表结构如下。
列名 | 名称 | 数据类型 | 示例 | 说明 |
---|---|---|---|---|
id | 序号 | INTEGER | 1 | 主键,与tentrust表中的id一一对应 |
business_time | 委托时间 | TIMESTAMP | 2019-01-01 10:30:32 | 格式:yyyy-MM-dd hh:mm:ss |
entrust_no | 委托序号 | INTEGER | 1 | 用户自定义 |
entrust_status | 委托状态 | TEXT(1) | 1 | 参见:委托状态 entrust_status |
account_code | 账户编号 | TEXT(32) | 00020001 | 与tentrust表中的对应字段一致 |
asset_no | 资产单元编号 | TEXT(16) | (空) | 与tentrust表中的对应字段一致 |
combi_no | 组合编号 | TEXT(16) | 1 | 与tentrust表中的对应字段一致 |
market_no | 交易市场 | TEXT(3) | 1 | 参见:交易市场 market_no |
stock_code | 证券代码 | TEXT(16) | 600000 | |
entrust_direction | 委托方向 | TEXT(4) | 1 | 参见:委托方向 entrust_direction |
price_type | 价格类型 | TEXT(1) | 0 | 参见:价格类型 price_type |
entrust_price | 委托价格 | DOUBLE | 10.2 | 单元:元 |
entrust_amount | 委托数量 | DOUBLE | 100 | 单位:股 |
cancel_deal_amount | 撤成数量 | DOUBLE | 0 | 0:未撤单或撤单失败;非0:成功撤单的数量,单位:股 |
fail_cause | 废单原因 | TEXT(256) | (空) | 空:成功;非空:委托或撤单失败的原因 |
ext_access_system_id | 用户交易系统自定义序号 | INTEGER | 223 | 用户可根据该字段与委托明细表、成交明细表中的记录相关联。 |
ext_system_id | 外部系统序号 | INTEGER | 系统内部字段,用户无需关注 |
注意:用户需定期读取该表,以获取委托回报信息。
在接收到成交回报数据时,本软件会将该数据插入本表(只插入,不更新)。表结构如下。
列名 | 名称 | 数据类型 | 示例 | 说明 |
---|---|---|---|---|
deal_time | 成交时间 | TIMESTAMP | 2019-01-01 10:30:32 | 主键,与tentrust表中的id一一对应 |
deal_no | 成交编号 | INTEGER | 39281 | 格式:yyyy-MM-dd hh:mm:ss |
entrust_no | 委托序号 | INTEGER | 1 | 可使用该字段与tentrustlist关联 |
entrust_status | 委托状态 | TEXT(1) | 1 | 参见:委托状态 entrust_status |
account_code | 账户编号 | TEXT(32) | 00020001 | 与tentrust表中的对应字段一致 |
asset_no | 资产单元编号 | TEXT(16) | (空) | 与tentrust表中的对应字段一致 |
combi_no | 组合编号 | TEXT(16) | 1 | 与tentrust表中的对应字段一致 |
market_no | 交易市场 | TEXT(3) | 1 | 参见:交易市场 market_no |
stock_code | 证券代码 | TEXT(16) | 600000 | |
entrust_direction | 委托方向 | TEXT(4) | 1 | 参见:委托方向 entrust_direction |
price_type | 价格类型 | TEXT(1) | 0 | 参见:价格类型 price_type |
deal_price | 成交价格 | DOUBLE | 10.2 | 单元:元 |
deal_amount | 成交数量 | DOUBLE | 100 | 单位:股 |
deal_balance | 成交金锷 | DOUBLE | 1020 | 单元:元 |
deal_fee | 本次费用 | DOUBLE | 5 | 单元:元 |
ext_access_system_id | 用户交易系统自定义序号 | INTEGER | 223 | 用户可根据该字段与委托明细表、成交明细表中的记录相关联。 |
注意:一笔委托可能对应多笔成交数据,委托和成交记录之间可通过entrust_no进行关联。
本章节将列出常用的几个数据字典,完整的数据字典可查看gltrader.db中的tdict表。
market_no | 交易市场 |
---|---|
1 | 上交所 |
2 | 深交所 |
entrust_direction | 委托方向 |
---|---|
1 | 买入 |
2 | 卖出 |
price_type | 价格类型 | |
---|---|---|
0 | 限价 | |
a | 五档即成剩撤(上交所市价) | 最优5档即时成交剩余撤销申报,即该申报在对手方实时最优5个价位内以对手方价格为成交价逐次成交,剩余未成交部分自动撤销。 |
b | 五档即成剩转(上交所市价) | 最优5档即时成交剩余转限价申报,即该申报在对手方实时5个最优价位内以对手方价格为成交价逐次成交,剩余未成交部分按本方申报最新成交价转为限价申报;如该申报无成交的,按本方最优报价转为限价申报;如无本方申报的,该申报撤销。 |
A | 五档即成剩撤(深交所市价) | 以对手方价格为成交价,与申报进入交易主机时集中申报簿中对手方最优五个价位的申报队列依次成交,未成交部分自动撤销。 |
C | 即成剩撤(深交所市价) | 以对手方价格为成交价,与申报进入交易主机时集中申报簿中对手方所有申报队列依次成交,未成交部分自动车小。 |
D | 对手方最优(深交所市价) | 以申报进入交易主机时集中申报簿中对手方队列的最优价格为其申报价格。 |
E | 本方最优(深交所市价) | 以申报进入交易主机时集中申报簿中本方队列的最优价格为其申报价格。 |
F | 全额成或撤(FOK市价)(深交所市价) | 以对手方价格为成交价,如与申报进入交易主机时集中申报簿中对手方所有申报队列依次成交能否使其完全成交的,则依次成交,否则申报全部自动撤销。 |
entrust_statues | 委托状态 |
---|---|
0 | 未响应(本软件已将委托指令发送给PB,但如果网络异常导致PB未接收到,则为该状态) |
1 | 未报 |
2 | 待报 |
3 | 正报 |
4 | 已报 |
5 | 废单 |
6 | 部成 |
7 | 已成 |
8 | 部撤 |
9 | 已撤 |
a | 待撤 |
使用SQLite可视化客户端打开本软件同级目录下的gltrader.db,查询tdict表,可看到如下数据:
Dict_id | Item | Remark |
---|---|---|
3 | 0 | 未响应 |
3 | 1 | 未报 |
3 | 2 | 待报 |
3 | 3 | 正报 |
3 | 4 | 已报 |
3 | 5 | 废单 |
4 | 1 | 上交所 |
4 | 2 | 深交所 |
其中,dict_id是字典类型,取值范围为:
Dict_id | 表字段 | 中文说明 |
---|---|---|
1 | account_type | 账户类型 |
3 | entrust_state | 委托状态 |
4 | market_no | 交易市场 |
5 | invest_type | 投资类型 |
6 | entrust_direction | 委托方向 |
7 | price_type | 价格类型 |
8 | position_flag | 多空标志 |
9 | instance_type | 交易实例类型 |
10 | currency_code | 币种 |
11 | account_category | 资产账户类型 |
12 | origin_type | 账户来源 |
13 | replace_flag | 现金替代标志 |
14 | ambusiness_type_limits | 业务类别 |
15 | risk_type | 风控类别 |
16 | risk_operation | 风控触警操作 |
17 | entrust_fail_code | 委托失败代码 |
18 | option_type | 期权类型 |
19 | purchase_way | 申赎方式 |
20 | adjust_mode | 资金调整类型 |
21 | stock_type_limits | 证券类别权限 |
22 | business_op_flag | 业务操作类型 |
23 | future_kind_id | 期货品种序号 |
24 | bind_status | 股东指定状态 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。