Page tree

Get started by adding some pages to this space. Create page.

Skip to end of metadata
Go to start of metadata



Q1. VS下为什么编译的时候,发生链接错误?
A1. 由于我们的库文件目前只支持64位的,所以请看一下默认的编译选项是否是64位的,如果不是,请选择64位进行编译。
Q2. 接口是否为异步的?

A2. API中登录Login()接口为同步的,返回后,可以视为已经登录成功。其余所有接口均为异步的。

Q3. 当调用接口失败时,如何知道失败原因?

A3. 可以调用api的接口GetApiLastError()来获取失败原因。
Q4. CreateTraderApi()中的client_id可以相同么?
A4. 可以。对于同一account,相同的client_id只能保持一个session连接,后面的登录在前一个session存续期间,无法连接。
Q5. CreateTraderApi()中的save_file_path必须输入么?
A5. 必须输入,而且必须是一个有可写权限的实际存在的路径。
Q6. 同一个账户account可以多个客户端同时登陆么?
A6. 对于同一账户account的连接,由api的client_id来进行区分。同一个account,可以同时由不同的client_id来进行登陆连接,但是对于同一对account和client_id,一次只能有一个连接,client_id建议选择1~100以内,超过100的,属于xtp预使用区间,client_id的总使用个数建议不超过5个。
Q7. 同一个api支持多个账号account登录么?
A7. 支持。用户在登录后会得到一个session_id,用户需要记录下account对应的session_id,所有的接口函数都要用到session_id。
Q8. 连接成功后的session会失效么?
A8. 在同一个交易日内,如果没有出现断线,api也没有销毁,此次的session不会失效。当然,如果用户在登录后,因为阻塞或者其他什么原因导致心跳包无法按时发送到服务器,那么当其他用户用相同的account和client_id再次登录时,前一个session可视为失效。
Q9. 在响应函数中为何不很快返回有可能导致断线?
A9. 在服务器向客户端发送的数据量很大的情况下,当用户在响应函数中处理过慢,会导致数据接收缓冲区被填满,服务器无法向客户端发送数据,此时会触发断线。所以在实际使用中,请尽快从响应函数中返回。
Q10. api会自动重连么?
A10. api不会自动帮用户重连。用户可以在收到断线通知OnDisconnect()后选择不销毁api,不登出,继续登录login(),此时交易服务器会在用户重新登录后,从断点消息处续传。注意:行情服务器在断线后不会重新推送行情,除非用户重新订阅。
Q11. 同一个进程中支持几个api?
A11. 同一个进程中只允许存在一个api。当用户多账户登录时,请确保程序中只Create了一次api。
Q12. 平台系统支持过夜么?
A12. 不支持过夜,只支持当日交易时间段。
Q13. login时选择Restart和Quick公共流订阅方式有什么区别?
A13. 公共流订阅方式必须在login之前设定,在login之后生效。Restart方式会将今日所有的公共流消息都重新发送一遍。Quick方式登录后,客户端只会收到登录后的一系列公有流消息。
Q14. 订单响应在哪几种状态下会推送?
A14. 对于一个订单而言,OnOrderEvent()中只会推送未成交、全成、部撤、全撤、废单5种状态,部成状态不会推送,可以由用户通过订单相关的成交回报OnTradeEvent()来确认订单的部成状态。

Q15. 调用查询接口,消息返回时,数据是按批过来的么?

