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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy