Skip to content

Commit 113d0c8

Browse files
author
李昆亮
committed
升级封装api版本1.1.19.2
1 parent 9567ff0 commit 113d0c8

File tree

275 files changed

+2140
-14618
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

275 files changed

+2140
-14618
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
本项目是中泰证券XTP极速交易PYTHON接口的开源实现,供客户在量化交易中使用PYTHON接口快速接入XTP系统。中泰证券XTP是为股票交易而生的极速交易系统,为投资者提供极速交易、极速行情、Level2行情。
44

5-
目前支持xtp版本为1.1.18.19,支持win、linux平台运行
5+
目前支持xtp版本为1.1.19.2,支持windows、linux平台运行
66

77
请先到中泰证券xtp官方网站申请测试账号 https://xtp.zts.com.cn/register 及测试环境的连接ip、端口等信息
88

99
API参考官方C++版本的接口文档https://xtp.zts.com.cn/home
1010

1111
##事项说明:
1212

13-
1.当前xtp的api的python封装支持win7系统、win10系统和Linux系统,在bin目录下有Linux文件夹下存放Linux下python2和python3的封装库,Windows文件夹下还分别包括32位和64位下的python2和python3的封装库。test文件夹下包含行情和交易的测试脚本。
13+
1.当前xtp的api的python封装支持windows系统和Linux系统,在bin目录下有Linux文件夹下存放Linux下python2和python3的封装库,Windows文件夹下还分别包括32位和64位下的python2和python3的封装库。test文件夹下包含行情和交易的测试脚本。
1414

1515
2.当前bin目录下编译时用的python2的版本为python2.7.15,python3用的版本的python3.6.5,在Windows下发现如果python的版本不对应时会导致调用python封装库会失败,如果使用当前的封装库请注意python的版本是否一致。
1616

1717
3.如果客户需要按自己的python版本编译封装库,可以自行用source目录下的代码,根据自己的python的版本,及该python版本对应的编译后的boost库,可自行编译所需的python封装库。(具体过程在doc文件夹下有编译过程文档,source文件夹下有源码,包括Linux和Windows下编译python2和python3封装库)
1818

19-
4.XTP_API_20190401_1.1.18.19文件夹下存放最新的xtp系统的api,当前python封装库的分别包含行情和交易库,python封装后的接口与当前xtp系统的api的所有接口都保持一致,只有方法名有所区别,python封装后的接口方法名首字母小写,xtp的api的方法名首字母大写。因此所有封装后的python接口方法使用和功能都可以参见xtp的api的接口方法。既在以下两个头文件中了解各个方法使用及功能。
19+
4.XTP_API_1.1.19.2_20190627文件夹下存放最新的xtp系统的api,当前python封装库的分别包含行情和交易库,python封装后的接口与当前xtp系统的api的所有接口都保持一致,只有方法名有所区别,python封装后的接口方法名首字母小写,xtp的api的方法名首字母大写。因此所有封装后的python接口方法使用和功能都可以参见xtp的api的接口方法。既在以下两个头文件中了解各个方法使用及功能。

XTP_API_20190401_1.1.18.19/bin/include/xoms_api_struct.h renamed to XTP_API_1.1.19.2_20190627/bin/include/xoms_api_struct.h

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,17 @@ struct XTPQueryOrderReq
186186
typedef struct XTPOrderInfo XTPQueryOrderRsp;
187187

188188

189+
///查询订单请求-分页查询
190+
struct XTPQueryOrderByPageReq
191+
{
192+
///需要查询的订单条数
193+
int64_t req_count;
194+
///上一次收到的查询订单结果中带回来的索引,如果是从头查询,请置0
195+
int64_t reference;
196+
///保留字段
197+
int64_t reserved;
198+
};
199+
189200
//////////////////////////////////////////////////////////////////////////
190201
///成交回报查询
191202
//////////////////////////////////////////////////////////////////////////
@@ -212,7 +223,16 @@ struct XTPQueryTraderReq
212223
///成交回报查询响应结构体
213224
typedef struct XTPTradeReport XTPQueryTradeRsp;
214225

215-
226+
///查询成交回报请求-分页查询
227+
struct XTPQueryTraderByPageReq
228+
{
229+
///需要查询的成交回报条数
230+
int64_t req_count;
231+
///上一次收到的查询成交回报结果中带回来的索引,如果是从头查询,请置0
232+
int64_t reference;
233+
///保留字段
234+
int64_t reserved;
235+
};
216236