A15. 所有查询数据都是按个推送的,每次推送一个,即当查询结果有N个数据时,会调用N次接口,当最后一个数据推送时,会设置参数is_last为true。
Q16. 为什么我没有做过撤单操作,可是最后订单被撤了?
A16. 当发生这种情况时,先确认没有其他人使用与你同样的account登录并操作。XTP平台支持同一account以不同的client_id登录,如果多人同时登录,可能会互相撤单。
Q17. 调用InsertOrder()后,返回的order_xtp_id是唯一的么?
A17. 在同一交易日内,保证唯一。所有数据均当日有效,不保证不同交易日唯一。
Q18. 成交回报有唯一标识么?
A18. report_index+market字段可以组成唯一标识表示成交回报。
Q19. 如何检查自成交?
A19. 对于上交所,exec_id可以唯一标识一笔成交。当发现2笔成交回报拥有相同的exec_id,则可以认为此笔交易自成交了。对于深交所,exec_id是唯一的,暂时无此判断机制。
Q20. 在断线后,login()之前,调用登出logout()和不调用有何区别?
A20. 如果不登出就login(),公共流订阅方式不会起作用。用户只会收到断线后的所有消息。如果先logout()再login(),那么公共流订阅方式会起作用,用户收到的数据会根据用户的选择方式而定。
Q21. 用户重新登录行情服务器后,需要重新订阅么?
A21. 需要。无论用户因为何种问题需要重新登录行情服务器,都需要重新订阅行情。
Q22. 下单结构体XTPOrderInsertInfo中的order_client_id有什么作用?
A22. order_client_id为用户自定义字段,用户下单时输入什么值,订单响应OnOrderEvent()返回时就会带回什么值,类似于备注,方便用户自己定位订单。当然,如果你什么都不填,也是可以的。合理的规划好order_client_id,将有助于用户更快定位订单。
Q23. 股票代码ticker字段有什么要求?
A23. ticker中要以’\0’结尾,并且不能带任何空格。
Q24. 订单响应结构体XTPOrderInfo中的qty_left数量,为什么在撤单成功时不显示为0?
A24. qty_left在订单为未成交、部成、全成、废单状态时,表示此订单还没有成交的数量,在部撤、全撤状态时,表示此订单被撤的数量。
Q25. 为何没有撤单成功响应函数?
A25. 对于撤单,如果成功响应了,原订单的状态肯定会变成部撤或者全撤,所以没有提供单独的撤单成功响应。只有撤单失败响应,告诉用户撤单失败的原因。
Q26. GetAccountByXTPID()只能在登录之后调用么?
A26. 是的,只能在account登录后才能得到正确的结果。
Q27. GetClientIDByXTPID()有何作用?
A27. 当多个客户端用同一个account登录时,可以通过此函数得到是哪个client_id的客户端下的单,并据此过滤出自己的订单。
Q28. 一个api里,调用多次login函数登陆多个账户,下单的时候就根据session_id来区分单子下到哪个账户里,但是收到成交回报之后,怎么区分是哪个账号的成交回报呢?
A28. 回调函数中增加了session_id参数可帮助用户进行区分,也可以通过GetAccountByXTPID()来获取此订单对应的账号,但是建议用order_client_id来区分,规划好order_client_id会更方便快捷。
Q29. 为何撤单失败提示错误,找不到原单?
A29. 请检查撤单时传入的xtp id是否是正确的,xtp id是64位的,请确保传入的xtp id与下单时返回的xtp id是一致的。
Q30. 为何有的时候下单后被拒,成为废单?
A30. 请先根据拒单原因检查一下订单,可以按如下项进行检查:(1)如果买单,请检查报单数量,是否为100的整数倍,是否超过了100万股。(2)限价单的话,价格是否超过涨跌停价格。(3)价格类型是否正确,是否是交易所允许的价格类型。(4)股票代码是否正确,是否跟交易所类型匹配。(5)交易所类型是否正确。(6)是否下单数量过多,触发了风控。(7)是否撤单过多,触发了风控。(8)是否在允许报单时间内。(9)business_type是否设置正确。(10)position_effect是否设置正确。若以上都不是,请看一下是否是模拟撮合环境,如果是模拟撮合环境,会有一定几率发生模拟交易所拒单。此时交易所拒单的error_code是11110000,或者11100000,error_msg通常为217或者10000或者29999。这是模拟拒单,方便您测试拒单情况,不代表您的报单有错误。
Q31. 在订单发生成交的时候,OrderEvent订单响应会有推送么?
A31. OrderEvent只会在订单的开始状态,或者终止状态时推送,部成的时候不会推送,部成状态需要用户根据成交回报来确定。
Q32. 为何成交回报TradeEvent中的成交数量,有的时候不是100的整数倍?
A32. 成交回报的数量取决于卖单的数量,如果卖单不是100的整数倍,那么成交数量是有可能不是100的整数倍的。交易所允许最后一单卖单,可以下非100的整数倍。
Q33. 全成的订单响应OrderEvent会在此订单的所有成交回报TradeEvent之后到达么?
A33. 我们的系统确保订单的开始状态OrderEvent在此订单的所有成交回报到达之前到达,同时也确保订单的结束状态OrderEvent在此订单的所有成交回报之后到达。
Q34. 每次login之后的session_id会变化么?
A34. 是会变化的,所以请每次登录后及时更新session_id。
Q35. 在查询资金接口中,为何总资产=可用资金+预扣资金?
A35. 总资产total_asset = 可用资金buying_power + 证券资产security_asset + 预扣资金withholding_amount,由于目前security_asset我们暂时不做统计,默认为0,因此总资产=可用资金+预扣资金。
Q36. 模拟撮合采取的撮合策略是怎样的?

A36. 模拟撮合目前采取轮循的方式进行撮合,上交所模拟撮合会每秒去轮循一次,然后轮流按照不成交、部分成交、全部成交、拒单等方式给用户的订单进行模拟撮合,确保用户下单时,所有可能的报单情况都能给到用户。如果用户想要设置不同的撮合方式,请至XTP官网的个人中心中设置测试账号的模拟撮合默认撮合方式。如果不设置就默认全成模式。此设置模式约10分钟后生效。

 
新增用户自定义撮合方式,利用InsertOrder时报单所填的order_client_id数值,按如下模式撮合:
深圳:1-未成交 2-全成 3-部成 4-撤单 5-废单
上海:1-未成交 2-全成 3-部分 4-废单

