02.证券柜台API使用手册
简介
API简介
XeleSecuritiesTraderAPI用于与Xele-Trade-Securities进行通信。通过API,投资者可以向上海交易所(SSE)、深圳交易所(SZSE)发送交易指令,获得相应的回复和交易状态回报。
该文档是极速交易系统Xele-Trade-Securities的投资者使用手册,它提供API功能及其使用说明。展示投资者开发客户端程序(Client Program)的通用步骤。本说明书适用于极速交易系统的交易API。
Xele-Trade-Securities简介
Xele-Trade-Securities是业内领先的基于FPGA、亚微秒级极速交易系统,独创完整流程的FPGA数据传输系统,拥有纳秒级响应速度,提供快速准确的资讯通道。是为证券、期货高端人士及机构、基金类专业投资机构及产业巨头量身打造的高性能交易系统。
Xele-Monitor-Securities是Xele-Trade-Securities的图形可视化交互客户端。
XeleSecuritiesTraderAPI是一个基于 C++的类库,通过使用和扩展类库提供的接口来实现全部的交易功能。
XeleSecuritiesTraderAPI支持平台:Linux。
发布给用户的档案包以XeleSecuritiesTraderAPI-版本号.tgz命名,包含的文件如下:
| 文件夹 | 文件名 | 说明 |
|---|---|---|
| include/ | XeleSecuritiesTraderApi.h | 交易员API接口头文件, 定义了目前支持的接口 |
| include/ | XeleSecuritiesUserApiStruct.h | 定义了函数接口的参数结构体, 即域类型 |
| include/ | XeleSecuritiesUserApiData.h | 定义了域中的字段的类型 |
| lib/ | libXeleSecuritiesAPI.so | API动态库 |
| api_client/api_txt_config/* | *.txt | api客户端接口参数配置文件 |
| api_client/config/ | api_config.txt | api客户端配置文件 |
| api_client/bin/ | api_client | api客户端程序 |
| config | api_config.txt | api运行需要的配置文件 |
| Debug/lib | libXeleSecuritiesAPI_debug.so | Debug版本Api动态库 |
| docs | Xele-Trade-Securities-交易员API接口手册.pdf | API的说明文件 |
| 顶层目录 | changelog | API版本升级信息说明 |
修改历史
| 日期 | API版本 | 柜台版本 | 版本修订 |
|---|---|---|---|
| 10/8/2026 | 3.2 | 3.2 | 提供ETF做市API初始版本 |
接口命名及通知响应
接口说明
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 | |
艾科朗克柜台系统相关接口请求以reqXXX,响应以onRspXXX来命名。该模式调用API的reqXXX来发起标识为nRequestID的请求,在onRspXXX中处理相应的nRequestID的请求。
请求接口参数说明
接口名称:reqXXX
-
inputField:请求的参数结构体指针
-
nRequestID:由用户管理的请求标识, 与响应关联
响应接口参数说明
接口名称:onRspXXX
-
pRspField: 响应报文的参数结构体指针
-
pRspInfo:RspInfo表示结果域,含有ErrorID和ErrorMsg表达该次请求的状态
-
nRequestID:响应请求的ID,标记请求报文和响应报文之间的对应关系
-
bIsLast:该次请求ID是否响应完毕,即一次回应报文中,该响应回调函数可能会被多次调用,标识最后一次调用(bIsLast为TRUE标识是最后一次调用,为FALSE标识不是最后一次调用)
通知响应
| C++ | |
|---|---|
1 2 3 | |
通知响应以onRtnXXX, onErrRtnXXX来命名。下面介绍这两种通知响应。
标准通知响应
接口名称:onRtnXXX
-
pInputField:相应的通知回调数据域指针
-
nRequestID:标记请求报文和响应报文之间的对应关系
-
bIsLast:该次请求ID是否响应完毕,即一次回应报文中,该响应回调函数可能会被多次调用,标识最后一次调用(bIsLast为TRUE标识是最后一次调用,为FALSE标识不是最后一次调用)
错误通知响应
接口名称:onErrRtnXXX
-
pInputField:相应的通知回调数据域指针
-
pRspInfo:错误类型和错误信息
-
nRequestID:标记请求报文和响应报文之间的对应关系
-
bIsLast:该次请求ID是否响应完毕,即一次回应报文中,该响应回调函数可能会被多次调用,标识最后一次调用(bIsLast为TRUE标识是最后一次调用,为FALSE标识不是最后一次调用)
API运行模式
初始化连接阶段
客户端程序和柜台交易系统的交互过程分为2个阶段:
-
初始化连接阶段
-
功能调用阶段
初始化阶段
在初始化阶段,Xele-Trade-Securities交易系统的程序必须完成如下步骤:
-
CreateTraderApi(): 获取可用的API对象指针
-
RegisterSpi(): 注册用户继承自XeleSecuritiesTraderSpi的自有子类对象的地址
注意事项:
XeleSecuritiesTraderApi提供的部分接口可以在配置参数的控制下实现线程安全,但前提是损耗一定的性能。具体支持线程安全的接口参考Api头文件注释。
初始化示例代码如下(详见示例代码“main.cpp”):
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
功能调用
在功能调用阶段,客户端程序可以任意调用登录、查询、交易接口中的请求方法,如reqLogin、 reqInsertOrder等,同时提供回调函数以响应回报信息。
注意事项:
API 请求的返回值参数RspInfo,ErrorID为0表示正确,其他表示错误,详细错误编码请查看附录A错误代码表
API 配置文件
提示:
配置文件中必需变更项为ManagerURL和QueryURL。ManagerURL和QueryURL最少需要填写一个,填写ManagerURL字段表示通过manager模块连接柜台系统,只填写QueryURL字段表示直连柜台系统。其余字段为非必需变更项,需要根据券商特殊要求及个人功能需求变更配置。在使用新版本api时若不想替换新配置文件,需要满足使用版本在3.2.518(包括)之后。另外,若需要替换新配置文件,则只需将老配置文件中对应参数值重新配置到新配置文件中对应参数即可,其他新增参数按需配置,若保持默认值不变,则等价于使用老配置文件。
API 连接方式
通过Manager(管理中心)连接柜台(可获得管理中心和柜台的操作权限)
可以通过配置api_config.txt文件,配置Manager的地址(URL配置项)及其他相关配置。详见下文
API的配置文件
目前API的api_config.txt配置文件包含三部分:
-
网络配置
-
Api参数配置
-
登录配置
网络配置
图 API文件网络配置
- 3.0艾科管理中心地址
3.0艾科管理中心地址,使用统一的格式tcp://地址:端口号
示例1:tcp://192.168.4.216:50002;tcp://192.168.4.216:50003;tcp://192.168.4.216:50004
示例2:tcp://192.168.4.216:50002
Api用来连接管理中心的参数,可以配置多个manager参数,使用;来分隔
比如以50002或者62000这两个端口号结尾,表示该地址是合法的艾科管理中心连接地址
参考配置:
ManagerURL=tcp://192.168.2.37:50003
- 艾科查询链路连接地址
# 艾科柜台查询链路连接地址,使用统一的格式tcp://地址:端口号
# 此参数为空,使用管理中心默认分配的地址,此参数为合法地址时,使用配置的值。地址、端口映射同理。配置格式如下示例:
# 示例1:tcp://192.168.4.67:30000
# 示例2:tcp://192.168.4.67:30000;tcp://192.168.4.68:30000
# 支持配置主备柜台地址,使用;来分隔,当主柜台连接失败会轮询连接备柜台
# Api自动重连也会轮询连接主备柜台
# 当同时配置了ManagerURL和QueryURL的情况下,Api连接manager成功之后会以配置项为准来连接柜台查询链路
# 在连接QFII柜台时,只需要配置该Url,ManagerURL和TradeURL配置为空即可
# 当同时配置了ManagerURL和QueryURL的情况下,Api连接manager成功之后会以配置项为准来连接柜台查询链路
参考配置:
QueryURL=
- 艾科报单链路连接地址
艾科报单链路连接地址,使用统一的格式tcp://地址:端口号
此参数只有发生了端口映射的情况下才需要配置,其他为空。配置格式如下示例,
示例:tcp://10.128.123.209:30005
场景:例如原报单链路连接地址为tcp://10.128.123.209:30005,由于组网限制,需要将该地址映射为tcp://192.168.0.100:33333
此时,将TradeURL参数改为:TradeURL=tcp://192.168.0.100:33333;如果没有此种情况只需要如下不填即可。
参考配置:
TradeURL=
在网络配置中,ManagerURL和QueryURL要求必须配置其中的一个,当满足了以上要求后,剩下的配置项,如果配置即使用配置值,如果不配置就使用Api查询的默认值。显示配置是为了满足Api在外网模式下使用场景,详见配置文件对应字段说明。
Api参数配置

- 当前API支持柜台版本
当前Api支持柜台版本,默认支持一代柜台(2.5及以下版本),后续根据版本部署情况修改默认支持版本,当DependentCounterVersion=1时支持一代柜台(2.5及以下版本)
当需要修改Api支持版本时,请确认当前艾科柜台版本
随意修改版本,或者格式异常时,可能会导致无法连接至艾科柜台或无法向艾科柜台报单
当柜台升级到二代柜台(3.0及以上版本)后,此参数需要修改为2(DependentCounterVersion=2)
参考配置:
DependentCounterVersion=2


- 心跳配置
Api与艾科柜台心跳间隔,此参数无特殊需求,不要进行修改
示例:=6表示Api与柜台间每6s进行一次心跳交互
默认配置(无特殊情况,无需修改)
HeartBeatInterval=6
- 心跳超时判定次数
Api与艾科柜台心跳超时判定次数,此参数无特殊需求,不要进行修改
示例:=3表示Api与柜台间超过三次心跳未收到(Api超过3次未收到柜台心跳,或者柜台超过三次未收到Api心跳),就判定TCP断链,需要重新登录来获取权限
默认配置:(无特殊情况,无需修改)
HeartBeatTimeOutCnt=3
心跳机制说明,详见心跳机制
- 是否启用密文传输
第一个1表示管理链路以密文传输,第二个1表示查询链路和交易链路以密文传输,为0时均表示明文传输。
IsMsgEncrypt=1,1
注意事项:
- 使用之前,请与券商确认柜台版本是否支持密文传输;如果不支持密文传输,则务必关闭此选项;
- 如果客户端启用密文传输,且柜台版本不支持;那么,客户端将会无法收到正确的应答消息,等待超时后,断开连接;
默认以明文传输。
- Api报单链路warm开关
Api报单链路warm开关,默认打开,关闭此参数时,冷态报单时延可能会产生抖动
此参数在sfc网卡上使用会减轻链路数据处理压力,在其他网卡上使用时,会增加网卡数据处理压力,建议使用sfc网卡
示例 :=1表示默认打开,=0表示关闭
OrderWarm=1
- Api报单线程绑定核心
Api报单回报线程绑定核心,在配置此参数前,需要先进行隔核操作
示例:
=-1,-1表示不进行绑核操作
=8,9表示Api报单发送线程绑定在cpu核心8上,报单回报线程绑定在cpu核心9上
默认配置:(默认不绑核)
CpuCore=-1,-1
- Api登录软件节点后是否接收其他节点的回报信息
Api登录软件节点后是否接收其他节点的回报信息,默认不接收
此参数对登录硬件节点的Api不生效
示例:
=0表示默认关闭,=1表示打开
SoftRspRcv=0
- Api登录硬件节点后是否接收其他节点的回报信息
此参数对登录软件节点的Api不生效
示例:
=0表示关闭,=1表示打开, 默认打开
仅部分券商支持配置为不抄送
FpgaRspRcv=1
- Api回报接收socket是否阻塞标记
=0表示非阻塞socket,该模式下,cpu占用率高,时延相对较低
=1表示阻塞socket,该模式下,cpu占用率低,时延相对较高
参考配置:
SocketBlockFlag=0
- Api是否只连接管理中心(目前不对用户开放)
=0表示否定
=1表示肯定
说明:正常情况下,此参数无需修改,若有特殊情况,需要只连接管理中心,则进行修改
默认配置:(无特殊情况,无需修改)
IsJustConnectManager=0
- 客户终端信息前缀
中信证券使用,填写一个字符串信息,用于标识并上报给集中交易
PcPrefix=
- 是否捕获异常
此处的异常是指程序中抛出的信号,Api中捕获SIGSEGV和SIGABRT两个信号,当关闭时,Api不处理任何信号。
=0表示不捕获异常
=1表示捕获异常
默认配置1:表示Api内部捕获异常。
参考配置:
CaptureSignal=1
- 是否支持线程安全
=0表示非线程安全
=1表示线程安全
多线程使用同一个api实例且用户未对实例加锁时需开启,api内部保证功能接口的正常使用,部分系统接口不提供线程安全。
线程安全只能保证同一个api对象在多线程调用功能接口时不会出现线程冲突,部分系统接口在调用时无法保证安全性。
具体接口见头文件注释。
默认配置0:表示不支持线程安全。
参考配置:
ThreadSafe=0

- Api运行模式
=0表示普通模式,在该模式下,在该模式下,api内存的消耗会有明显降低,同时报单的速率会受到影响
=1表示高性能模式,在该模式下,api会占用较多内存,同时报单的速率会有提升
默认Api运行在高性能模式下,如果没有特殊需求,不需要进行修改
修改了此参数后,需要重启Api
默认配置:(无特殊情况,无需修改)
如果RecvSendDetach=1,则该参数不生效。
ApiMode=1
- 详细日志打印
是否详细打印Api日志(详细日志包括请求的输入值、响应接口的输出值以及必要的Api日志,非详细的日志只有必要的Api日志),其中必要的Api日志不会影响Api性能
=0表示非详细打印
=1表示详细打印
此参数默认关闭
注意:详细的Api日志会影响Api性能,建议在调试或者定位时打开此参数
SuperLog=0
默认配置:(无特殊情况,无需修改)
SuperLog=0
- 是否使用rtnTrade报文构造rtnOrder报文
该参数开启时,首先要保证柜台系统参数表第一百零四个参数处于关闭状态,这时柜台不会在回rtnTrade报文时先推送rtnOrder报文,Api端在收到rtnTrade报文时会在Api端构造rtnOrder报文进行推送
=0表示关闭
=1表示开启
此参数默认关闭
注意:当开启该参数时,会对Api的性能产生影响;开启参数时如果柜台的参数没有关闭,会导致Api端收到两条同样的rtnOrder报文,可能会对客户程序产生影响
默认配置:(无特殊情况,无需修改)
CreateRtnOrderByRtnTrade=0
- Api收发线程是否分开
参数开启时,api的收发线程分离,用户调用报撤单接口所发送的消息会直接通过网卡发往柜台
在参数开启时,将调用reqInsertOrder、reqCancelOrder接口的线程绑核,另外使CpuCore参数的第二个变量将回报线程绑核,这样能设置api运行在高性能模式下
参数开启时,OrderWarm、ApiMode以及CpuCore的第一个参数无效
此参数重启生效
示例:
=0表示关闭,=1表示开启;默认关闭
默认配置:(无特殊情况,无需修改)
RecvSendDetach=1
- 使用TcpDirect加速

若不配置或环境异常采用原生socket通讯
RecvSendDetach配置为1时,此参数不生效
使用前请与艾科确认TcpDirect版本
默认配置为空,如需使用TcpDirect技术加速,可配置交易链路的sfc网卡名称
SolarfareTradeEthName=
- 艾科UDP报单链路连接地址
艾科UDP报单地址,使用统一的格式udp://地址:端口号
若此参数为空,则使用柜台查询链路登录返回的地址,若此参数为合法地址时,则使用配置的值。地址、端口映射同理。配置格式如下示例:
示例:udp://10.128.123.209:30005
场景:例如原报单链路连接地址为udp://10.128.123.209:30005,由于组网限制,需要将该地址映射为udp://192.168.0.100:33333。此时,将UdpTradeURL参数改为:UdpTradeURL=udp://192.168.0.100:33333;如果没有此种情况只需要如下不填即可。
场景:例如从管理中心查询到的地址为udp://192.168.4.67:29999,现需要修改默认地址。此时,将UdpTradeURL参数改为:UdpTradeURL=udp://192.168.4.216:29999,如果没有这种需求,不填即可。
UdpTradeURL=
一般情况下,可以不用显式设置该配置选项。如果TradeProtocol不等于2,则该选项不生效。
- 交易使用的协议类型
启用UDP交易之后,还需要根据当前柜台版本是否支持UDP交易,来决定是否启用UDP交易方式。
TradeProtocol=
配置参数取值范围:1-表示启用TCP交易,2-表示启用UDP交易;默认值为 1。
- 是否启用EFVI方式进行UDP交易
该选项依赖于TradeProtocol选项,只有启用了UDP交易之后(TradeProtocol=2),该选项的值才生效,否则不生效(默认不启用)。
若启用EFVI方式进行报单,还需要配置SolarfareTradeEthName参数,指定报单的网卡。
EnableUdpEfviTrade=
配置参数取值范围:1-表示启用EFVI方式的UDP交易,0-表示不启用EFVI方式的UDP交易;默认值为 0。
- 是否建立交易链路
该选项用来控制是否建立交易链路。如果不建立交易链路,无论是TCP方式还是UDP方式,都不会分配对应的资源,也无法通过交易接口,发送报撤单。
EstablishTradeLink=
配置参数取值范围:1-表示建立交易链路,0-表示不建立交易链路;默认值为 1。
不建立交易链路时的注意事项: 1)如果不建立交易链路,用户需要自己负责交易链路的建立操作,建立交易链路成功后,按约定发送心跳。 2)如果不建立交易链路,用户成功建立交易链路后,若发生断链;此时,柜台不再允许二次建立交易链路。 需要调用reqLogout()接口退出后,重新调用reqLogin()接口,才允许建立交易链路; 3)如果不建立交易链路,且使用FPGA通道交易(SubClientIndex=0) 用户成功建立交易链路后,需要调用reqInitTrader()接口初始化交易链路; 4)如果不建立交易链路,且使用软通道交易(SubClientIndex!=0) 用户成功建立交易链路后,需要自己构造InitTrader请求消息,初始化交易链路,否则不允许通过软通道进行交易;
- TCP链路首次建链超时时间
TCP链路首次建链超时时间,单位秒,范围[1,10]。默认为5秒;建议使用默认值。
TcpConnectTimeout=5
- TCP链路断链重连超时时间
TCP链路异常断链后重连超时时间,单位秒,范围[1,10]。默认为3秒;建议使用默认值。
TcpReconnectTimeout=3
登录配置


- 交易终端软件名称及版本
参考配置:(默认为空,由交易客户填写)
AppID=
- 流水重构标志(详见流水重构(期权独有))
流水重构标志,期权使用,上交和深交柜台不使用该字段,无需做修改
=0表示不进行流水重构
=1表示只进行资金流水重构;
=2表示只进行报文流水重构;
=3表示资金和报文流水重构;
参考配置:
FlowRebuildFlag=0
- 委托方式校验字段(具体取值,请咨询券商)
当有报单委托方式校验需求时填写,没有时无需修改
参考配置:
OperWay=1
- 正式站点前缀字段(具体取值,请咨询中信证券)
没有前缀或者非中信券商,可以配置为空或者没有这个配置项,中信证券需要填站点前缀
参考配置:
PcPrefix=ZX_FPGA
- 机构编码(具体取值,看上场数据)
没有前缀或者非国泰君安,可以配置为空,国泰君安需要配置正确的营业部代码否则会登录失败
参考配置:
BusinessCode=12345
- API自动重连标志
API异常断连后自动重连功能
=0表示api异常断连后不自动重连
=1表示api异常断连后自动重连
参考配置:
AutoReLogin=0
- API自动重连打开后是否返回相关回调开关
自动重连后是否触发相关回调函数,配置自动重连后此参数生效
=0 不返回, =1 返回, 默认为0
参考配置:
AutoReLoginRspSwitch=0
- API第一次连接manager失败可以一直循环登录manager
第一次登录manager如果连接失败是否需要一直重复连接manager
=0 不会一直连接manager,连接主备manager3秒之后结束
=1 会一直循环的连接主备manager,直到手动结束进程
默认为0s
参考配置:
LoopRepeatConnect=0
- 是否打开加密登录
api登录manger和柜台的时候是否发送的账户和密码是密文
示例:
=0表示关闭,=1表示开启;默认关闭
仅部分券商支持,使用前请确认
openEncryption=0
- 公网信息
使用;号进行分割
目前支持配置公网IP为IIP,和端口号为IPORT
例如SuperviseExtraInfo=IIP=127.0.0.1;IPORT=50318
仅部分券商支持,使用前请确认
SuperviseExtraInfo=
- 版本校验
版本校验, XeleSecuritiesTraderApi.h头文件位置
校验当前.so内的版本是否和头文件中的版本号匹配
填写值了会去获取指定目录下的相关文件,为空不校验
填写绝对路径, 默认值为空
例如 ApiIncludePath=/home/xele/api/
ApiIncludePath=
- 完整监管信息
此字段填写后,PcPrefix, APPID, SuperviseExtraInfo配置项均不生效
客户登录时填写的完整监管信息,此信息不做校验,直接透传至柜台落库
最大支持到384字节,不支持中文格式字符,默认为空
柜台默认支持长度255,若超过则需要跟券商确认柜台是否支持仅部分券商支持,使用前请确认
仅部分券商支持,使用前请确认
AllSuperviseInfo=
TraderAPI用户操作流程
API连接方式
目前证券API通过Manager连接柜台,需通过api_config.txt配置文件进行配置(配置详见:API 配置文件)。

图 API连接方式
API通过管理中心连接到柜台(目前上交、深交股票支持该方式;上交期权暂不支持)
API登录到Manager(管理中心),根据响应信息找到对应柜台地址,API根据柜台地址连接Xele-Trade柜台,API与柜台连接成功后,可实现Xele-Trade柜台报撤单、查询以及管理中心资金调拨、沪深柜台资金查询功能。
【注意】
- 该连接方式,用户只需一次登录Manager管理中心,即可完成Manager系统和柜台系统的登录。
- 该连接方式,是通过API连接柜台进行报撤单操作,报撤单操作不经过Manager管理中心。
- Xele-Trade-Securities柜台可以最多支持32个API连接,Manager支持8*32个API连接
软件报单通道和硬件报单通道

目前柜台3.2版本支持软件报单和硬件报单。
柜台支持多点登录,API报单一共有7个(0-6)节点。交易客户可以选择0-6中任意一个节点登录。
0节点走硬件通道,1-6节点走软件通道,7节点是web撤单专用
硬件通道就是直连fpga,软件通道就是fpga之前加个软件模块。
登录柜台initrade如果返回交易端口为30010 通常连接的是软件通道
软件通道的延时比较大,而且不支持大并发报单,建议报单控制在1s 50单以内
如果客户想要多个硬件通道报单,可以向券商申请,比如把1节点也改为硬件通道,这样用户可以使用0和1节点两个通道极速报单
【tips】
用户使用softOrder 报单,只能用来应急,不能用来并发,不能高频
登录
登录流程
登录柜台的方式:通过Manager管理中心登录柜台 。
- 证券:通过Manager管理中心登录柜台(上交股票、深交股票)

图 证券登录流程图
如上图所示:
通过API的api_config.txt配置文件,可设置通过Manager(管理中心)登录到柜台,API会收到onRspLoginManager的Manager登录应答,该应答包含柜台的URL地址信息,根据该URL地址,连接到对应的Xele-Trade-Securities柜台。
Manager登录后,登录柜台需要先连柜台的查询数据中心(SOFT),再连接柜台的交易数据中心(FPGA)。
a) 登录柜台查询数据中心(SOFT)成功后,API会收到onRspLogin的柜台登录应答
b) 连接柜台交易数据中心(FPGA)成功后,API会收到onRspInitTrader的添加交易链路应答
【注意】
目前上交股票、深交股票支持通过Manager(管理中心)连接到柜台的方式。
通过先登录Manager后登录Xele-Trade-Securities柜台,正常成功登录情况下API会收到三个回报:onRspLoginManager、onRspLogin、onRspInitTrader
登录时序图
通过管理中心连接到柜台(上交股票、深交股票)

图 通过Manager登录柜台时序图
- API登录Manager需要先建立TCP连接
- API发起登录请求
- 登录请求后Manager会有响应信息,该响应包含柜台的地址,收到该响应后,则拥有管理中心的操作权限
- API根据上一步骤拿到的柜台地址,与柜台建立TCP连接
- API查询连接请求
- API查询连接响应,收到该响应后可以进行相关查询操作
- 交易连接
柜台SOFT、FPGA说明
Xele-Trade-Securities交易系统包括查询数据中心(SOFT)和交易数据中心(FPGA)。
查询数据中心(SOFT):主要是提供相关报单、合约、资金等查询功能,使用的是TCP数据链路;该部分功能用户需要使用XeleSecuritiesTraderAPI来实现。
交易数据中心(FPGA):主要是处理报、撤单以及接收相关回报等操作。
【注意】对于Xele-Trade-Securities交易系统来讲,用户需要分别先登录查询数据中心,然后登录交易数据中心,只有两个中心都登录成功后,才可以进行报撤单以及接收回报等操作。
多点登录
Xele-Trade-Securities上交股票、深交股票、上交期权系统支持每个用户多点登录,默认0-6节点登录,同一个用户不同节点每次创建1个API实例,初始化完成后即可以进行一次登录。多点登录有以下特点:
- 每次需要登录成功后,才可以进行报撤单以及查询操作;
- 查询数据流的下行报文只发送给发起请求的用户连接;
- 交易数据流的下行报文是发送给该用户的所有连接;
- 查询数据流或者交易数据流下行如果断开,API均会自动重连;
用户登录代码示例(详见示例代码:“demo_main.cpp”)
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | |
查询
客户端可以根据查询内容的不同调用对应的reqQryXXX查询接口,对应的onRspQryXXX响应接口会发送相关响应信息。
【注意】
如果某个查询操作有多个响应信息,则柜台系统会向客户端发送多个对应的响应报文,客户可以根据响应中bIsLast字段是否为true来判断是否为最后一个响应报文;
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
报单

特别注意:
场景四中,订单部分成交或订单全部成交时,先返回的onRtnOrder由系统参数SECURITY_PARAM_IS_RSP_RTNORDER_BY_RTNTRADE控制,若配置为0,则不发送;若配置为1,则发送。若无此参数则不发送。
如上图所示,报单的流程主要有上述三种场景
-
报单的报文说明:
- 不管哪种场景,柜台系统都会发送报单响应onRspInsertOrder报文,当未通过柜台系统风控检查时,会有错误id;
- 当报单未通过交易所前置风控或者交易所风控时,柜台系统会发送错误回报onErrRtnInsertOrder报文;
- 当报单成功进入交易所后,报单发生的任何状态变化,柜台系统都会发送报单回报onRtnOrder报文;
- 当报单成功进入交易所后,报单发生的任何成交,柜台系统都会发送成交回报onRtnTrade报文;
-
报单单号管理:
报单时需要维护的单号字段有UserLocalID和OrderSysID。
-
【报单请求】reqInsertOrder接口参数的结构体字段中:
UserLocalID是用户自己管理的报单编号,当该字段是单调递增时,也可以进行撤单,具体可以咨询券商,进行配置;
-
【报单响应】onRspInsertOrder接口参数的结构体字段中:
UserLocalID是柜台系统返回给用户自己管理的报单编号;
OrderSysID是柜台系统生成的系统报单编号,该编号也是用户进行撤单的依据之一;
-
【报单回报】onRtnOrder接口参数的结构体字段中:
OrderSysID是柜台系统生成的报单编号;
OrderExchangeID 是交易所生成的报单编号;
-
【成交回报】onRtnTrade接口参数的结构体字段中:
OrderSysID是柜台系统生成的报单编号;
OrderExchangeID是交易所生成的报单编号;
ExecID是交易所生成的成交编号;
举例说明:
报单请求:用户在调用reqInsertOrder中,填写了自己的报单编号UserLocalID=0001;
报单响应:在onRspInsertOrder中返回用户自己的报单编号UserLocalID=0001,并且还返回值柜台生成的系统报单编号OrderSysID=000009,如果用户进行撤单操作,OrderSysID在任何情况下都可以进行撤单,但使用UserLocalID字段撤单时(参考下方撤单描述),需要券商在柜台端进行配置,具体咨询券商。
报单示例代码(详见示例代码“demo_main.cpp”)
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | |
撤单

如上图所示,撤单的流程主要有上述三种场景。
-
撤单的报文说明:
- 不管哪种场景,柜台系统都会发送撤单响应onRspCancelOrder报文, 当未通过柜台系统风控检查时,会有错误id;
- 当撤单未通过交易所前置风控或者交易所风控时,柜台系统会发送错误回报onErrRtnCancelOrder报文;
- 当撤单成功进入交易所后,撤单发生的任何状态变化,柜台系统会发送撤单回报onRtnOrder报文;
-
撤单的单号管理:
撤单时需要维护的单号字段有UserLocalID、OrigSysID、OrderSysID(该三个字段为主动撤单编号)。
OrigUserLocalID、OrigOrderSysID、OrigStrOrderSysID(该三个字段为被撤单的编号,柜台2.5及以上版本才使用)
-
【撤单请求】reqCancelOrder接口参数的结构体字段中:
UserLocalID是用户自己管理的撤单编号
OrigSysID柜台系统中待撤单编号(对应onRspInsertOrder中的OrderSysID);
OrigUserLocalID表示待撤单的用户本地编号。当服务端校验报单的UserLocalID单调递增时,支持FPGA通道通过OrigUserLocalID撤单,不支持软件通道使用OrigUserLocalID撤单。
-
【撤单响应】onRspCancelOrder接口参数的结构体字段中:
UserLocalID是柜台系统返回给用户自己管理的撤单编号
OrigSysID是柜台系统中待撤单编号(对应onRspInsertOrder中的OrderSysID);
OrigUserLocalID是用户维护的待撤单编号(对应onRspInsertOrder中的UserLocalID);
OrderSysID是柜台系统生成的本次撤单的系统编号
-
【撤单回报】
onRtnOrder:接口参数的结构体字段中
OrderSysID:被撤单的OrderSysID编号
OrderExchangeID :交易所生成的撤单编号;
举例说明:
-
方式一:
报单请求:用户在调用reqInsertOrder中,填写了自己的报单编号UserLocalID=0001;
报单响应:在onRspInsertOrder中会返回用户自己的报单编号UserLocalID=0001,并且还返回柜台生成的系统报单编号OrderSysID=000009;
撤单请求:调用reqCancelOrder中,填写了自己管理的撤单编号UserLocalID=0003,以及撤单的系统编号OrderSysID= 000009;
撤单响应:在onRspCancelOrder中,返回了用户自己管理的撤单编号UserLocalID=0003;
柜台系统生成的撤单系统编号OrderSysID=0004;对应的待撤报单编号OrigSysID=000009;
-
方式二:(需要柜台系统开启校验UserLocalID字段递增)
报单请求:用户调用reqInsertOrder中,填写了自己的报单编号UserLocalID=0001;
报单响应:在onRspInsertOrder中会返回用户自己的报单编号UserLocalID=0001,并且还返回柜台生成的系统报单编号OrderSysID=000009;
撤单请求:调用reqCancelOrder中,填写了自己管理的撤单编号UserLocalID=0003,以及撤单的用户本地编号OrigUserLocalID=0001,并且OrigOrderSysID=0000;(此时表示使用用户本地报单编号进行撤单);
撤单响应:在onRspCancelOrder中,返回了用户自己管理的撤单编号UserLocalID=0003;柜台系统生成的撤单系统编号OrderSysID=0004;对应待撤报单编号OrigSysID=000009,OrigUserLocalID=0001;
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | |
TradeAPI开发示例
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | |
柜台系统其他重要说明
心跳机制
Xele-Trade-Securities交易系统与API以周期时间向对方发送心跳报文来维持连接,互相不需要回复心跳应答报文。
- API心跳周期时间:
配置API的api_config.txt配置文件中的HeartBeatInterval项进行配置。
根据配置的时间内进行一次心跳交互.
- 心跳超时次数:
配置API的api_config.txt配置文件中的HeartBeatTimeOutCnt项进行配置。API超过配置的次数内未收到柜台心跳,则判定TCP断链,需要重新登录来获取权限。
- 断链:
当API收到onFrontQueryDisconnected报文时,则代表断链,则需要重新获取权限
【注意】该心跳不需要用户进行维护
CoreDump
在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。当用户使用ulimit -c 查看配置,也可以用ulimit -c N(N为表示core文件大小数字,单位100K)来进行配置,当N不为0时,开启生成core文件机制。若用户N设置超过8G时,文件大小会被api限制为8G,当N为0时,不会成core文件。
在api中注册了SIGNAL处理函数,捕捉并且处理SIGSEGV、SIGABRT、SIGPIPE信号,其中SIGSEGV、SIGABRT信号处理时,会生成coredump文件,用来输出backtrace信息,SIGPIPE信号则会被忽略。
系统支持巨页分配
为了降低Api时延抖动,在Api运行的操作系统中需要支持巨页分配。在不支持巨页分配的操作系统中,可能会影响到Api的时延数据,但是不会影响Api的正常运行与报单。下面提供在centos7.6版本下的巨页配置方式:
使用cat /etc/redhat-release确认操作系统版本,如下:

打开/etc/grub2.conf文件,如下:

在文件中找到相应位置,在其后添加如下字符串:
default_hugepagesz=1G hugepagesz=1G hugepages=20
其中:
hugepages :在内核中定义了开机启动时就分配的永久大页面的数量。默认为 0,即不分配。只有当系统有足够的连续可用页时,分配才会成功。
hugepagesz: 在内核中定义了开机启动时分配的大页面的大小。可选值为 2MB 和 1GB 。默认是 2MB 。
default_hugepagesz:在内核中定义了开机启动时分配的大页面的默认大小
具体分配大小以及数量需要根据操作系统内存具体情况进行调整,Api至少需要配置1G的可用巨页内存才能达到稳定时延的效果,配置完成如下:

重启操作系统即可生效。
Trader-API接口参考说明
API接口说明列表
证券(上交股票、深交股票)柜台使用的API接口类型为:系统相关、证券期权共用、证券相关
期权(上交期权、深交期权)柜台使用的API接口类型为:系统相关、证券期权共用、期权相关
| 接口类型 | 接口分类 | 说明 |
|---|---|---|
| 系统相关 | CXeleTraderApi:: createTraderApi | 创建API对象 |
| 系统相关 | CXeleTraderApi:: getVersion | 获取当前API的版本信息 |
| 系统相关 | CXeleTraderApi:: getErrMsg | 获取错误信息 |
| 系统相关 | CXeleTraderApi:: setApiLogPath | 设置API日志路径 |
| 系统相关 | CXeleTraderApi:: setApiSuperLog | 设置API是否开启详细日志功能 |
| 系统相关 | CXeleTraderApi:: join | 等待线程结束 |
| 系统相关 | CXeleTraderApi:: release | 销毁API对象 |
| 系统相关 | CXeleTraderApi:: checkPassword | 本地密码校验 |
| 系统相关 | CXeleTraderApi::registerSpi | 注册回调对象 |
| 系统相关 | CXeleTraderApi::commonFunc | 通用功能接口 |
| 系统相关 | CXeleTraderApi:: reqLogin | 登录请求 |
| 系统相关 | CXeleTraderApi::getTradeUrl | 获取交易链路URL |
| 系统相关 | CXeleTraderApi::reqInitTrader | 初始化报单链路 |
| 系统相关 | CXeleTraderApi:: reqLoginEx | 登录请求 |
| 系统相关 | CXeleTraderSpi:: onRspLogin | 艾科柜台登录响应 |
| 系统相关 | CXeleTraderSpi:: onRspLoginManager | 艾科柜台登录应答 |
| 系统相关 | CXeleTraderSpi:: onRspInitTrader | 添加交易链路应答 |
| 系统相关 | CXeleTraderApi:: reqLogout | 登出请求 |
| 系统相关 | CXeleTraderSpi:: onRspLogout | 登出响应 |
| 系统相关 | CXeleTraderSpi:: onRspLogoutManager | 艾科管理中心登出应答 |
| 系统相关 | CXeleTraderApi:: reqUpdatePwd | 密码更新请求 |
| 系统相关 | CXeleTraderSpi:: onRspUpdatePwd | 密码更新应答 |
| 系统相关 | CXeleTraderSpi:: onFrontQueryDisconnected | 断开查询连接链路 |
| 系统相关 | CXeleTraderSpi:: onFrontTradeDisconnected | 断开交易连接链路 |
| 系统相关 | CXeleTraderSpi::onApiMsg | api内部消息打印回调 |
| 系统相关 | CXeleTraderSpi::getErrMsgEx | 获取错误码对应的错误信息,支持中英文 |
| 证券、期权共用 | CXeleTraderApi:: reqInsertOrder | 报单请求 |
| 证券、期权共用 | CXeleTraderSpi:: onRspInsertOrder | 报单应答 |
| 证券、期权共用 | CXeleTraderSpi::onErrRtnInsertOrder | 报单错误回报 |
| 证券、期权共用 | CXeleTraderApi:: reqCancelOrder | 撤单请求 |
| 证券、期权共用 | CXeleTraderSpi:: onRspCancelOrder | 撤单应答 |
| 证券、期权共用 | CXeleTraderSpi::onErrRtnCancelOrder | 撤单错误回报 |
| 证券、期权共用 | CXeleTraderSpi::onRtnOrder | 报单回报 |
| 证券、期权共用 | CXeleTraderSpi::onRtnTrade | 成交回报 |
| 证券、期权共用 | CXeleTraderApi:: reqQryOrder | 报单查询请求 |
| 证券、期权共用 | CXeleTraderSpi:: onRspQryOrder | 报单查询应答 |
| 证券、期权共用 | CXeleTraderApi:: reqQryTrade | 成交查询请求 |
| 证券、期权共用 | CXeleTraderSpi:: onRspQryTrade | 成交查询应答 |
| 证券相关 | CxeleTraderApi:: reqInsertBatchOrder | 批量报单请求 |
| 证券相关 | CXeleTraderApi:: reqQryRate | 费率(印花税率、过户费率、佣金率、流量费)查询请求 |
| 证券相关 | CXeleTraderSpi:: onRspQryRate | 费率(印花税率、过户费率、佣金率、流量费)查询应答 |
| 证券相关 | CXeleTraderApi::reqQryCentralTradingFund | 集中交易柜台资金明细查询请求 |
| 证券相关 | CXeleTraderSpi::onRspQryCentralTradingFund | 集中交易资金查询响应 |
| 证券相关 | CXeleTraderApi:: reqInFund | 集中交易资金调入艾科柜台请求 |
| 证券相关 | CXeleTraderSpi:: onRspInFund | 集中交易资金调入艾科柜台应答 |
| 证券相关 | CXeleTraderApi:: reqOutFund | 艾科柜台资金调出集中交易请求 |
| 证券相关 | CXeleTraderSpi:: onRspOutFund | 艾科柜台资金调出集中交易应答 |
| 证券相关 | CXeleTraderApi:: reqQryInOutFundRecord | 集中交易资金调拨艾科柜台明细查询请求 |
| 证券相关 | CXeleTraderSpi:: onRspQryInOutFundRecord | 集中交易资金调拨艾科柜台明细查应答 |
| 证券相关 | CXeleTraderApi:: reqBTFundTransfer | 跨柜台资金调拨请求 |
| 证券相关 | CXeleTraderSpi:: onRspBTFundTransfer | 跨柜台资金调拨应答 |
| 证券相关 | CXeleTraderSpi:: onRtnBTFundTransfer | 跨柜台资金调拨结果返回 |
| 证券相关 | CXeleTraderApi::reqQryBTCapTransferRecord | 跨柜台资金调拨记录查询请求 |
| 证券相关 | CXeleTraderSpi::onRspBTCapTransferRecord | 跨柜台资金调拨记录查询应答 |
| 证券相关 | CXeleTraderApi::reqQryBtFund | 沪深柜台资金查询请求 |
| 证券相关 | CXeleTraderSpi::onRspQryBtFund | 沪深柜台资金查询应答 |
| 证券相关 | CXeleTraderApi::reqQryFund | 证券资金查询请求 |
| 证券相关 | CXeleTraderSpi::onRspQryFund | 证券资金查询应答 |
| 证券相关 | CXeleTraderApi::reqQryPosition | 证券持仓查询请求 |
| 证券相关 | CXeleTraderSpi::onRspQryPosition | 证券持仓查询应答 |
| 证券相关 | CXeleTraderApi::reqQrySecurities | 证券信息查询请求 |
| 证券相关 | CXeleTraderSpi::onRspQrySecurities | 证券信息查询应答 |
| 证券相关 | CXeleTraderApi::reqQryRightsAndInterests | 权益查询-新股额度查询 |
| 证券相关 | CXeleTraderSpi::onRspQryRightsAndInterests | 权益查询-新股额度回报 |
| 证券相关 | CXeleTraderApi::reqQryInvestorInfo | 股东账号信息查询请求 |
| 证券相关 | CXeleTraderSpi:: onRspQryInvestorInfo | 股东账户信息查询应答 |
| 期权相关 | CXeleTraderApi::reqInsertCombOrder | 期权组合报单请求 |
| 期权相关 | CXeleTraderSpi::onRspInsertCombOrder | 期权组合报单应答 |
| 期权相关 | CXeleTraderSpi::onErrRtnInsertCombOrder | 期权组合报单错误响应 |
| 期权相关 | CXeleTraderSpi::onRtnCombOrder | 期权组合报单回报 |
| 期权相关 | CXeleTraderSpi::onRtnCombTrade | 期权组合成交回报 |
| 期权相关 | CXeleTraderApi::reqInsertExercise | 期权单腿行权报单请求 |
| 期权相关 | CXeleTraderSpi::onRspInsertExercise | 单腿行权报单应答 |
| 期权相关 | CXeleTraderSpi::onErrRtnInsertExercise | 单腿行权错误回报 |
| 期权相关 | CXeleTraderApi::reqCancelExercise | 期权单腿行权报单请求 |
| 期权相关 | CXeleTraderSpi::onRspCancelExercise | 单腿行权撤单应答 |
| 期权相关 | CXeleTraderSpi::onErrRtnCancelExercise | 单腿行权撤单错误回报 |
| 期权相关 | CXeleTraderSpi::onRtnExerciseOrder | 单腿行权报单回报 |
| 期权相关 | CXeleTraderApi::reqInsertExerciseComb | 组合行权报单请求 |
| 期权相关 | CXeleTraderSpi::onRspInsertExerciseComb | 组合行权报单应答 |
| 期权相关 | CXeleTraderSpi:: onErrRtnInsertExerciseComb | 组合行权错误回报 |
| 期权相关 | CXeleTraderApi::reqCancelExerciseComb | 组合行权撤单请求 |
| 期权相关 | CXeleTraderSpi::onRspCancelExerciseComb | 组合行权撤单应答 |
| 期权相关 | CXeleTraderSpi:: onErrRtnCancelExerciseComb | 组合行权撤单错误回报 |
| 期权相关 | CXeleTraderSpi::onRtnExerciseCombOrder | 组合行权报单回报 |
| 期权相关 | CXeleTraderApi::reqQryOptionPosition | 期权持仓查询请求 |
| 期权相关 | CXeleTraderSpi::onRspQryOptionPosition | 期权持仓查询应答 |
| 期权相关 | CXeleTraderApi::reqQryOptionFund | 期权资金查询请求 |
| 期权相关 | CXeleTraderSpi::onRspQryOptionFund | 期权资金查询应答 |
| 期权相关 | CXeleTraderApi::reqQryOptionSecurities | 期权合约查询请求 |
| 期权相关 | CXeleTraderSpi::onRspQryOptionSecurities | 期权合约查询应答 |
| 期权相关 | CXeleTraderApi::reqQryOptionRate | 期权佣金费率、保证金率查询请求 |
| 期权相关 | CXeleTraderSpi:: onRspQryOptionRate | 期权佣金费率、保证金率查询应答 |
| 期权相关 | CXeleTraderApi::reqQryOptionCombPosition | 期权组合持仓查询请求 |
| 期权相关 | CXeleTraderSpi:: onRspQryOptionCombPosition | 期权组合持仓查询应答 |
| 期权相关 | CXeleTraderSpi::OTU | 期权证券锁定与解锁请求 |
| 期权相关 | CXeleTraderSpi::onRspOTU | 期权证券锁定与解锁响应 |
| 期权相关 | CXeleTraderSpi::onRtnOTU | 期权证券锁定与解锁回报 |
| 期权相关 | CXeleTraderSpi::onErrRtnOTU | 期权证券锁定与解锁错误回报 |
| 其他(用户不使用) | CXeleTraderApi::getSupervisionServerInfo | webServer用户获取系统信息使用 |
系统相关
API类接口
createTraderApi方法
功能:创建API对象
函数原形:
| C++ | |
|---|---|
1 | |
返回值:合法的API对象指针
getVersion 方法
功能:获取当前API的版本信息
函数原形:
| C++ | |
|---|---|
1 | |
返回值:API版本信息字符串
setApiLogPath方法
功能:设置API日志路径
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- logPath:必选,日志路径,相对或绝对路径,调用方保证目录存在
返回值:true表示设置成功,false表示路径不存在,设置失败
说明:若不设置或设置失败,使用默认路径“../logs”;建议创建实例前设置,全局调用一次即可,该设置全局有效。
setApiSuperLog方法
功能:设置是否开启详细日志打印
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- superLog:必选,0表示关闭详细打印,非0表示开启详细打印
返回值:无
说明:若API实例登陆后,遇到问题,可使用此接口实时开启或关闭详细打印。该设置优先级大于配置参数ConfigParam中的SuperLog;若设置开启,配置参数中的SuperLog无效,若不设置或设置关闭,配置参数中的SuperLog生效。
【注意】此接口为静态全局接口,影响所有API实例。
join方法
功能:等待接口线程结束运行
函数原形:
| C++ | |
|---|---|
1 | |
返回值:0,成功;其他值:Errno
release 方法
功能:删除接口对象本身,不再使用本接口对象时,调用该函数删除接口对象
| C++ | |
|---|---|
1 | |
返回值:无
checkPassword 方法
功能:登录成功后,调用此接口校验当前账户的密码是否正确;
| C++ | |
|---|---|
1 | |
参数:
-
accountId:必选,资金账户
-
password:必选,账户密码
返回值:0:表示密码校验正确,其他值表示校验失败的错误码。
registerSpi方法
功能:注册回调对象。注册XeleSecuritiesTraderSpi的子类指针, 用户可通过继承该类实现自定义。
函数原形:
| C++ | |
|---|---|
1 | |
返回值:无
reqLogin 方法
功能:用户登录请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
-
configPath:必选,Api配置文件所在地址
-
accountId:必选,交易员账户
-
password:必选,账户密码
-
node: 若本地配置文件api_config.txt中有此字段且已配置,则此入参可选填,否则必填,建议必填,账户节点
-
market:若本地配置文件api_config.txt中有此字段且已配置,则此入参可选填,否则必填,建议必填,柜台类型,'1'=上交,'2'=深交
-
nRequestID:可选,请求ID,用户维护,自增,用来区分对应单
返回值: 0表示正常, 其他值异常;
说明:通过API配置文件api_config.txt,配置完成后,当客户端与柜台系统成功建立连接后,用户输入用户名和密码,使用reqLogin登录到柜台系统。通过登录回报onRspLogin、onRspLoginManager、onRspInitTrader获取相关信息。
reqLoginEx方法
功能:登录请求 (不使用配置文件,直接传参)
函数原形:
| C++ | |
|---|---|
1 | |
参数:
-
param:配置参数
-
nRequestID:请求ID,用户维护,自增,用来区分对应单
返回值: 0表示正常, 其他值异常;
说明:该接口是给不喜欢配置文件的投资者使用,该登录请求接口不使用配置文件,直接传参。 ConfigParam具体数据格式见XeleSecutitiesTraderApi.h文件,针对有默认值的字段,如果没有说明中的使用场景,可以不进行赋值操作。
reqUpdatePwd 方法
功能:密码更新请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:修改密码请求域(密码组成:数字字母下划线),其结构体CXeleReqUserPasswordUpdateField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
- nRequestID:请求ID。
返回值:0表示成功, 其他值异常;
说明:当用户成功登录柜台后,使用reqUpdatePwd请求修改用户密码,可以在onRspUpdatePwd获取相关信息。
【注意】该方法暂时只支持修改柜台端的密码,集中交易密码由用户自己管理,客户登录时是直接到集中交易进行校验。
reqLogout 方法
功能:登出请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
-
accountId:必选,交易员账户
-
nRequestID:可选,请求ID
返回值: 0表示成功, 其他值异常;
说明:当用户成功登录柜台后,使用reqLogout请求登出柜台,可以在onRspLogout获取相关信息。
reqInitTrader 方法
功能:发送交易链路初始化请求;
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- srcTcpIp:必选,交易链路TCP连接源地址
- srcTcpPort:必选,交易链路TCP连接源端口
- srcUdpIp:UDP交易必选,交易链路UDP报单源地址
- srcUdpPort::UDP交易必选,交易链路UDP报单源端口
- nRequestID:可选,请求ID
返回值: 0表示成功, 其他值异常;
说明:
用户在裸协议报单时,用于初始化自建的报单链路:
1)当 InitTrader请求 发送成功后,可以在 onRspInitTrader() 接口获取应答相关信息;
2)当配置参数 EstablishTradeLink=0 且通过FPGA通道进行裸协议交易时,该接口调用有效;
3)如果用户需要使用软通道进行交易,那么需要自己构造InitTrader请求,通过交易链路(用户创建)发送给柜台进行链路的初始化;并从交易链路接收初始化应答消息。初始化链路的请求和应答消息协议如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
commonFunc 方法
功能:通用接口
函数原形:
| C++ | |
|---|---|
1 2 3 4 5 6 7 | |
参数:
-
configPath:必选,Api配置文件所在地址
-
command:必选,通用接口的功能号
-
commandStruct:必选,对应功能号的结构体
-
market: 可选,市场,默认为上交,'1'=上交,'2'=深交
-
node:可选,节点
-
nRequestID:可选,请求ID,用户维护,自增,用来区分对应单
返回值: 0表示成功, 其他值异常;
说明:当柜台相应成功之后,调用commonFunc通用接口对应的功能号,可以在onRspCommonFunc获取相关信息。
【注意】该方法暂时只支持西部证券,调用此接口不需要登录。
传参数command与commandStruct对应关系:
| command(字符串值) | commandStruct(结构体类型) | 说明 |
|---|---|---|
| AccountInit | CXeleReqAccountInitField | 初始化账号密码 |
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
getErrMsgEx 方法
功能:获取错误码对应的错误信息,支持中英文。
函数原型:
| C++ | |
|---|---|
1 | |
参数:
- errorId:待查错误码;
- market:市场,具体定义参考 TXeleMarketType 枚举;
- language:错误信息版本,1表示中文,2表示英文;
返回值:
- 查询成功,返回错误信息的常量字符串指针;
- 查询失败,返回对应的说明字符串;
getTradeUrl方法
功能:获取交易链路ip和port。
函数原型:
| C++ | |
|---|---|
1 | |
参数:无
返回值:
- 返回交易链路的ip和port;
SPI类接口
onFrontManagerQueryConnect方法
功能:
-
api与艾科管理中心tcp建连成功回调
-
该回调表明当前api已经与管理中心完成了tcp的连接,接下来可以进行登录报文交互(该交互不需要用户关心)
-
正常情况下无需关心此回调,
-
当发生异常情况时(例如,登录请求发出后,迟迟收不到相关登录响应,当前环境可能出现异常),
-
需要简单排查问题,可以通过该回调大致了解到当前api异常模块,方便自行排查问题
函数原形:
| C++ | |
|---|---|
1 | |
返回值:无
onFrontQueryConnect方法
功能:
-
api与艾科柜台查询tcp建连成功回调
-
该回调表明当前api已经与艾科柜台完成了查询tcp的连接,接下来可以进行登录报文交互(该交互不需要用户关心)
-
正常情况下无需关心此回调,
-
当发生异常情况时(例如,登录请求发出后,迟迟收不到相关登录响应,当前环境可能出现异常)
-
需要简单排查问题,可以通过该回调大致了解到当前api异常模块,方便自行排查问题
函数原形:
| C++ | |
|---|---|
1 | |
返回值:无
onFrontTradeConnect方法
功能:
-
api与艾科柜台交易tcp建连成功回调
-
该回调表明当前api已经与艾科柜台完成了交易tcp的连接,接下来可以进行登录报文交互(该交互不需要用户关心)
-
正常情况下无需关心此回调,当发生异常情况时(例如,登录请求发出后,迟迟收不到相关登录响应,当前环境可能出现异常),
-
需要简单排查问题,可以通过该回调大致了解到当前api异常模块,方便自行排查问题
函数原形:
| C++ | |
|---|---|
1 | |
返回值:无
onRspLoginManager方法
功能:艾科柜台登录应答,当需要管理中心接口可用,但是只需要艾科柜台查询接口可用时,收到该回报即可进行操作
函数原形:
| C++ | |
|---|---|
1 | |
- pRspField:登录应答,其结构体CXeleRspUserLoginManagerField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
onRspLogin 方法
功能:艾科柜台登录应答,当需要管理中心接口可用,但是只需要艾科柜台查询接口可用时,收到该回报即可进行操作
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:登录应答,其结构体CXeleRspUserLoginField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
onRspCombInfo方法
功能:艾科柜台组合信息应答,返回交易员具有的组合及资产单元权限信息,调用方自己维护映射关系,业务操作时使用,交易员只能操作其具有权限的组合及资金。
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:组合信息响应,登陆成功后柜台返回,其结构体CXeleRspCombInfoField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
onRspInitTrader方法
功能:添加交易链路应答,当收到该回报时,标记艾科柜台报、撤单接口可用
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:用户添加交易链路,其结构体CXeleRspInitTraderField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 | |
onRspUpdatePwd 方法
功能:密码更新应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:用户修改密码应答,其结构体CXeleRspUserPasswordUpdateField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
onRspLogoutManager方法
功能: 艾科管理中心登出应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:用户退出应答,其结构体CXeleRspUserLogoutManagerField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | |
onRspLogout 方法
功能:登出应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:用户退出应答,其结构体CXeleRspUserLogoutFiel如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
onFrontManagerQueryDisconnected方法
功能:当客户端与管理中心服务端查询通信连接断开时,该方法被调用。该回报触发条件为客户主动发起登出请求,或者链路发生了断连。出现以上情况时,若不是主动发起登出请求,建议先发起登出请求,再重新登录,即可再次使用相关接口。
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- nReason:错误码
返回值:无
说明:当api和管理中心的tcp连接断连后,此回调被调用,此时api会做处理,不会影响到api和柜台的交易和查询功能。如果对管理中心相关接口无操作需要时,可以不对此响应进行操作。
onFrontQueryDisconnected 方法
功能:当客户端与服务端查询通信连接断开时,该方法被调用。该回报触发条件为客户主动发起登出请求,或者链路发生了断连。出现以上情况时,若不是主动发起登出请求,建议先发起登出请求,再重新登录,即可再次使用相关接口。
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- nReason:错误码
返回值:无
说明:当客户端与后台查询通信连接断开时,该方法被调用。
onFrontTradeDisconnected 方法
功能:api与柜台交易链路断连
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- nReason:错误码
返回值:无
说明:当客户端与服务端交易通信连接断开时,该方法被调用。当收到该回调,表示当前连接失去了报、撤单功能。如需恢复,参考OnFrontQueryDisconnected处理方法
onRspCommonFunc方法
功能:通用接口应答,通用接口命令号看pRspField->CommandNum,结果看pRspInfo->ErrorID。
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:通用接口应答,其结构体CXeleRspCommonFuncField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 | |
onDataReady 方法
| C++ | |
|---|---|
1 2 3 4 | |
功能:数据准备完毕回调。该接口用来提供日初数据异步加载完成后,通知用户。
函数原型:
| C++ | |
|---|---|
1 | |
参数:
- bSuccess:数据加载是否成功,true表示成功,false表示失败
- mMsgId:数据加载失败时,表示加载失败对应的消息编号;加载成功时,暂未使用
- nReason:数据加载失败时,表示加载失败对应的原因;加载成功时,暂未使用
返回值:无
onApiMsg 方法
功能:消息打印回调。该接口旨在提供API内部打印信息接口,方便相关log保存,问题定位及客户使用。
函数原形:
| C++ | |
|---|---|
1 | |
参数:
-
ret:标识正常或错误信息(-1,错误信息打印 ;0,正常信息打印)
-
strFormat: 可变参数
返回值:无
该接口使用方式,示例如下,详参demo
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
API类接口
reqInsertOrder 方法
功能:报单请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:报单请求域,其结构体CXeleReqOrderInsertField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | |
- nRequestID:请求ID。
返回值:0表示成功, 其他值异常;
说明: 当用户成功登录柜台,获取交易权限后,使用reqInsertOrder,可以进行报单录入工作。无论报单录入是否通过风控,都会返回一个onRspInsertOrder回报;如果未通过交易所风控,则还会返回onErrRtnInsertOrder回报;详见报单
reqCancelOrder 方法
功能:撤单请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:撤单请求域,其结构体CXeleReqOrderActionField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
- nRequestID:请求ID
返回值: 0表示成功, 其他值异常;
当客户登录柜台系统,获取交易权限后,用户可以使用reqCancelOrder进行撤单操作,无论是否通过风控,该请求会有报单操作回报onRspCancelOrder。若未通过交易所风控,还会返回onErrRtnCancelOrder回报信息。详见撤单
支持以下接口的撤单:
- 报单录入;
reqQryOrder 方法
功能:报单查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:报单查询请求,其结构体CXeleReqQryOrderField为:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | |
- nRequestID:请求ID
返回值: 0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryOrder进行报单查询请求,可以在onRspQryOrder报单查询回报中查看相关信息。
【注意】
1. 如果 OrderSysID条件有效,只以OrderSysID为条件查询 ,则其他条件不生效
2. 如果 OrderSysID 条件无效UserLocalID条件有效,只以UserLocalID为条件查询,则其他条件不生效
3. 如果 OrderSysID和 UserLocalID都无效,则可以按SecuritiesID和时间条件联合查询
为避免API一次返回给用户数据记录数量过多,目前证券API 可以支持分页查询,每页查询上限的条目可以在系统参数表中进行配置。当此参数的值较大时,注意同时配置查询间隔,建议将查询间隔也同时调整(例如,每页查询值大于10000时,将查询间隔调整至5ms一次)
reqQryTrade 方法
功能:成交查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:成交查询请求,其结构体CXeleReqQryTradeField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryTrade进行成交查询请求,可以在onRspQryTrade成交查询回报中查看相关信息。
【注意】
1. 如果 OrderSysID条件有效,只以OrderSysID为条件查询 ,则其他条件不生效
2. 如果 OrderSysID 条件无效UserLocalID条件有效,只以UserLocalID为条件查询,则其他条件不生效
3. 如果 OrderSysID和 UserLocalID都无效,则可以按SecuritiesID和时间条件联合查询
为避免API一次返回给用户数据记录数量过多,目前证券API 可以支持分页查询,每页查询上限的条目可以在系统参数表中进行配置。当此参数的值较大时,注意同时配置查询间隔,建议将查询间隔也同时调整(例如,每页查询值大于10000时,将查询间隔调整至5ms一次)
reqBTFundTransfer方法
功能:跨柜台资金调拨请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:
Manager柜台间资金调拨请求,其结构体CXeleReqBTCapTransferManagerField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
- nRequestID:请求ID
返回值: 0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqBTFundTransfer进行跨柜台间资金调拨请求,可以在onRspBTFundTransfer回报中查看相关信息。
reqQryBTFundTransferRecord方法
功能:跨柜台资金调拨记录查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:跨柜台资金调拨记录查询请求,其结构体CXeleReqQryBTCapTransferField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqBTCapTransferRecord进行跨柜台资金调拨记录查询请求,可以在onRspBTCapTransferRecord回报中查看相关信息。
SPI类接口
onRspInsertOrder方法
功能:报单录入应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField: 报单应答,其结构体CXeleRspOrderInsertField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | |
onErrRtnInsertOrder 方法
功能:报单录入错误回报
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:报单错误回报,其结构体CXeleRspOrderInsertField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | |
onRspCancelOrder 方法
功能:撤单应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:撤单应答,其结构体CXeleRspOrderActionField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | |
onErrRtnCancelOrder方法
功能:撤单错误回报
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:报单错误回报,其结构体CXeleRspOrderActionField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | |
onRtnOrder 方法
功能:报单回报
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:报单回报。其结构体CXeleRtnOrderField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | |
onRtnTrade 方法
功能:成交回报
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:成交回报,其结构体CXeleRtnTradeField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | |
onRspQryOrder 方法
功能:报单查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:报单查询应答,其结构体CXeleRspQryOrderField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | |
onRspQryTrade 方法
功能:成交单查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:成交单查询应答,其结构体CXeleRspQryTradeField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | |
- bIsLast:此次请求的响应的最后一次回调标志(若使用报单编号查询只会返回一条信息,可不判断bIsLast;若使用时间范围查询,回报就是一批信息,需使用bIsLast来判断结束)
onRspBTFundTransfer 方法
功能:跨柜台资金调拨应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:跨柜台资金调拨应答,其结构体CXeleRspBTCapTransferManagerField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
onRtnBTFundTransfer方法
功能:跨柜台资金调拨结果返回
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:跨柜台资金调拨结果返回
其结构体CXeleRtnBtCapTransferManagerField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
onRspQryBTFundTransferRecord方法
功能:跨柜台资金调拨记录查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:跨柜台资金调拨记录查询应答,其结构体CXeleRspQryBTCapTransferManagerField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
证券相关
API类接口
reqInsertBatchOrder方法
功能:批量报单
函数原型:
| C++ | |
|---|---|
1 | |
参数:
- inputField:批量报单请求域,其结构体CXeleReqBatchOrderInsertField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
- nRequestID:请求ID
返回值: 0表示成功, 其他值异常;
当客户登录柜台系统,获取交易权限后,用户可以使用reqInsertBatchOrder进行批量报单操作,无论是否通过风控,都会返回一个onRspInsertOrder回报;如果未通过交易所风控,则还会返回onErrRtnInsertOrder回报;详见报单
reqInFund方法
功能:集中交易资金调入艾科柜台请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:集中交易资金调入艾科柜台请求域,其结构体CXeleReqCapTransferField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户可以使用reqInFund进行集中交易资金调入艾科柜台请求操作,可以在onRspInFund回报中查看相关信息。
reqOutFund方法
功能:艾科柜台资金调出集中交易请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:艾科柜台资金调出集中交易请求域,其结构体CXeleReqCapTransferField为:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户可以使用reqOutFund进行艾科柜台资金调出集中交易请求操作,可以在onRspOutFund回报中查看相关信息。
reqQryInOutFundRecord 方法
功能:集中交易资金调拨艾科柜台明细查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:集中交易资金调拨艾科柜台明细查询请求域,其结构体CXeleReqQryCapTransferRecordField为:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryInOutFundRecord进行集中交易资金调拨艾科柜台明细查询请求,可以在onRspQryInOutFundRecord回报中查看相关信息。
reqQryRate 方法
功能:费率(印花税率、过户费率、佣金率、流量费)查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:费率(印花税率、过户费率、佣金率、流量费)查询,其结构体CXeleReqQryStockFeeField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryRate进行费率(印花税率、过户费率、佣金率、流量费、最小佣金、多冻值、ETF申赎相关费率)查询请求,可以在onRspQryRate响应中查看相关信息。
reqQryCentralTradingFund方法
功能:集中交易资金查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:集中交易柜台资金查询请求域,其结构体CXeleReqQryCentralTradingFundField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryCentralTradingFund进行证券集中交易柜台资金明细查询请求,可以在onRspQryCentralTradingFund回报中查看相关信息。
reqInOutPosition方法
功能:集中交易持仓调入/调出艾科柜台请求(部分券商使用)
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:持仓划拨请求域,其结构体CXeleReqInOutPositionField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqInOutPosition把集中柜台持仓调入/调出到艾科柜台,可以在onRspInOutPosition回报中查看相关信息。
reqQryInOutPositionDetails方法
功能:集中交易持仓调拨艾科柜台明细查询请求(部分券商使用)
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:集中交易持仓调拨艾科柜台明细查询请求域,其结构体CXeleReqQryInOutPositionDetailsField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户后持仓划拨后,可以使用reqQryInOutPositionDetails查询持仓划拨记录,可以在onRspQryInOutPositionDetails回报中查看相关信息。
reqQryGateWaysRecord方法
功能:账号的可用网关信息查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField 股东账户可用网关信息查询请求域,其结构体CXeleReqQryAvailableGateWayRecordField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryGateWaysRecord查询自己的可用网关信息请求,可以在onRspQryGateWaysRecord回报中查看相关信息。
该接口不再更新,推荐使用交易所网关查询请求reqQryExChangeGateWay接口。
reqQryBtFund方法
功能:沪深柜台资金账户查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:
沪深柜台资金账户查询请求,其结构体CXeleReqQryClientAccountField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryBtFund进行沪深柜台资金账户查询请求,可以在onRspQryBtFund回报中查看相关信息。
reqQryFund方法
功能:证券资金查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:
沪深柜台资金账户查询请求,其结构体CXeleReqQryClientAccountField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryFund进行证券资金查询请求,可以在onRspQryFund回报中查看相关信息。
reqQryPosition方法
功能:证券持仓查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:证券持仓查询请求域(SecuritiesID查询,该字段不填查所有),其结构体CXeleReqQryPositionField为:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryPosition进行证券持仓查询,可以在onRspQryPosition回报中查看相关信息。
reqQrySecurities 方法
功能:证券信息查询请求
| C++ | |
|---|---|
1 | |
参数:
- inputField:
证券合约查询请求,其结构体CXeleReqQrySecuritiesField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQrySecurities进行证券信息查询请求,可以在onRspQrySecurities回报中查看相关信息。
reqQryInvestorInfo方法
功能:股东账号信息查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField:权益查询股东账号信息查询请求域,其结构体CXeleReqQryInvestorInfoField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryInvestorInfo查询自己的股东账号等其他相关信息请求,可以在onRspQryInvestorInfo回报中查看相关信息。
reqQryPrcProgramInfo方法
功能:程序化风控信息查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField 程序化风控信息查询请求域,其结构体CXeleReqQryPrcProgramInfoField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryPrcProgramInfo查询自己的程序化风控信息,可以在 onRspQryPrcProgramInfo回报中查看相关信息
reqQryETFCreationRedemptionSecurities方法
功能:ETF申赎母基金信息查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField
ETF申赎母基金信息查询请求域,其结构体CXeleReqQryETFCreationRedemptionSecuritiesField 如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryETFCreationRedemptionSecurities查询ETF申赎母基金信息,可以在回报onRspQryETFCreationRedemptionSecurities中查看相关信息
reqQryETFCreationRedemptionComponentSecurities方法
功能:ETF申赎成股信息查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField
ETF申赎成股信息查询请求域,其结构体CXeleReqQryETFCreationRedemptionComponentSecuritiesField 如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryETFCreationRedemptionComponentSecurities查询ETF申赎成股信息,可以在回报onRspQryETFCreationRedemptionSecurities中查看相关信息
reqQryExChangeGateWay方法
功能:交易所网关查询请求
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- inputField 交易所网关信息查询请求域,其结构体CXeleReqQryExChangeGateWayField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 | |
- nRequestID:请求ID
返回值:0表示成功, 其他值异常;
说明:当用户登录柜台系统后,用户使用reqQryExChangeGateWay查询交易所网关信息,可以在 onRspQryExChangeGateWay回报中查看相关信息
SPI类接口
onRspInFund 方法
功能:集中交易资金调入艾科柜台应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField: 集中交易资金调入艾科柜台应答,其结构体CXeleRspCapTransferField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
onRspOutFund方法
功能:艾科柜台资金调出集中交易应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:艾科柜台资金调出集中交易应答,其结构体CXeleRspCapTransferField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
onRspQryInOutFundRecord方法
功能:集中交易资金调拨艾科柜台明细查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:集中交易资金调拨艾科柜台明细查询域,其结构体CXeleRspQryCapTransferRecordField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
onRspQryRate方法
功能:费率(印花税率、过户费率、佣金率、流量费)查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:费率(印花税率、过户费率、佣金率、流量费)查询应答,其结构体CXeleRspQryStockFeeField为:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
onRspQryCentralTradingFund
功能:集中交易柜台资金查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:集中交易柜台资金查询应答域,其结构体CXeleRspQryCentralTradingFundField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
onRspInOutPosition方法
功能:集中交易持仓调入/调出艾科柜台应答(部分券商使用)
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:持仓划拨应答域,其结构体CxeleRspInOutPositionField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
响应头中的pRspInfo. ErrorID为55055时,响应体中的集中柜台错误信息ctErrorId、ctErrorMsg才有意义。
onRspQryInOutPositionDetails方法
功能:集中交易持仓调拨艾科柜台明细查询应答(部分券商使用)
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:明细应答域,其结构体CXeleRspQryInOutPositionDetailsField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
onRspQryGateWaysRecord方法
功能:用户可用网关信息查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:用户可用网关信息查询应答,其结构体CXeleRspQryAvailableGateWayRecordField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
onRspQryBtFund方法
功能:沪深柜台资金账户查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:沪深柜台资金账户查询应答,其结构体CXeleRspQryClientAccountFundManagerField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
onRspQryFund方法
功能:证券资金查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:证券资金查询应答,其结构体CXeleRspQryStockClientAccountField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | |
onRspQryPosition 方法
功能:证券持仓查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField: 证券持仓查询应答,其结构体CXeleRspQryStockPositionField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | |
onRspQrySecurities 方法
功能:证券信息查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:证券信息查询应答,其结构体CXeleRspQryStockSecuritiesField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | |
onRspQryInvestorInfo方法
功能:股东账户信息查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:用户查询自己的股东账号等其他相关信息应答,其结构体CXeleRspQryInvestorInfoField为:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
onRspQryPrcProgramInfo方法
功能:程序化风控信息查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:用户查询自己的程序化风控信息应答,其相关结构体如下为:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | |
onRspQryExChangeGateWay方法
功能:交易所网关信息查询应答
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:用户查询交易所网关信息应答,其相关结构体如下为:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
onRtnInOutPosition方法
功能:仓位变化回报通知(部分券商使用)
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRtnField:仓位变化回报通知域,其结构体CXeleRtnInOutPositionField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
onRspQryETFCreationRedemptionComponentSecurities方法
功能:ETF申赎成分股信息查询
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRtnField:仓位变化回报通知域,其结构体CXeleRspQryETFCreationRedemptionComponentSecuritiesField 如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
onRspQryETFCreationRedemptionSecurities方法
功能:ETF申赎母基金信息查询
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRtnField:仓位变化回报通知域,其结构体CXeleRspQryETFCreationRedemptionSecuritiesField 如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | |
onRtnExChangeGateWay方法
功能:交易所网关信息通知,在交易所网关状态发生变化时,自动向api端推送当前状态
函数原形:
| C++ | |
|---|---|
1 | |
参数:
- pRspField:交易所网关信息通知域,其结构体CXeleRtnExChangeGateWayField如下:
| C++ | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
其他
Trader-API中各线程作用说明
心跳处理线程
API核柜台查询链路处理回报线程
API和manager链路处理回报线程
API交易链路发送和接收数据线程
注: 建议绑核api_config.txt中CpuCore的第一个参数
API交易链路处理交易回调线程
注: 建议绑核api_config.txt中CpuCore的第二个参数
LOG日志线程
字段类型
字段类型总表
| 序号 | 数据类型名 | 数据类型 | 数据类型说明 |
|---|---|---|---|
| 1 | DWORD | unsigned int | DWORD双字类型 |
| 2 | TXeleFairProtocolType Fair | unsigned char | 协议号类型 |
| 3 | TXeleMessageIDType | unsigned char | 消息编号类型 |
| 4 | TXeleMessageLenType | unsigned short | 消息长度类型 |
| 5 | TXeleRequestIDType | int | 请求编号类型 |
| 6 | TXeleSeqNoType | unsigned int | 序列号类型 |
| 7 | TXeleSeqSeriesType | unsigned char | 流类型 |
| 8 | TXeleOrigSysIDType | unsigned int | 原报单编号类型 |
| 9 | TXeleOrderExchangeIDType | 字符数组 | 交易所报单编号类型 |
| 10 | TXeleOrderIDType | unsigned int | 报单编号类型 |
| 11 | TXelePriceType | double | 价格类型 |
| 12 | TXeleVolumeType | unsigned int | 数量类型 |
| 13 | TXeleOrderTypeType | char | 报单类型类型 |
| 14 | TXeleSecuritiesIDType | 字符数组 | 证券代码类型 |
| 15 | TXeleMarketType | char | 交易所类型 |
| 16 | TXeleDirectionType | char | 交易方向类型 |
| 17 | TXeleTimeConditionType | char | 时间条件类型 |
| 18 | TXeleTimeType | 字符数组 | 长时间类型 |
| 19 | TXeleOffsetFlagType | char | 开平标志类型 |
| 20 | TXeleErrorIDType | unsigned int | 错误编号类型 |
| 21 | TXeleErrorMsgType | 字符数组 | 错误信息类型 |
| 22 | TXeleOrderStatusType | char | 报单状态类型 |
| 23 | TXeleMoneyType | double | 资金类型 |
| 24 | TXeleUserIDType | 字符数组 | 交易用户代码类型 |
| 25 | TXeleUserPasswordType | 字符数组 | 交易用户密码类型 |
| 26 | TXeleAppIDType | 字符数组 | 终端软件AppID类型 |
| 27 | TXeleAuthCodeType | 字符数组 | 终端软件授权码类型 |
| 28 | TXeleParticipantIDTypes | 字符数组 | 会员代码类型 |
| 29 | TXeleIPType | IP类型 | 字符数组 |
| 30 | TXeleErrorId | unsigned short | 错误码类型 |
| 31 | TXeleErrorLenType | unsigned char | 错误信息长度类型 |
| 32 | TXeleIsLastType | bool | 结束标志类型 |
| 33 | TXeleDateType | 字符数组 | 日期类型 |
| 34 | TXeleShortTimeType | 字符数组 | 短时间类型 |
| 35 | TXeleSessionIDType | short int | 会话编号类型 |
| 36 | TXeleTokenType | unsigned short int | 令牌类型 |
| 37 | TXeleSendBuffType | 字符数组 | 发送缓冲区类型 |
| 38 | TXeleLockedSecuritiesIDType | 字符数组 | 锁定证券代码类型 |
| 39 | TXeleTransferFeeRateType | double | 交易所过户费率类型 |
| 40 | TXeleStampTaxRateType | double | 交易所过户费率类型 |
| 41 | TXeleAcctStatusType | char | 交易账户状态类型 |
| 42 | TXeleFrozeMarginType | double | 冻结保证金(股票叫冻结资金) |
| 43 | TXeleTotalFeeType | double | 总手续费类型 |
| 44 | TXeleCurrGainLossType | double | 当日盈亏类型 |
| 45 | TXeleTotalGainLossType | double | 总盈亏类型 |
| 46 | TXeleFrozenFeeType | double | 冻结手续费类型 |
| 47 | TXeleUsedFeeType | double | 已付手续费类型 |
| 48 | TXeleAvailableFundType | double | 可用资金类型 |
| 49 | TXeleTotalFundType | double | 总资金类型 |
| 50 | TXeleSellFund | double | 卖出资金类型 |
| 51 | TXeleBuyFund | double | 买入资金类型 |
| 52 | TXeleAveragePriceType | double | 成交均价(加权平均)类型 |
| 53 | TXeleTdBuyPositionType | unsigned long | 今买持仓类型 |
| 54 | TXeleTdSellPositionType | unsigned long | 今卖持仓类型 |
| 55 | TXeleYdPositionType | unsigned long | 昨持仓类型 |
| 56 | TXeleTotalPositionType | unsigned long | 总持仓类型 |
| 57 | TXeleTotalCostType | double | 持仓成本类型 |
| 58 | TXeleSecuritiesNameType | 字符数组 | 合约名称类型 |
| 59 | TXeleCPFlagType | char | 涨跌标志(期权C/P)类型 |
| 60 | TXeleExercisePriceType | double | 交易所过户费率类型 |
| 61 | TXeleUncoveredPositionType | unsigned long | 当前合约未平仓数(期权)类型 |
| 62 | TXelePreSettlePriceType | double | 昨结算价类型 |
| 63 | TXeleUnderlyPreClosePriceType | double | 标的证券前收盘价 |
| 64 | TXeleMarginUnitType | double | 单位保证金(期权)类型 |
| 65 | TXeleSetIDType | unsigned char | 产品集类型 |
| 66 | TXeleLimitPriceClassType | char | 涨跌幅限制类型类型 |
| 67 | TXeleMaxLimitOrderVolumeType | unsigned long | 限价单最大下单量类型 |
| 68 | TXeleMinLimitOrderVolumeType | unsigned long | 限价单最小下单量类型 |
| 69 | TXeleMaxMarketOrderVolumeType | unsigned long | 市价单最大下单量类型 |
| 70 | TXeleMinMarketOrderVolumeType | unsigned long | 市价单最小单量类型 |
| 71 | TXeleLowerPriceType | double | 跌停板价类型 |
| 72 | TXeleUpperPriceType | double | 涨停板价类型 |
| 73 | TXeleAvgPxType | double | 持仓均价类型 |
| 74 | TXeleTradeVolumeType | unsigned long | 成交数量类型 |
| 75 | TXeleUpRatioType | double | 上浮比率类型 |
| 76 | TXeleExerciseDayType | 字符数组 | 行权日类型 |
| 77 | TXeleSumLegsType | unsigned char | 合约数量 |
| 78 | TXeleSecondaryOrderType | 字符数组 | 组合流水号类型 |
| 79 | TXeleLegSideType | char | 成份合约方向 |
| 80 | TXeleStrategyCombCodeType | 字符数组 | 策略组合编码类型 |
| 81 | TXeleStrategyCombType | unsigned char | 策略组合类型 |
| 82 | TXeleCombOrderType | char | 组合申报类型 |
| 83 | TXeleCoveredFlagType | char | 备兑标志类型 |
| 84 | TXeleCoveredFrozenPositionType | unsigned long | 备兑冻结量类型 |
| 85 | TXeleTrafficFeeType | double | 交易所流量费率 |
| 86 | TXeleYdPositionLeftType | long long | 昨持仓剩余类型 |
| 87 | TXeleUnTdFrozenCapType | double | 在途冻结资金类型 |
| 88 | TXeleUnTdFrozenPremiumType | double | 在途冻结权利金类型 |
| 89 | TXeleYdPositionCostType | double | 买入成本类型 |
| 91 | TXeleSecuritiesSubTypeType | 字符数组 | 合约子品种类型 |
| 92 | TXeleOptionsTypeType | 字符数组 | 期权类型 |
| 93 | TXelePositionType | unsigned long | 持仓类型 |
| 94 | TXeleClientIpType | 字符数组 | 客户端IP类型 |
| 95 | TXeleClientMacType | 字符数组 | 客户端MAC类型 |
| 96 | TXeleReservedType | 字符数组 | 预留类型 |
| 97 | TXeleReserved1Type | 字符数组 | 预留类型 |
| 98 | TXeleReserved2Type | 字符数组 | 预留类型 |
| 99 | TXeleDepartmentIDType | 字符数组 | 营业部类型 |
| 100 | TXeleTradeSystemIDType | unsigned char | 柜台系统节点ID类型 |
| 101 | TXeleUnTdPositionType | unsigned long | 在途持仓类型 |
| 102 | TXeleTradeOptionCodeType | 字符数组 | 期权标识代码类型 |
| 103 | TxeleBusinessUnitType | 字符数组 | 客户业务处理单元类型 |
| 104 | TXeleSubClientIndexType | unsigned char | 客户端登录字节点类型 |
| 105 | TxeleTradeOwnerType | unsigned char | 订单所有类型 |
| 107 | TXelePartyIdType | 字符数组 | 席位类型 |
| 108 | TXeleExchangeIDType | unsigned char | 交易前置ID类型 |
| 109 | TxeleFlowRebuildType | unsigned char | 流水重构类型 |
| 110 | TXeleSecuritiesType | int | 合约类型 |
| 111 | TXeleDayTradingType | char | 日内可转交易类型 |
| 112 | TXeleOperwayType | char | 委托方式 |
| 113 | TXeleTransferDirectionType | char | 出入金调拨方向类型 |
| 114 | TXeleCurrencyType | char | 币种类型 |
| 115 | TXeleMarketIDType | char | 市场代码类型 |
| 116 | TXeleOrderMode | char | 报单模式类型 |
| 117 | TXeleEntrustTypeType | char | 委托类型 |
| 118 | TXeleChargingTypeType | char | 收费方式类型 |
| 119 | TXeleRemarkType | 字符数组 | 备注类型 |
| 120 | TXeleFundType | int | 集中交易柜台主资金标志类型 |
| 121 | TXeleStockQuotaType | long | 新股配股额度类型 |
| 122 | TXeleFlowCountType | unsigned int | 流水数量类型 |
| 123 | TXeleRecoveryFlagType | char | 流水重构报文标记类型 |
| 124 | TXeleInvestorIDType | 字符数组 | 投资者ID类型 |
| 125 | TXeleTimeIntervalType | int | 心跳间隔(s) 类型 |
| 126 | TXeleTimeOutType | int | 超时时间(s) |
| 127 | TXeleUniqueNumberType | int | 全局唯一消息编号类型,从1开始递增 |
| 128 | TXeleIsFundReversalType | char | 是否进行了资金冲正操作标记类型 |
| 129 | TXeleReversalCounterType | 字符数组 | 资金冲正柜台标记类型 |
| 130 | TXeleReversalResultType | char | 资金冲正结果标记类型 |
| 131 | TXeleIpAddrType | 字符数组 | 客户端ip地址 |
| 132 | TXeleMacAddrType | 字符数组 | 客户端mac地址 |
| 133 | TXeleHostNameType | 字符数组 | 客户端主机名称 |
| 134 | TXeleCpuSerialType | 字符数组 | 客户端cpu序列号 |
| 135 | TXeleHardDiskSerialType | 字符数组 | 客户端硬盘序列号 |
| 136 | TXeleCentralTradingErrorIdType | int | 集中交易响应错误编码类型 |
| 137 | TXeleCentralTradingErrorIdType | 集中交易响应错误信息类型 | 集中交易响应错误信息类型 |
| 138 | TXeleCommandNum | 字符数组 | 通用接口命令号 |
| 139 | TXeleExchangeIDIntType | int | 交易前置ID类型(int类型) |
| 140 | TXeleFrozenPositionType | Unsigned int | 冻结持仓类型 |
| 141 | TXeleCoveredFrozenPositionType | Unsigned long | 备兑冻结量类型 |
| 142 | TXeleQtyType | long | 长数量类型 |
| 143 | TXeleETFCreationRedemptionExtraFee | double | ETF申赎附加费类型 |
| 144 | TXeleETFCreationRedemptionCommFeeRate | double | ETF申赎佣金费率类型 |
| 145 | TXeleETFCreationRedemptionTransferFeeRate | double | ETF申赎过户费类型 |
| 146 | TXeleActionSourceType | unsigned char | 操作来源 |
| 147 | TXeleSystemFeaturesType | unsigned int | 柜台支持的功能特性 |
| 148 | TXeleTendererIDType | 字符数组 | 要约收购人编码 |
附录
附录A 错误代码表
详见独立的错误码说明文件
附录B 数据字典
[Fair协议号类型]
| 字典子项 | 子项含义 |
|---|---|
| 0x5f | Fair协议号 |
[流水重构报文标记类型] TXeleRecoveryFlagType
| 字典子项 | 子项含义 |
|---|---|
| 0 | 正常回报 |
| 1 | 流水重构回报 |
[报单消息编号类型] TXeleMessageIDType
| 字典子项 | 子项含义 |
|---|---|
| 101 | 普通报单类型消息ID |
| 103 | 普通撤单类型消息ID |
[流类型] TXeleSeqSeriesType
| 字典子项 | 子项含义 |
|---|---|
| 1 | 对话流 |
| 2 | 会有私有流 |
| 3 | 公共流 |
| 4 | 查询流 |
| 5 | 交易员私有流 |
| 6 | 询价流 |
[报单类型类型] TXeleOrderTypeType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | 对手方最优剩余转限价(沪深) |
| ‘2’ | 限价(沪深) |
| ‘3’ | 本方最优(沪深) |
| ‘4’ | 市价立即成交剩余撤销(深交) |
| ‘5’ | 市价全额成交或撤销(深交) |
| ‘6’ | 最优五档立即成交剩余撤销(沪深) |
| ‘7’ | 最优五档立即成交剩余转限价(上交) |
| ‘8’ | 限价全额成交或撤销(股票期权) |
[交易所交易前置描述符类型] TXeleMarketType
| 字典子项 | 子项含义 | 交互对象 |
|---|---|---|
| ‘1’ | 上交股票 | 柜台 |
| ‘2’ | 深交股票 | 柜台 |
| ‘3’ | 上交期权 | 柜台 |
| ‘4’ | 深交期权 | 柜台 |
| ‘1’ | 上交柜台 | Manager(管理中心) |
| ‘2’ | 深交柜台 | Manager(管理中心) |
| ‘a’ | 沪深柜台资金查询汇总 | Manager、柜台(只为沪深柜台资金查询接口使用,其他接口不能使用) |
[委托方式类型] TXeleOperwayType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | API报单 |
| ‘2’ | 其他方式报单 |
[交易方向类型] TXeleDirectionType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | 买 |
| ‘2’ | 卖 |
| '3' | ETF申购 |
| '4' | ETF赎回 |
| '7' | 要约预受(仅上交所支持) |
| '8' | 要约撤销(仅上交所支持) |
[出入金调拨方向类型] TXeleTransferDirectionType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | 调出 |
| ‘2’ | 调入 |
[时间条件类型] TXeleTimeConditionType
| 字典子项 | 子项含义 |
|---|---|
| ‘0’ | GFD当日有效 |
| ‘3’ | IOC 即时成交剩余自动撤销 |
| ‘4’ | FOK即时全部成交否则撤销 |
[合约类型] TXeleSecuritiesType
股票柜台2.5及以上版本支持
| 字典子项 | 上交股票 | 深交股票 |
|---|---|---|
| 1 | 股票 | 股票 |
| 2 | 基金 | 基金 |
| 3 | 可转债 | 可转债 |
| 4 | 新股 | 新股 |
| 5 | 配股 | 配股 |
| 6 | 新债申购 | 新债申购 |
| 7 | 配债 | 配债 |
| 8 | 科创板 | 核准制创业板 |
| ‘9 | 科创板新股申购 | 核准制创业板申购 |
| 10 | 科创板配股 | 核准制创业板配股 |
| 11 | 非交易类型 | |
| 12 | ||
| 13 | ||
| 14 | 注册制创业板 | |
| 15 | 注册制创业板申购 | |
| 16 | 注册制创业板配股 | |
| 17 | 逆回购 | 逆回购 |
| 18 | ETF基金 | ETF基金 |
| 19 | 货币ETF基金 | 货币ETF基金 |
| 20 | 国债ETF基金 | 国债ETF基金 |
| 23 | LOF基金 | LOF基金 |
| 24 | 封闭式基金 | 封闭式基金 |
[报单状态类型] TXeleOrderStatusType
| 字典子项 | 子项含义 |
|---|---|
| ‘0’ | 未报 |
| ‘1’ | 正报 |
| ‘2’ | 已报 |
| ‘3’ | 已报待撤 |
| ‘4’ | 部成待撤 |
| ‘5’ | 部撤 |
| ‘6’ | 已撤 |
| ‘7’ | 部成 |
| ‘8’ | 已成 |
| ‘9’ | 废单 |
[流水重构类型] TXeleFlowRebuildType
| 字典子项 | 子项含义 |
|---|---|
| 0 | 不进行流水重构 |
| 1 | 只进行资金流水重构 |
| 2 | 只进行报文流水重构 |
| 3 | 资金和报文流水重构同时进行 |
[币种类型] TXeleCurrencyType
| 字典子项 | 子项含义 |
|---|---|
| ‘0’ | CNY人民币 |
| ‘1’ | USD 美元 |
| ‘2’ | HKD 港币 |
[开平标志类型] TXeleOffsetFlagType
| 字典子项 | 子项含义 |
|---|---|
| ‘C’ | 平仓 |
| ‘0’ | 开仓 |
[备兑标志类型] TXeleCoveredFlagType
| 字典子项 | 子项含义 |
|---|---|
| ‘0’ | 深交备兑 |
| ‘1’ | 深交非备兑 |
| ‘ ’ | 上交非备兑 |
| ‘1’ | 上交备兑 |
[组合申报类型] TXeleCombOrderType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | 组合 |
| ‘2’ | 解组 |
[策略组合类型] TXeleStrategyCombType
| 字典子项 | 子项含义 |
|---|---|
| 1 | 认购牛市价差策略 |
| 2 | 认沽熊市价差策略 |
| 3 | 认沽牛市价差策略 |
| 4 | 认购熊市价差策略 |
| 5 | 跨式空头策略 |
| 6 | 宽跨式空头策略 |
| 7 | 认购期权保证金开仓转备兑开仓 |
[合约方向类型] TXeleLegSideType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | 买开,权利仓 |
| ‘2’ | 卖开,义务仓 |
[市场代码类型] TXeleMarketIDType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | 上交A股 |
| ‘2’ | 上交B股 |
| ‘3’ | 深交A股 |
| ‘4’ | 深交B股 |
| ‘5’ | 深交三板 |
[报单模式类型] TXeleOrderMode
| 字典子项 | 子项含义 |
|---|---|
| ‘0’ | 用户模式 |
| ‘1’ | 柜台模式 |
[订单所有类型] TXeleTradeOwnerType
| 字典子项 | 子项含义 |
|---|---|
| 1 | 个人投资者发起 |
| 101 | 交易所发起 |
| 102 | 会员发起 |
| 103 | 机构投资者发起 |
| 104 | 自营交易发起 |
| 105 | 流动性服务提供商发起 |
[委托类型] TXeleEntrustTypeType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | 买开 |
| ‘2’ | 卖开 |
| ‘3’ | 买平 |
| ‘4’ | 卖平 |
[收费方式类型] TXeleChargingTypeType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | 按金额收取 |
| ‘2’ | 按手数收取 |
[排序类型] TXeleSortType
| 字典子项 | 子项含义 |
|---|---|
| 0 | 默认排序 |
| 1 | 按时间正排序 先报的单先查到 |
| 2 | 按时间倒排序 新报的单先查到 |
[批量报单类型]TXeleBatchType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | 等量拆单 |
| ‘2’ | 递减拆单 |
| ‘3’ | 多证券委托组合 |
[查询订单状态位图类型] TxeleQryStatusType
| 字典子项 | 子项含义 |
|---|---|
| QRYSTAT_UNREPORT | 未报 |
| QRYSTAT_REPORTING | 正报 |
| QRYSTAT_REPORTED | 已报 |
| QRYSTAT_REPORTED_ACTION | 已报待撤 |
| QRYSTAT_PTRADE_ACTION | 部成待撤 |
| QRYSTAT_PACTION | 部撤 |
| QRYSTAT_ACTIONED | 已撤 |
| QRYSTAT_PTRADE | 部成 |
| QRYSTAT_TRADED | 已成 |
| QRYSTAT_ERROR | 废单 |
[报单来源类型] TXeleOrderSourceType
| 字典子项 | 子项含义 |
|---|---|
| ORDERSOURCEFPGA | api硬件通道报单 |
| ORDERSOURCESOFT | API软件通道报单 |
| ORDERSOURCEWEB | web撤单 |
| ORDERSOURCEGATEWAYSELF | 接入网关报单(本平台报单) |
| ORDERSOURCEGATEWAYOTHER | 接入网关报单(其他平台报单) |
[通用接口命令号] TXeleCommandNum
| 字典子项 | 子项含义 |
|---|---|
| AccountInit | 用户密码初始化 |
[程序化风控类别] TXelePrcProgramType
| 字典子项 | 子项含义 |
|---|---|
| 0 | 默认返回所有 |
| 1 | 全天报撤笔数限制风控 |
| 2 | 流速风控 |
[持仓划拨方向类别] TXeleInOutDirectionType
| 字典子项 | 子项含义 |
|---|---|
| ‘1’ | 划入:从集中交易把持仓划入到Xele柜台 |
| ‘2’ | 划出:从Xele柜台把持仓划出到集中交易 |
| '5' | 备兑锁定-CoverLock |
| '6' | 备兑解锁-CoverUnlock |
[报单通道类型] TXeleChannelType
| 字典子项 | 子项含义 |
|---|---|
| 1 | FPGA硬件通道 |
| 2 | 软件通道 |
[网关类型] TXeleGateWayType
| 字典子项 | 子项含义 |
|---|---|
| 1 | 深交所现货集中竞价交易平台 |
| 2 | 深交所综合金融服务平台 |
| 3 | 深交所非交易处理平台 |
| 4 | 深交所衍生品集中竞价交易平台 |
| 5 | 深交所国际市场互联平台 |
| 6 | 深交所固定收益交易平台 |
| 7 | 深交所行情 |
| 21 | 上交所竞价撮合平台 |
| 22 | 上交所综合业务平台 |
| 23 | 上交所期权业务平台 |
| 24 | 上交所港股通平台 |
| 25 | 上交所新债券交易平台 |
| 26 | 上交所固定收益平台 |
| 27 | 上交所互联网交易平台 |
| 28 | 上交所行情 |
[网关状态类型] TXeleGateWayStatus
| 字典子项 | 子项含义 |
|---|---|
| 1 | 未开放 |
| 2 | 预开放 |
| 3 | 开放 |
| 4 | 暂停 |
| 5 | 关闭 |
| 6 | 离线 |
| 7 | 禁用 |
[划拨模式类型] TXeleInOutMode
| 字典子项 | 子项含义 |
|---|---|
| 1 | 经过集中柜台 |
| 2 | 不经过集中柜台 |
[专业投资者标志类型] TXeleInvestorFlag
| 字典子项 | 子项含义 |
|---|---|
| 1 | 普通投资者 |
| 2 | 专业投资者 |
[股票风险级别] TXeleStockLevel
| 字典子项 | 子项含义 |
|---|---|
| '0' | 正常 |
| '1' | 风险警示 |
| '2' | 退市整理期 |
[发行方式] TXeleIssueType
| 字典子项 | 子项含义 |
|---|---|
| 1 | 配股配债 |
| 2 | 增发 |
| 3 | 新股申购 |
| 4 | 新债申购 |
| 5 | 基金申购 |
[证券子类别代码] TxeleSecuritiesSubType
| 字典子项 | 子项含义 |
|---|---|
| 1 | 主板 A 股 |
| 2 | 创业板股票 |
| 3 | 主板 B 股 |
| 4 | 国债(含地方债) |
| 5 | 企业债 |
| 6 | 公司债 |
| 7 | 可转债 |
| 8 | 私募债 |
| 9 | 可交换私募债 |
| 10 | 证券公司次级债 |
| 11 | 质押式回购 |
| 12 | 资产支持证券 |
| 13 | 本市场股票ETF |
| 14 | 跨市场股票ETF |
| 15 | 跨境ETF |
| 16 | 本市场实物债券ETF |
| 17 | 现金债券ETF |
| 18 | 黄金ETF |
| 19 | 货币ETF |
| 20 | 杠杆ETF |
| 21 | 商品期货ETF |
| 22 | 标准LOF |
| 23 | 分级子基金 |
| 24 | 封闭式基金 |
| 25 | 仅申赎基金 |
| 26 | 权证 |
| 27 | 个股期权 |
| 28 | ETF期权 |
| 29 | 优先股 |
| 30 | 证券公司短期债 |
| 31 | 可交换公司债 |
| 32 | 主板存托凭证 |
| 33 | 创业板存托凭证 |
| 34 | 基础设施基金 |
| 35 | 定向可转债 |
| 36 | 跨银行间实物债券ETF |
| 37 | 科创板 |
| 38 | 科创板存托凭证 |
| 39 | 控制指令 |
| 40 | 无类别 |
[操作来源] TXeleActionSourceType
| 字典子项 | 子项含义 |
|---|---|
| 1 | API发起的 |
| 2 | monitor发起的 |
| 3 | manager发起的 |
[调入调出类型] TXeleTransferType
| 字典子项 | 子项含义 |
|---|---|
| 0 | 可用资金 |
| 1 | RTGS额度 |
[涨跌幅限制类型] TXeleLimitPriceClassType
| 字典子项 | 子项含义 |
|---|---|
| 'N' | 表示交易规则(2013修订版)3.4.13规定的有涨跌幅限制类型或者权证管理办法第22条规定 |
| 'R' | 表示交易规则(2013修订版)3.4.15和3.4.16规定的无涨跌幅限制类型 |
| 'S' | 表示回购涨跌幅控制类型 |
| 'F' | 表示基于参考价格的涨跌幅控制 |
| 'P' | 表示IPO上市首日的涨跌幅控制类型 |
| 'U' | 表示无任何价格涨跌幅控制类型 |
[柜台支持的功能特性类型] TXeleSystemFeaturesType
| 字典子项 | 子项含义 |
|---|---|
| bit0 | 1表示支持UDP报单,0表示不支持; |
| bit1~31 | 保留扩展; |
FAQ
-
【问题1】用户每个账户都会创建一个对象,10个账号就有10个对象,这10个账户都绑定在一个CPU(进程)上,还是需要绑不同的CPU(进程)?
答:可以绑一个CPU也可以绑多个CPU。一个CPU(进程)可以处理多个API。每个API只能处理一个账户,即一个CPU(进程) 可以绑定多个账号。如果需要多线程使用可以创建多个API实例,每个实例用不同的节点 SubClientIndex登录
-
【问题2】发单的时候需要指定交易所吗?
答:不需要,由于深交和上交属于2个柜台,客户需要用2个API对接2个不同的柜台,暂不支持一个API同时连接两个柜台。
-
【问题3】在onRtnOrder回报字段中,交易所报单ID(OrderExchangeID)在生产实盘中是不是真的有交易所报单编号?
答:有的。
-
【问题4】怎么实现Api断线重连功能(异常处理)?
答:目前Api可以支持连接艾科管理中心、柜台,当完成连接后,如果发生了链路断连时,有以下两种场景。
场景一:管理中心连接断了,这时不会影响到Api的交易和查询功能,如果不需要进行柜台间资金调拨时,无需处理。
场景二:柜台的查询或者交易链路断连,这时整个Api的连接都会断掉,无法进行任何操作,需要重新发送登录请求来进行重新建连。
当发生异常断连时会收到以下对应的回调函数:
onFrontManagerQueryDisconnected(int nReason) 对应管理中心连接断连
onFrontQueryDisconnected(int nReason)对应柜台查链路断连
onFrontTradeDisconnected(int nReason)对应柜台交易链路断连
考虑到编程实现复杂情况,可以在收到以上任意一种断连回调后,先调用登出reqUserLogout接口,等待一秒后再调用登录reqUserLogin接口来重新建连。 - 【问题5】api需要配置几个URL?
答:如果配置了ManagerURL,则其他URL可以都不配置,因为manager会返回其他URL,但是如果配置了其他URL,则配置的URL优先级最高。
-
【问题6】哪些配置是确认全部支持的?
答:如果配置里面有强调部分券商支持的,那要跟券商确认是否支持,如果未标明是部分券商支持的,则表示是通用支持功能。
-
【问题7】FpgaRspRcv的设计初衷是什么?
答:硬件通道默认接收当前账户其他节点的回报,但是如果交易客户不需要其他节点的回报,那会需要额外的资源处理这些数据,且链路回报性能也会影响。如果配置不接收,则可以节省客户资源和链路资源。
-
【问题8】SuperLog打开后会影响报单或回报性能吗?
答:会的。
-
【问题9】CreateRtnOrderByRtnTrade是干什么用的?
答:这个参数和柜台参数有重合,是否打开要和券商确认清楚。如果和柜台同时打开,在成交回报接收的同时,会收到两个一样的的报单回报,若api版本配置文件中无此参数,请忽略。
-
【问题10】RecvSendDetach参数有什么效果,如何使用?
答:如果这个参数配置了1。首先,就意味着api内部没有单独的报单线程了,只有客户自己的报单线程了。那么CpuCore这个参数的第一个核配置就可以配置成-1,只需要绑定客户自己的报单线程即可,需要客户自己绑定。其次,报单性能会更好,如果抓网卡出去的报文时间戳-调用报单接口时的时间戳,会发现时间缩短了。但是要注意,api调用报单接口的时间增加了,这是正常现象,因为调用时间包括了发送到网卡的时间,而原来是不包括的。相当于做了整体的穿透优化。
-
【问题11】AllSuperviseInfo和SuperviseExtraInfo什么区别?
答:前者如果配置了,正确性由客户保证,api和柜台会不做任何更改直接落库到柜台表中。后者只是补充了公网IIP和IPORT的补充信息,柜台会和自动获取的部分进行拼接落库。
-
【问题12】登录报错55086具体是什么信息错误?
答:55086的报错对应信息是Api supervise information check fail,意思是api传输到柜台的监管信息不符合交易所要求。柜台会对以下重要构成元素进行校验,LIP,MAC,HD, PCN, CPU,若监管信息整体为空或以上元素为空(空即NA)则柜台会认为此监管信息无效,不允许登录,若出现该报错,请交易客户详细检查监管信息格式。