217237
//////////////////////////////////////////////////////////////////////////
218238
///账户资金查询响应结构体
@@ -463,6 +483,8 @@ struct XTPQueryIPOTickerRsp {
463483
char ticker[XTP_TICKER_LEN];
464484
///申购股票名称
465485
char ticker_name[XTP_TICKER_NAME_LEN];
486+
// 证券类别
487+
XTP_TICKER_TYPE ticker_type;
466488
///申购价格
467489
double price;
468490
///申购单元
@@ -472,16 +494,34 @@ struct XTPQueryIPOTickerRsp {
472494
};
473495

474496

497+
498+
//////////////////////////////////////////////////////////////////////////
499+
///查询用户申购额度-旧版
500+
//////////////////////////////////////////////////////////////////////////
501+
struct XTPQueryIPOQuotaRspV1 {
502+
///交易市场
503+
XTP_MARKET_TYPE market;
504+
///可申购额度
505+
int32_t quantity;
506+
};
507+
508+
475509
//////////////////////////////////////////////////////////////////////////
476-
///查询用户申购额度
510+
///查询用户申购额度-包含创业板额度
477511
//////////////////////////////////////////////////////////////////////////
478512
struct XTPQueryIPOQuotaRsp {
479513
///交易市场
480514
XTP_MARKET_TYPE market;
481515
///可申购额度
482516
int32_t quantity;
517+
// 上海科创板额度
518+
int32_t tech_quantity;
519+
// 保留
520+
int32_t unused;
483521
};
484522

523+
524+
485525
//////////////////////////////////////////////////////////////////////////
486526
///查询期权竞价交易业务参考信息--请求结构体,请求参数为:交易市场+8位期权代码
487527
//////////////////////////////////////////////////////////////////////////

XTP_API_20190401_1.1.18.19/bin/include/xtp_api_data_type.h renamed to XTP_API_1.1.19.2_20190627/bin/include/xtp_api_data_type.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ typedef enum XTP_TICKER_TYPE
246246
XTP_TICKER_TYPE_FUND, ///<基金
247247
XTP_TICKER_TYPE_BOND, ///<债券
248248
XTP_TICKER_TYPE_OPTION, ///<期权
249+
XTP_TICKER_TYPE_TECH_STOCK, ///<科创板股票(上海)
249250
XTP_TICKER_TYPE_UNKNOWN ///<未知类型
250251

251252
}XTP_TICKER_TYPE;
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,17 @@ namespace XTP {
7878
///@remark 由于支持分时段查询,一个查询请求可能对应多个响应,需要快速返回,否则会堵塞后续消息,当堵塞严重时,会触发断线。此对应的请求函数不建议轮询使用,当报单量过多时,容易造成用户线路拥堵,导致api断线
7979
virtual void OnQueryOrder(XTPQueryOrderRsp *order_info, XTPRI *error_info, int request_id, bool is_last, uint64_t session_id) {};
8080

81+
///分页请求查询报单响应
82+
///@param order_info 查询到的一个报单
83+
///@param req_count 分页请求的最大数量
84+
///@param order_sequence 分页请求的当前回报数量
85+
///@param query_reference 当前报单信息所对应的查询索引,需要记录下来,在进行下一次分页查询的时候需要用到
86+
///@param request_id 此消息响应函数对应的请求ID
87+
///@param is_last 此消息响应函数是否为request_id这条请求所对应的最后一个响应,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
88+
///@param session_id 资金账户对应的session_id,登录时得到
89+
///@remark 当order_sequence为0,表明当次查询没有查到任何记录,当is_last为true时,如果order_sequence等于req_count,那么表示还有报单,可以进行下一次分页查询,如果不等,表示所有报单已经查询完毕。一个查询请求可能对应多个响应,需要快速返回,否则会堵塞后续消息,当堵塞严重时,会触发断线。
90+
virtual void OnQueryOrderByPage(XTPQueryOrderRsp *order_info, int64_t req_count, int64_t order_sequence, int64_t query_reference, int request_id, bool is_last, uint64_t session_id) {};
91+
8192
///请求查询成交响应
8293
///@param trade_info 查询到的一个成交回报
8394
///@param error_info 查询成交回报发生错误时返回的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
@@ -87,6 +98,17 @@ namespace XTP {
8798
///@remark 由于支持分时段查询,一个查询请求可能对应多个响应,需要快速返回,否则会堵塞后续消息,当堵塞严重时,会触发断线。此对应的请求函数不建议轮询使用,当报单量过多时,容易造成用户线路拥堵,导致api断线
8899
virtual void OnQueryTrade(XTPQueryTradeRsp *trade_info, XTPRI *error_info, int request_id, bool is_last, uint64_t session_id) {};
89100

101+
///分页请求查询成交响应
102+
///@param trade_info 查询到的一个成交信息
103+
///@param req_count 分页请求的最大数量
104+
///@param trade_sequence 分页请求的当前回报数量
105+
///@param query_reference 当前报单信息所对应的查询索引,需要记录下来,在进行下一次分页查询的时候需要用到
106+
///@param request_id 此消息响应函数对应的请求ID
107+
///@param is_last 此消息响应函数是否为request_id这条请求所对应的最后一个响应,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
108+
///@param session_id 资金账户对应的session_id,登录时得到
109+
///@remark 当trade_sequence为0,表明当次查询没有查到任何记录,当is_last为true时,如果trade_sequence等于req_count,那么表示还有回报,可以进行下一次分页查询,如果不等,表示所有回报已经查询完毕。一个查询请求可能对应多个响应,需要快速返回,否则会堵塞后续消息,当堵塞严重时,会触发断线。
110+
virtual void OnQueryTradeByPage(XTPQueryTradeRsp *trade_info, int64_t req_count, int64_t trade_sequence, int64_t query_reference, int request_id, bool is_last, uint64_t session_id) {};
111+
90112
///请求查询投资者持仓响应
91113
///@param position 查询到的一只股票的持仓情况
92114
///@param error_info 查询账户持仓发生错误时返回的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
@@ -280,6 +302,12 @@ namespace XTP {
280302
///@param session_id 资金账户对应的session_id,登录时得到
281303
virtual int Logout(uint64_t session_id) = 0;
282304

305+
///服务器是否重启过
306+
///@return “true”表示重启过,“false”表示没有重启过
307+
///@param session_id 资金账户对应的session_id,登录时得到
308+
///@remark 此函数必须在Login之后调用
309+
virtual bool IsServerRestart(uint64_t session_id) = 0;
310+
283311
///报单录入请求
284312
///@return 报单在XTP系统中的ID,如果为‘0’表示报单发送失败,此时用户可以调用GetApiLastError()来获取错误代码,非“0”表示报单发送成功,用户需要记录下返回的order_xtp_id,它保证一个交易日内唯一,不同的交易日不保证唯一性
285313
///@param order 报单录入信息,其中order.order_client_id字段是用户自定义字段,用户输入什么值,订单响应OnOrderEvent()返回时就会带回什么值,类似于备注,方便用户自己定位订单。当然,如果你什么都不填,也是可以的。order.order_xtp_id字段无需用户填写,order.ticker必须不带空格,以'\0'结尾
@@ -309,6 +337,14 @@ namespace XTP {
309337
///@remark 该方法支持分时段查询,如果股票代码为空,则默认查询时间段内的所有报单,否则查询时间段内所有跟股票代码相关的报单,此函数查询出的结果可能对应多个查询结果响应。此函数不建议轮询使用,当报单量过多时,容易造成用户线路拥堵,导致api断线
310338
virtual int QueryOrders(const XTPQueryOrderReq *query_param, uint64_t session_id, int request_id) = 0;
311339

340+
///分页请求查询报单
341+
///@return 查询是否成功,“0”表示成功,非“0”表示出错,此时用户可以调用GetApiLastError()来获取错误代码
342+
///@param query_param 需要分页查询订单的条件,如果第一次查询,那么query_param.reference填0
343+
///@param session_id 资金账户对应的session_id,登录时得到
344+
///@param request_id 用于用户定位查询响应的ID,由用户自定义
345+
///@remark 该方法支持分页查询,注意用户需要记录下最后一笔查询结果的reference以便用户下次查询使用
346+
virtual int QueryOrdersByPage(const XTPQueryOrderByPageReq *query_param, uint64_t session_id, int request_id) = 0;
347+
312348
///根据委托编号请求查询相关成交
313349
///@return 查询是否成功,“0”表示成功,非“0”表示出错,此时用户可以调用GetApiLastError()来获取错误代码
314350
///@param order_xtp_id 需要查询的委托编号,即InsertOrder()成功时返回的order_xtp_id
@@ -325,6 +361,14 @@ namespace XTP {
325361
///@remark 该方法支持分时段查询,如果股票代码为空,则默认查询时间段内的所有成交回报,否则查询时间段内所有跟股票代码相关的成交回报,此函数查询出的结果可能对应多个查询结果响应。此函数不建议轮询使用,当报单量过多时,容易造成用户线路拥堵,导致api断线
326362
virtual int QueryTrades(XTPQueryTraderReq *query_param, uint64_t session_id, int request_id) = 0;
327363

364+
///分页请求查询成交回报
365+
///@return 查询是否成功,“0”表示成功,非“0”表示出错,此时用户可以调用GetApiLastError()来获取错误代码
366+
///@param query_param 需要分页查询成交回报的条件,如果第一次查询,那么reference填0
367+
///@param session_id 资金账户对应的session_id,登录时得到
368+
///@param request_id 用于用户定位查询响应的ID,由用户自定义
369+
///@remark 该方法支持分页查询,注意用户需要记录下最后一笔查询结果的reference以便用户下次查询使用
370+
virtual int QueryTradesByPage(const XTPQueryTraderByPageReq *query_param, uint64_t session_id, int request_id) = 0;
371+
328372
///请求查询投资者持仓
329373
///@return 查询是否成功,“0”表示成功,非“0”表示出错,此时用户可以调用GetApiLastError()来获取错误代码
330374
///@param ticker 需要查询的持仓合约代码,可以为空,如果不为空,请不带空格,并以'\0'结尾

0 commit comments

Comments
 (0)