Q37. 实盘下交易频率是否有限制?
A37. 是有限制的。服务端会有相关风控规则,如果有相关高频率发单需求,可以将需求提交到管理员这边进行协商配置。
Q38. 阿里云模拟环境的可测试时间段?
A38. 除了每日的00:00 - 00:30分,8:30 - 9:00,服务器在初始化,其余时间段,都可以测试。
Q39. 服务器支持过夜单么?
A39. 不支持过夜单。
Q40. 目前XTP支持的业务有哪些?
A40. 目前阿里云的测试版本支持的业务是:沪深A股买卖、单市场ETF买卖、新股申购业务、国债逆回购、配股业务、ETF申购赎回业务。
Q41. 阿里云的订单响应速度不是那么快啊?
A41. 阿里云的模拟环境除了网络延迟比较大之外,模拟撮合的速度也有一定的延迟,以上交所模拟撮合为例,是1s一个周期进行轮询,如果你下单的时候正好进入下一个周期,那么最晚需要1s才会收到订单响应。
Q42. 阿里云的行情数据更新频率怎样的?
A42. 阿里云的行情数据不是从交易所来的,是我们的程序直接从网上抓取的,目前设置的抓取频率是5s一次。即使是收盘后,也会有行情推送,只是行情数值不变。
Q43. 阿里云上的行情数据有的时候为什么不动了?
A43. 当阿里云与网上的行情源失去连接或者行情源不更新的话,会影响到阿里云测试环境下的行情数据的获取。当在闭市时间段内,只有静态行情,此时行情是不会变的。如果在开市时间段内,行情数据不动,请联系我们的技术人员。
Q44. OnDisconnected()什么时候会调用?
A44. 在服务器与客户端断线的时候会调用。如果此时用户想要重连,只需要在函数中再次调用Login(),并在登录成功后更新session_id即可。在用户主动调用Logout()时不会触发OnDisconnected()。
Q45. API会自动断线重连么?
A45. API不会主动帮助用户断线重连。当断线发生时,如果用户需要重连,只需在OnDisconnected()函数中再次调用Login(),并在登录成功后更新session_id即可。客户端此时会从上次收到的消息进行续传。
Q46. OnError()什么时候调用?
A46. 只有在服务器发生错误的时候才会触发OnError()。一般情况下,都不会触发。
Q47. 在阿里云测试环境下,为什么我无法卖出我昨日买入的持仓?
A47. 因为阿里云的测试环境是不做清算的,每日都会将账户初始化至最初的状态,也就是说你今日买入的持仓,在到第二日后不会进入昨日持仓,所有资金和持仓数据均保持初始状态。如果说你需要保留持仓,请将测试用户名、密码告知QQ群的管理员,让他们帮你做持仓保留。注意:保留持仓可能会失败。
Q48. 在查询持仓中股票名称为何是乱码?
A48. 股票名称的编码是UTF-8,请检查一下编码是否正确。
Q49. 在断线后,如何系统恢复?
A49. 断线后,不重启的情况下,直接在OnDisconnected()函数中再次调用Login(),就默认是resume方式;如果是重启的情况下,只能通过restart方式,或者quick方式+查询。
Q50. demo程序为何一直在下单?
A50. demo测试程序采用的是乒乓测试下单,当收到OrderEvent时,会根据订单的状态来触发撤单或者新一轮下单。除了在xtp_api_demo.cpp文件中有InsertOrder的调用,在trade_spi.cpp文件的OnOrderEvent()响应函数中,也有InsertOrder的调用。如果用demo测试下单时,发觉所有订单都是拒单,请参考(第30题)来解决问题。
Q51. 提示 [XTP:1]Login Failed,trade way not allowed,please check it! 这个错误代表什么意思?
A51. 这个表示在调用void SetSoftwareKey(const char* key)这个函数时传入的key不对,请填入正确的key。此key在申请账号时会一并给出。每个账户对应的key可能不一样。
Q52. 阿里云的测试环境的开启时间是什么?
A52. 除了每日的 0:00 - 0:30,8:15 - 9:00,其余所有时间均可测试。
Q53. 程序编译可以通过,可是运行时提示确少某些运行库,怎么办?
A53. 请下载缺少的库,并放置到对应的位置上,下载安装必要的redist补丁包。
Q54. 只能在vs2015下编译运行么?
A54. windows版推荐在win10,vs2015下编译运行,但不局限于此。其他版本的windows和vs可能需要安装部分补丁包和运行库。Linux版推荐ubuntu14,ubuntu16,redhat7.2。
Q55. demo没有工程文件,请问可以提供工程文件么?
A55. demo里包含cmake文件,请用cmake工具,选择好需要的generator,然后生成对应的工程文件。
Q56. demo在release模式下编译时提示找不到对应的库文件。
A56. 请修改cmakelist文件中optimized后面引用的lib库文件名字改成debug的库文件。
Q57. 当全市场订阅行情时,为何一会儿就会断线?
A57. 请按如下顺序检查您的程序:(1)是否在收到行情回调时,能够迅速返回,所有处理过程在另一个线程里。(2)是否有屏幕输出?如果有,请减少屏幕输出,或者不输出。(3)接收行情线程是否有堵塞。注意在公网测试环境下,由于带宽有限,如果用户订阅行情数过多,容易导致缓冲区满,从而造成断线,请在公网测试环境下,少订阅几只股票。
Q58. 如何订阅全市场行情?
A58. 已提供全订阅/退订接口。
Q59. ETF申购后,对ETF报卖单,数量也是查询持仓中的可卖持仓,为何出现错误代码为11000107的拒单?
A59. 请检查你的报单数量是否超过100万股,交易所规定报单数量不能超过100万股。
Q60. ETF申购后,返回的成交回报中,为何有些成分股的数量为0?
A60. 成分股数量为0时,表明此成分股发生现金替代,数量没有变化。
Q61. 查询持仓时,如果账户没有持仓的话,有何返回结果?
A61.  当没有持仓的时候,OnQueryPosition()函数中的error_info.error_id =11000350,表明没有持仓。同样的,在查询其他记录时,如果没有记录信息,在返回的SPI函数中均有error_info.error_id =11000350。
Q62. 沪市level2的逐笔数据中有逐笔委托数据么?
A62.  没有,沪市只有逐笔成交,深市有逐笔委托和逐笔成交。
Q63. 可以通过哪些途径知道某只股票是停盘等状态的?
A63.  在行情marketdata数据中ticker_status字段有说明。

 对于普通股票,具体值如下  

 对于期权,具体值如下

Q64. xtp结构体中有很多时间,哪些时间是交易所时间,哪些是xtp本地时间?
A64.  XTPTradeReport中的trade_time 是交易所时间,XTPOrderInfo中的cancel_time是交易所时间。其余为xtp本地时间。
Q65. 报单时报单数量允许报非100的倍数么?

A65.(1)如果是买单,是不允许的。(2)如果是卖单,如果持仓中有零散股,只允许将零散股一次性报出。例如持仓中A股票有232股,那么可以分100股、100股、32股报,也可以分100股、132股报,还可以232股报。

 Q66. MFC客户端在模拟环境下,为何订阅的行情不会主动刷新?
A66. 由于阿里云公网测试环境仅支持TCP连接,而MFC客户端默认UDP连接,因此需要修改客户端的设置文件config.ini,在LOGIN下面添加 MdProtocal=TCP。
  Q67. 公网测试环境中,订阅行情为何总是断线?
A67. 由于公网测试环境带宽有限,所有用户共用2m带宽,当有用户订阅的股票数目比较多时,会造成网路堵塞,不光影响自己,也影响他人,会造成频繁断线。请在公网测试环境中订阅比较少的数量来进行连通性测试。
Q68. xtp支持哪几种语言接口?
A68. 目前xtp支持的语言接口包括:

C++( https://xtp.zts.com.cn/)xtp官网可下

Python(https://github.com/ztsec/xtp_api_python)

Java(https://github.com/ztsec/xtp_api_java

 以下为热心用户封装:

C#  https://github.com/zerochocobo/XTP.NET

C#  https://github.com/rongyuhuang/XTP.NET

Go https://github.com/leochan007/XTP.GO

Q69. Python接口中,有接入说明么?
A69. 请参阅接口调用的两个test  https://github.com/vnpy/vnpy/tree/master/vnpy/api/xtp/test
具体的结构体里的说明参阅C++的说明文档,Python里接口首字母小写(而C++是大写),其他都一样
Q70. 登录失败,提示"Login Failed,get user identity failed."是何原因?
A70. 这是因为您使用的client_id过多导致,请将client_id固定下来使用,(建议1~100内),我们对client_id的总共使用个数做了限制,超过最大使用个数就不让登录了。
Q71. xtp推荐的运行环境是多少?
A71. 推荐系统windows 10、redhat7、ubuntu16、centos7。
Q72. quote日志中有"service function is not exists(2018)"这个warning语句是何意?
A72. 这个warning是因为api的版本和服务器版本不一致导致的,用户程序的api用的是1.1.16版本,服务器是1.1.18版本,1.1.18版本相比1.1.16版本新增了部分协议,导致1.1.16版本无法解析,用户可以不用管它。
Q73. 一账号两中心节点之间如何进行资金划转?
A73. 如果是做转入操作,且知道对方节点的可用资金是多少,那么可以直接发起划拨请求。如果不知道对方节点可用资金是多少,那么可以先试着发起一次大金额且一定不会成功的资金划拨请求(10亿),等返回的错误代码是11000384时,此时返回的error_msg中含有对方节点可用资金的整数对应的字符串,用户此时可以将此字符串解析后,atoi转成对应整数,然后设置合适的资金,再次发起请求。
Q74. 为什么账号开通XTP之后,用Smart客户端或者其他xtp客户端登录一直提示"The password is incorrect",而用融易汇相同的密码却能登录?
A74. 请检查账户的操作权限,是否开通Smart等客户端的权限,如果没有开通,也会一直提示密码错。
Q75. 如果某只股票发生配股,需要配股的话,可以如何操作?
A75. 查询持仓的时候,根据配股代码规则可以过滤出配股的信息。其中:
yesterday_position表示总可配股数量
sellable_qty表示剩余可配股数量
total_qty表示已配股数量
假如今天股票A可配股票B 1000股,那么初始时yesterday_position = 1000,sellable_qty=1000,total_qty=0
报单操作配了200股后,查询持仓中对应的数据:yesterday_position = 1000,sellable_qty=800,total_qty=200
Q76. 新股申购如何操作?
A76. 可以根据QueryIPOInfoList()QueryIPOQuotaInfo()查询出今日的新股信息和可申购额度,进行操作。
Q77. 为什么我调用某些接口函数时,没有期望的spi函数调用?
A77. 请检查您编译时连接的库版本和实际运行时链接的库版本是否一致,如果不一致,请更新一下。(可通过日志看到实际运行的版本号)
Q78. 担保品划转是实时扣减数量么?
A78. 对于担保品转出,会实时扣减数量。当收到订单确认消息,即视为转出成功。对于担保品转入,不会实时扣减。当收到订单确认消息时,不是真正的传入成功,需要等盘后清算时确认。
Q79. 会发生InsertOrder()接口还没返回,但是先收到订单确认状态的情况么?
A79. 会发生这种情况,当调用InsertOrder接口的线程被挂起时,可能会晚于订单确认消息返回。用户需注意收到不存在的订单时,不要丢弃。
Q80. Python版本的demo如何运行
A80. 需要把bin目录下对应的系统下封装的.so文件和原api的dll放到bin/test,即可运行demo。如果运行自己写的Python程序可以将相应的文件放到引用目录或者程序所在目录。
Q81. XTP能交易港股吗?
A81. 目前XTP还没有开通港股功能。
Q82. XTP可以交易可转债吗?
A82. XTP支持可转债交易,您如果在线下打新,也可以股份到账后在xtp卖出。但现在还不支持在xtp直接申购,也不支持转股操作。
Q83. 为什么订阅了行情只收到一条行情信息?
A83.请检查连接XTP的方式是否和服务器是一致的,目前测试环境的服务器是TCP连接,实盘level2服务器一般是UDP连接。
Q84. 如何能够申请XTP账户,需要什么条件?

A84. 需要达到专业投资者的条件。

Q85. XTP账户如何做转账操作?
A85.银证转账可以使用融易汇,主柜台和XTP之间转账可以使用smart。
Q86. smart怎么连接测试环境?
A86.需要设置连接地址:smarttest.ztqft.com
Q87. XTP实盘的api交易程序可以在互联网登录吗?
A87.不可以,XTP实盘api程序必须托管在机房,我们也提供了2个客户端:极速通和smart,可以在互联网登录。
Q88. 为什么使用测试环境极速通无法登录,如果出现图中显示的情况怎么处理?

A88. 需要进行高级行情设置。

Q89. 如何将程序上传到托管机?
A89. 文件上传需要发送至我们的专用邮箱:xtp.up@zts.com.cn,我们会有专人代客户上传,一般预计5到10分钟传到服务器。邮件中请简要说明上传文件的内容,比如是修复程序BUG,更改策略等等,再附上您的客户名称,服务器IP地址。
Q90. 程序登录失败,显示:{'error_id': 1, 'error_msg': '[XTP:1]read_ptr function failed.(remain_bytes < bytes). remain_bytes: 254 bytes: 1937047552.'} 
 A90. 首先请检查一下账号和密码是否配置正确,包括行情账户和交易账户,如果都配置正确请再检查一下是否上一次登录的程序未完全退出。如果都没有问题可以临时更改一下client id进行登录。 
Q91.  程序登录失败,显示:Failed to connect to host server, error code is 1, error message is [XTP:1]read_some function failed.(remain_bytes <total_bytes). Remain_bytes: 254 total_bytes: 258.
 A91. 请检查一下monitor guest是否在线。
Q92.  测试环境极速通登录不上,如果出现下面几个提示是什么原因?

 A92.  请联系运维人员检查极速通服务是否在线。
Q93.  QT版客户端无法登录测试环境?

 

A93. 请检查一下行情服务器和交易服务器的IP和端口是否设置正确,如果是api程序出现这样的错误请检查一下login的参数是否正确。
Q94. 为什么下载的java中的demo编译不了,有很builder方法没有定义?

A94. java为了减少写代码的工作量,引入了builder模式。需要安装Lombok插件。
Q95. 这是什么错误 Tgw of the pbu id not found
A95. 这个是账户设置问题,需要联系营业部人员检查账户开户设置的情况。
Q96.可转债支持市价单吗?
A96. 可转债是无涨跌幅证券类型,不支持市价单。
Q97.下单时返回0,然后使用GetApiLastError又没有错误信息描述,error_id为0,error_msg为空,怎么排查这个问题呢?
A97. 请检查下单的参数是否有误,如session id ....如果都没有问题请检查一下使用的头文件和库的版本是否是一致的,程序编译时是否是一致的。
Q98.为什么我通过程序api下单会出现自动撤单的情况,上交所的订单正常,只有深交所的股票会出现这种情况?
A98. 请检查下单时使用的client id模拟撮合会根据client id给出相应的撮合结果,详细请看本文档第36问。
Q99.下单时报错:Failed to get ticker quotes,ticker does not exist or can not be traded!

A99. 请检查一下证券代码是否正确,如果无误请检查一下交易市场是否正确。行情api和交易api使用的是不同的市场类型,如果都没问题请确认一下是不是XTP不支持的品种。

Q100. 在下单的时候,在接收回调函数通知时,会不会保证按照正常的订单生命周期对应的时间顺序;举个例子,全成会在部成后面出现,而不会是部成在全成后面出现。
A100. 一般情况都是按时间推送的,部成不推送消息。
Q101. 买卖队列的有效委托笔数和总委托笔数有什么区别呢?
A101. 有效委托笔数是程序里能存储的数量,总委托笔数是市场里的委托数量。
Q102. onOrderEvent中撤单时,返回的cancel_time这个时间指的是哪个时间,交易所返回的撤单时间?还是xtp接收到交易所返回撤单信息的时间。
A102. 交易所时间。
Q103. CreateQuoteApi 和CreateTraderApi直接返回NULL是什么原因?
A103. 请检查是否创建了过多的api对象,对于行情可以创建2个,对于交易只能创建1个;如果数量没有超过限制请检查输入参数是否有误,client id要用正整数;还有一个可能的原因是库文件和头文件的版本不一致。
Q104. OnQueryOrderByPage接口返回的记录中包含委托和撤单委托,怎么能方便的把委托和撤单委托区分出来?
A104. 前三个是委托订单,后面三个是撤单。
/////////////////////////////////////////////////////////////////////////
///@brief XTP_ORDER_SUBMIT_STATUS_TYPE是报单提交状态类型
/////////////////////////////////////////////////////////////////////////
typedef enum XTP_ORDER_SUBMIT_STATUS_TYPE
XTP_ORDER_SUBMIT_STATUS_INSERT_SUBMITTED = 1, ///<订单已经提交
XTP_ORDER_SUBMIT_STATUS_INSERT_ACCEPTED,///<订单已经被接受
XTP_ORDER_SUBMIT_STATUS_INSERT_REJECTED,///<订单已经被拒绝
XTP_ORDER_SUBMIT_STATUS_CANCEL_SUBMITTED,///<撤单已经提交
XTP_ORDER_SUBMIT_STATUS_CANCEL_REJECTED,///<撤单已经被拒绝
XTP_ORDER_SUBMIT_STATUS_CANCEL_ACCEPTED ///<撤单已经被接受
XTP_ORDER_SUBMIT_STATUS_TYPE.
Q105.上证云测试环境有orderbook吗?
A105.上证云没有orderbook,只有逐笔数据。
Q106. SetSoftwareKey,软件开发Key,能否申购多个测试账号时是同一KEY?
A106. 这个key是按渠道来的,多个测试账号开通了同一个渠道,那么key就是同一个。
Q107. XTPQueryStkPositionRsp的ticker_name是什么编码的?
A107. utf-8。
Q108. 集合竞价期间有orderbook数据吗?
A108.  集合竞价期间没有orderbook只有tick,orderbook要到开盘以后才会有。
Q109. 测试环境两融账户可能保留持仓吗?
A109.  两融账户目前不能保留持仓。
Q110. xtp有没有那种正常的仿真交易环境?就是类似simnow那种的?
A110.  XTP的现货测试账户可以设置保留持仓,类似于simnow。
Q111. 如何申请测试账号?

A111.  登录XTP官网xtp.zts.com.cn然后申请测试账号,填写账户申请表如下图所示,公司审核之后会将账号发送到您的邮箱。

Q112. XXXXXXX login failed, errorMsg=[XTP:1]Login Failed, get user info failed,please check if user info is perfect.[OS:106]Transport endpoint is already connect

A112. 请检查一下账户和登录的服务器是不是对应的,比如是不是普通测试账户登录了期权测试服务器或者两融测试服务器。

Q113. [XTP:1]Login Failed,trade key invalid or not set,set assigned key first!
A113.  请检查一下配置文件的account_key设置是否正确。 
Q114.  OnDepthMarketData和OnTickByTick,是深圳和上海各一个线程,还是两个市场共用一个线程?
A114.  OnDepthMarketData在使用UDP的时候可能是两个线程,OnTickByTick是共用一个
Q115. xtp可以进行正回购吗?
A115. xtp不支持正回购。
Q116. 如果自己写的交易策略,用XTP API,走托管流程,穿透式监管,要审核源代码吗?
A116. 不审核源码 。
Q117.  ETF申购赎回,返回11000010(Failed to get ticker quotes, ticker does not exist or cannot be traded!) 
A117. 请检查一下ETF代码,xtp统一使用二级市场代码申购赎回和交易。
Q118. ETF成交记录中一级,二级市场代码都有吗?
A118. 都有的,ETF二级市场记录,成分证券成交记录,资金记录,ETF一级市场记录这四种数据都有。
Q119. 股票量化交易一般验证哪几类功能,除了买卖和买卖成交汇报,还需要验证什么吗?批量买卖之类功能需要单独验证吗?
A119. 如果有需求是需要验证批量交易的
/////////////////////////////////////////////////////////////////////////
///TXTPTradeTypeType是成交类型类型
/////////////////////////////////////////////////////////////////////////
typedef char TXTPTradeTypeType;
///普通成交
#define XTP_TRDT_COMMON '0'
///现金替代
#define XTP_TRDT_CASH '1'
///一级市场成交
#define XTP_TRDT_PRIMARY '2'
///跨市场资金成交
#define XTP_TRDT_CROSS_MKT_CASH '3'
Q120. 哪些ETF测试环境可以做申购赎回?
A120. 普通现货测试环境支持ETF申赎。
Q121. 测试环境支持。期权的锁定和解锁么,备兑开仓和备兑平仓?
A121. 测试环境不支持。
Q122. 测试环境可以进行转账操作测试吗?
A122. 转账需要我们的测试环境开启kesb的环境,目前我们的测试环境没有开启这个环境,所以不支持转账测试。
Q123. 如何获取撤单的数量?
A123. 撤单后,原单会收到部撤的消息,此消息中的qty_left就代表撤单数量。
Q124. XTP行情支持中金所的股指期权吗?
A124. 目前只有上交所和深交所的数据。
Q125. 沪深etf,债券和股票,都可以下fak和fok订单吗?
A125. 部分支持,具体请参考price type各项设置的注释。
Q126. 如何理解价格类型里面的注释
A126. 只有标注了期权的才可用于期权下单,没有标注期权的只能普通股票适用,没有标注交易所的沪深都可用。
/////////////////////////////////////////////////////////////////////////
///@brief XTP_PRICE_TYPE是价格类型
/////////////////////////////////////////////////////////////////////////
typedef enum XTP_PRICE_TYPE
XTP_PRICE_LIMIT = 1, ///<限价单-沪 / 深 / 沪期权(除普通股票业务外,其余业务均使用此种类型)
XTP_PRICE_BEST_OR_CANCEL, ///<即时成交剩余转撤销,市价单-深 / 沪期权
XTP_PRICE_BEST5_OR_LIMIT, ///<最优五档即时成交剩余转限价,市价单-沪
XTP_PRICE_BEST5_OR_CANCEL, ///<最优5档即时成交剩余转撤销,市价单-沪深
XTP_PRICE_ALL_OR_CANCEL, ///<全部成交或撤销,市价单-深 / 沪期权
XTP_PRICE_FORWARD_BEST, ///<本方最优,市价单-深
XTP_PRICE_REVERSE_BEST_LIMIT, ///<对方最优剩余转限价,市价单-深 / 沪期权
XTP_PRICE_LIMIT_OR_CANCEL, ///<期权限价申报FOK
XTP_PRICE_TYPE_UNKNOWN, ///<未知或者无效价格类型
XTP_PRICE_TYPE.
Q127. price type某些设置注释是沪/深期权,这是什么意思?
A127. 沪市股票,深市期权可用。
Q128. XTP哪个客户端支持算法交易
A128. smart和kungfu。
Q129. XTP可以申购货币基金吗?
A129. 可以买卖,申赎不支持。
Q130. 设置接收行情线程绑定的cpu,这个是逻辑CPU还是物理CPU呢?
A130. 这个是逻辑cpu。
Q131. 模拟环境中的股票状态和实盘是一致的吗?
A131. 模拟环境的行情中ticker_status跟实盘不一致,模拟环境中没有停牌的股票。
Q132. 指定行情数据使用CPU后,行情数据处理的那个核会很忙,如果不指定,就每个核比较平均,是否可以指定2个CPU呢?
A132. 只能指定一个。
Q133. 为什么行情期权数据没有找到行权价和到期日?
A133. 请使用trader api QueryOptionAuctionInfo查询。
Q134. 可以同时用xtp和普通客户端交易吗?
A134. 开通了xtp实盘后只能用xtp交易,普通柜台客户端可以登陆查询,但不能委托,XTP也提供了一些客户端可以进行交易。
Q135. XTP可以订阅中证的指数吗?
A135.可以的。
Q136. 行情数据里面的时间是哪里的时间呢?
A136. 行情相关的时间都是交易所时间;测试环境中的时间是数据生成的时间。
Q137.上海和深圳机房的时间是PTP同步还是NTP同步的?
A137. ntp同步,需要使用机房内的时钟源,具体请查阅运维给的参数文档。
Q138. XTP的接口函数是线程安全的吗?
A138. 报单、查询等函数均可多线程调用,是线程安全的。
Q139. 在vs2019里面编译xtp的demo,提示:严重性代码说明项目文件行禁止显示状态错误  LNK2019 无法解析的外部符号 "public: static class XTP::API::TraderApi  __cdecl XTP::API::TraderApi::CreateTraderApi(unsigned char,char const ,enum XTP_LOG_LEVEL)" (?CreateTraderApiAPIEPBDW4XTP_LOG_LEVEL@@@Z),该符号在函数 _main 中被引用 xtpdemo D:\doc\XTP_API_20190401_1.1.18.19\demo\XTPApiDemo-1.1.18.19\xtpdemo\xtp_api_demo.obj 1
A139. 请检查一下是否包含了相应的头文件,是否链接了相应的库文件,如果都没有问题请检查一下编译的选项是x86还是x64,要和引用的库版本相一致。
Q140. 为什么执行java sdk里面的单元测试的时候,执行第n次insert测试,前面n-1次测试的所有log都会盖上当前时间戳重新打印一次啊?效果就是我每天执行测试的时候,每一次测试log越来越多。

A140.  请检查这个接口的调用参数SubscribePublicTopic,应该用quick方式。

Q141. 两融仿真测试,所有交易委托订单都被拒绝: error_info=&get;error_id:11000909, error_msg:Order is invalid in current debt expire status! 这是什么原因?
A141.  两融负债合约逾期了,需要先还清。
Q142. 程序运行时提示缺少dll文件是怎么回事?

A142.  这个是运行环境少了必要的库,请到群文件下载redist_x64_dll.zip,解压后放到程序所在目录。
Q143. xtp的spi里面的回调,是多线程执行还是单线程的?
A143. 查询的都是一个线程,OnOrderEvent和OnTradeEvent这些可能会存在两个线程;Quote spi中,会有两个线程。
Q144. 融易汇里看到的持仓是实时更新的吗?
A144. xtp里的持仓需要在T日清算后才同步到融易汇中。
Q145. 对于xtp下单的新股申购,是在XTP柜台缴款,还是在普通柜台缴款?
A145. 只要盘后账户里留有足够的资金就行了。
Q146.  XTP的行情日志占用比较大的存储空间。需要定期手动清理吗?还是XTP会自动删除过期的日志?
A146. 在权限允许的情况下,xtp会自动删除7天前的日志,不过建议您监控好硬盘存储空间。
Q147.  撤单失败是什么原因导致的呢?OnCancelOrderError Error.[order_xtp_id:1140851691,order_cancel_xtp_id:1140853695,session_id:572522497,error_code:11000305,error_msg:Failed to find original order!]

A147.  撤单时order_xtp_id填错了。 

Q148.  XTP可以查询新股中签的情况吗?
A148.  可以通过融易汇在主柜台查询。
Q149.  融资可用余额怎么查?
A149.  QueryCreditFundInfo可以使用这个接口查询。
Q150.  做融券业务时出现failed to check credit stock position. (11010503)是什么问题?
A150.  信用账户对应的融券头寸(融券券池)没有足够的可用数量。如果是实盘的话,请联系营业部。
Q151. 如果发生除权,昨收价拿到的是除权前的价格还是除权后的价格?
A151. 是除权后的价格。
Q152. 在log里有一些警告信息:[WARNING][XTP:1]service function is not exists(2018).[xbase_api.cpp:244][XTP:6]recv function timeouted. [xbase_os_socket.cpp: 453]
A152. 这个可能是客户端库版本和服务端库版本不一致导致的,如果不影响程序功能可以不用管,如果影响了功能就需要升级api的库,需要同时升级库文件和头文件。
Q153.  api的log是同步写的吗?
A153. 是的。 
Q154. 为什么申购50ETF会失败?

  

A154. 申购50etf需要持有相应的一篮子股票市值。
Q155. 逐笔成交如何对应到逐笔委托?
A155. XTPTickByTickTrade.bid_no/ask_no 与XTPTickByTickEntrust.seq对应。
Q156.用UDP来接收逐笔数据是有序的还是序的?
A156. 一般来说api会保证逐笔数据的顺序。
Q157. XTPOrderInfo里面的时间是交易所时间吗?
A157.  insert_time是xtp柜台时间,update_time和cancel_time是交易所时间。
Q158. 下单时资金是怎么预扣的?
A157.  如果是限价单,按报的价格预扣,如果是市价单,按涨停价预扣。
Q159. 两融账户可以交易逆回购吗?
A159. 不可以。 
Q160. monitor client 突然登录不上了,报错如下图所示:

A160. 请检查monitor guest 端是不是退出了。
Q161. 期权有逐笔数据吗?
A161.  期权没有逐笔数据。
Q162. xtp有查询所有可交易股票的接口吗?
A162.  ///获取当前交易日可交易合约
///@return 查询是否成功,"0"表示查询成功,非"0"表示查询不成功
///@param exchange_id 交易所代码
virtual int QueryAllTickers(XTP_EXCHANGE_TYPE exchange_id) = 0.
Q163. 如果有一只股票已经订阅过了,还没有退订,然后在某个地方又发起了订阅请求,这样会有什么影响吗?
A163. 允许重复订阅,不影响。
Q164. 不同的进程中trader能收到其他进程的订单消息和成交回报,那么quote是否会收到其他进程的订阅和查询消息呢?
A164. 不会的,不同的进程quote消息互不影响,trader查询消息也互不影响。
Q165. OrderEvent和TradeEvent之间的时序是怎么样的?
A165.  基本上保证TradeEvent在OrderEvent的未成和结束状态之间;基本上不存在未成的订单响应在成交回报之后来,全成的订单消息肯定在成交回报后面到来。
Q166. 请问如何保留每天的交易数据?
A166.  请补充以下内容发送邮件到运维的邮箱 qiyz@zts.com.cn
设置内容:保留账户持仓
账号:
密码:
交易服务器IP:
交易服务器port:
Q167. 请问没有新股申购额度如何测试新股申购?
A167. 请补充以下内容发送邮件到运维的邮箱 qiyz@zts.com.cn
设置内容:增加新股申购额度
账号:
密码:
交易服务器IP:
交易服务器port:
Q168. 请问逐笔成交里有些撤单价格为0是什么意思?
A168.  因为报单时使用的是市价委托。
Q169. 为什么登录客户端时一直提示账户密码错误,检查了几遍还是提示错误?
A169.  请将账号和密码复制到word,然后将字体改为Tahoma或者verdana,检查一下是不是因为字形相近导致输入错误了。
Q170. The config.json file parse error 请问这是什么错误?
A170. 读取配置文件失败,请检查配置文件是否存在,一般应该和程序文件放在同一目录,如果文件没有问题请检查配置参数的语法是否正确。
Q171. 可以多账户登录吗?多账户时共用一个socket还是每个账户一个socket?
A171. api支持多个账户连接,多次调用login即可,一个账户一个socket连接,不会共享连接。
Q172.请问getApiLastError 这个函数是线程安全的吗?
A172. 这个函数不是线程安全的。 



  • No labels