综合交易平台API技术开发指南

2023-11-13

综合交易平台API技术开发指南 
(草稿) 
第一章 CTP 产品特性...................................................................................................................... 2 
第二章 CTP-API 技术基础 ............................................................................................................... 4 
第三章 CTP-API 证券交易 ............................................................................................................... 9 
模拟交易系统 ........................................................................................................................... 9 
证券交易实务 ........................................................................................................................... 9 
行情接口函数 ......................................................................................................................... 10 
交易接口函数 ......................................................................................................................... 10 
第四章 CTP-API 期货交易 ............................................................................................................. 10 
模拟交易系统 ......................................................................................................................... 10 
期货交易实务 ......................................................................................................................... 11 
行情接口函数 ......................................................................................................................... 11 
交易接口函数 ......................................................................................................................... 11 


 

第一章CTP 产品特性 
1. 如何获取综合交易平台(Comprehensive Transaction Platform 以下简称 CTP)证券(期
货)交易及行情 API 发布包、文档以及开发实例? 
【答:】所有 CTP 相关资料都在 CTP_API 开发技术群(59216315)及 CTP_API 开发技术
2 群(102497247)群共享中发布,请及时获取最新版本。CTP_API 开发技术群均遵守实
名制规则,在申请加入时请告知实名并在加入后及时修改群名片,对于不符合群公告要

求的群成员将不定期予以清除。


 
2. CTP 提供哪些证券(期货)投资者交易客户端软件? 
【答:】CTP 向全市场免费开放投资者交易及行情 API, 并不提供任何投资者使用的交易
客户端产品。
目前市场上使用的客户端产品都由第三方厂商提供(基于免费开放的 API
接入 CTP),此类第三方厂商与上期技术无任何关联关系。较为成熟的客户端产品包括
手工交易客户端(如 快期:http://www.kuaiqi.net/)及程序化交易客户端(如 盈佳
http://winnerfutures.com.cn/) 
 
3. 请问国内证券(期货)公司有哪些使用 CTP 系统? 
【答:】截至到 2012 年 10 月 19 日,期货公司主用系统用户 11 家(部分公司同时部署
一套或多套 CTP 次用系统),期货公司次用系统用户 23 家,证券公司次用系统用户 1
家。 
CTP 期货公司主用系统用户:中国国际、华泰长城、海通期货、申银万国、上海中
期、广发期货、恒泰期货、美尔雅期货、中证期货、华元期货、瑞龙期货、天鸿期货。 
CTP 期货公司次用系统用户:华西期货、华鑫期货、兴业期货、渤海期货、金源期
货、宏源期货、新湖期货、国泰君安、东证期货、南华期货、浙商期货、银河期货、经
易期货、西部期货、光大期货、中信建投、瑞达期货、久恒期货、国海良石、永安期货、
国金期货、方正期货。 
CTP 证券公司次用系统用户:华宝证券。 
 【综合交易平台 API 技术开发指南】 
 上海期货信息技术有限公司,2012 第 3 页 共 17 页
 
4. CTP 中的 BrokerID 是什么意思,在使用 CTP-API 时如何填写? 
【答:】CTP 最初设计时考虑了一套 CTP 系统供多家经纪公司使用的情形,CTP 则使用
BrokerID 从业务层面完全隔离不同经纪公司的交易、风控及结算用户的接入。BrokerID
的具体取值请咨询开户的经纪公司。 
 
5. CTP 中 UserIDInversterID 的区别是什么? 
【答:】经纪公司交易员为投资者下单时,UserID 为操作员代码,InversterID 为投资者
代码;投资者自己下单时,两者同为投资者代码。 
 
6. CTP-API 中的 OrderRefOrderActionRef 是什么意思,在客户端开发时如何填写? 
【答:】OrderRef 是 CTP 后台提供给客户端标识一笔报单的字段,客户端可以通过关键
字组(FrontID 、SessionID 、OrderRef)唯一确定一笔报单,客户端在报单发出时未填
写 OrderRef 字段,CTP 后台会自动为该报单的 OrderRef 字段赋值并返回给客户端。
OrderActionRef 与 OrderRef 功能类似,它是提供给客户端来标识一笔撤单。OrderRef 的
数据类型为字符数组,必须是阿拉伯数字字符。OrderRef(OrderActionRef)的取值必须
保证在同一会话内后发送的报(撤)单的 OrderRef(OrderActionRef)值大于之前的最
大值,在开发多线程的客户端时需要特别注意。 
 
7. CTP 是否提供 Level2 行情? 
【答:】CTP 期货交易系统 仅提供各交易所发布的普通一阶行情。部分证券公司部署的
CTP 证券交易系统提供 level2 行情,请联系证券公司获取 CTP-level2-API 发布包及 level2
行情服务器配置参数。 
 
8. CTP 是否提供历史行情,实际交易时需要取历史数据做相应计算,比如 atr(30)等,如
何处理?是否只能客户端通过别的接口自己补数据? 
【答:】 历史数据需要通过行情商解决。对于未及时登录及断线造成的行情数据丢失,
CTP 也不提供行情回补机制,因为行情的实时性对 CTP 的系统延时要求非常高,行情数
据的回补逻辑增加的系统延时以及网络资源的消耗限制了其在高速系统内部实现的空
间。程序化交易客户端可以通过多路连接的方式降低断线风险,或是托管策略服务器的【综合交易平台 API 技术开发指南】 
方式以提高到 CTP 连接的保障级别。 
 
第二章CTP-API 技术基础 
9. CTP-API 库包含哪些文件,分别包含什么内容? 

【答:】

1. 错误定义文件(error.dtd、error.xml)

2. 行情接口类定义文件(ThostFtdcMdApi.h)、

3. 交易接口类定义文件(ThostFtdcTraderApi.h)、

4. 客户端接口使用的业务数据结构定义文件 ( ThostFtdcUserApiStruct.h )、 

5. 客 户 端 接 口 使 用 的 业 务 数 据 类 型 定 义 文 件( ThostFtdcUserApiDataType.h )、 

6. 行 情 接 口 库 文 件 ( thostmduserapi.lib ,thostmduserapi.dll)、

7. 交易接口库文件(thosttraderapi.lib,thosttraderapi.dll)。

交易和行情接口类定义文件都包含 API 和 SPI 类定义,

客户端使用 API 向 CTP 后台发送请求,

CTP后台则使用 SPI 向客户端回传响应及回报。 

 CTP 证券接口库文件基本类似,文件名中使用“SSE”标识为证券接口。 


 
10. CTP-API 与 CTP 后台才何种协议通讯,如何通讯? 
【答:】CTP-API 使用建立在 TCP 协议之上 FTD 协议与 CTP 后台进行通讯,FTD 协议中
的所有通讯都基于某个通讯模式。通讯模式实际上就是通讯双方协同工作的方式。

CTP-API 涉及的通讯模式共有三种:

○1 对话通讯模式,是指由客户端主动发起的通讯请求,该请求被 CTP 后台接收和处理,并给予响应,

如报单、撤单及查询等,这种通讯模式与普通的客户/服务器模式相同。

○2 私有通讯模式,是指 CTP 后台主动向某个特定的客户端发出的信息,如报单回报、成交回报等。

○3 广播通讯模式,是指 CTP 后台主动向有客户端都发出相同的信息,如合约交易状态通知等。

 

通讯模式和网络的连接不一定存在简单的一对一的关系。也就是说,一个网络连接中可能传送多种不同通讯模式的报文,一种通讯模式的报文也可以在多个 
不同的连接中传送。 
 CTP-API 与 CTP 后台通讯,不同的通讯模式对应不同的通讯数据流,对话通讯模式
对应对话数据流(DialogRsp)和查询数据流(QueryRsp),CTP 后台不维护对话数据流
(查询数据流)的状态,通讯故障时,对话数据流(查询数据流)会重置,通讯途中的数据可能会丢失。 
私有通讯模式对应私有数据流(Private),私有数据流是一个可靠的数据流,CTP
后台维护每个登录用户的私有流,在一个交易日内,CTP-API 与 CTP 后台断线后恢复连
接时,CTP 后台会向使用 restart 或 resume 模式订阅私有数据流的用户重传全部(restart)
或断线期间(resume)的私有数据流。 
广播通讯模式对应公共数据流(Public),公共数据流与私有数据流类似,也是一个可靠的数据流。 
 
11. CTP-API 的实例会在客户端 生成哪些流文件?如何指定流文件存放路径? 

【答:】行情接口实例生成(DialogRsp.con,QueryRsp.con,TradingDay.con),

交易接口实例(DialogRsp.con,Private.con,Public.con,QueryRsp.con,TradingDay.con)。

以上流文件的存放路径都是通过接口实例创建函数(CreateFtdcTraderApi\CreateFtdcMdApi)参

数指定,如 CreateFtdcTraderApi(".\\flow\\")将会在当前目录的 flow 文件夹存放流文件。
客户端无法决定是否生成以上流文件,因此,在开发多 CTP-API 实例的客户端时需要注
意操作系统的文件句柄限制。另外,流文件中存储了客户端与后台的数据交互进度标识,
因此,多账号共用接口实例(或多实例共用流文件)将会造成数据紊乱或缺失。 
 
12. 基于 CTP-API 的客户端交易软件在每个交易日开始之前需要 执行哪些必要的步骤? 

【答:】

○1 创建 API 实例(CreateFtdcTraderApi)并为其注册对应的回调接口类的实例( RegisterSpi ) → 

○2 订 阅 私 有 流 ( SubscribePrivateTopic ) → 

○3 订阅公有流(SubscribePublicTopic)→

○4 注册名字服务器网络地址(RegisterNameServer)或注册前置机网络地址(RegisterFront)→

○5 初始化 API 与 CTP 前置服务器连接(Init),连接成功后回调 OnFrontConnected→

○5 发起客户端认证请求(ReqAuthenticate),客户端认证结果由 OnRspAuthenticate 返回;在 CTP 后台开启强制客户端认证(或客户端在本次会

话主动发起认证)后,只有通过客户端认证才能接入 CTP 后台→

○6 发起用户登录请求(ReqUserLogin),登录请求响应(OnRspUserLogin)返回登录结果→

○6 登录成功后,客户 端 在当前交易日 必 须 成功执行 一 次 “投资者结算结果确认(ReqSettlementInfoConfirm)”后才能开始交易。 


 
13. CTP 的客户端怎样实现对代理服务器的支持? 
【答:】CTP 的 API 提供了对代理服务器的支持,包括 socks4、socks4a 及 socks5,客户

端开发时只需通过传递给 API 不同的连接字符串就可实现,

例如: 

RegisterFront("socks5:// IP 地址或域名:端口号/user:pass@127.0.0.1:10001"); 


 
14. 什么是动态密码(OneTimePassword),在 ReqUserLogin 请求中如何填写该字段的值? 
【答:】动态令牌(时间令牌 TOTP)是 CTP 后台提供给证券(期货)公司投资者网上交
易使用的一种更强的身份验证工具,该功能目前由投资者和证券(期货)公司选择使用。
为 CTP 供应动态令牌的厂商有坚石诚信和飞天诚信。证券(期货)公司购买动态令牌后
将随附的种子文件导入 CTP 后台,并将各令牌及种子分配给到指定的投资者,使用动态
令牌的投资者在登录 CTP 时需要将动态令牌当时显示的字符填写到 OneTimePassword
字段,通过用户名/密码以及动态密码校验后方可登录成功。 
 
15. 什么是客户端认证,怎样获取认证码(AuthCode)? 
【答:】客户端认证是为了保证证券(期货)公司的投资者只能使用该公司认可的客户
端产品接入 CTP 后台进行交易。投资者在使用第三方提供或是自行开发的客户端产品接
入指定的证券(期货)公司 CTP 交易系统之前,必须向该公司提交用户端产品信息
( UserProductInfo )并 获得 认证码 ( AuthCode );之 后在发起 客户端 认证请 求时
(ReqAuthenticate)填写正确的用户端产品信息及对应的认证码即可完成客户端认证。 
 
16. CTP 的名字服务器是做什么用的,如何使用? 
【答:】上线 CTP 的证券(期货)公司可以选择部署名字服务器,客户端可以通过注册
名字服务器(RegisterNameServer)自动选择 CTP 后台分配的前置机地址接入 CTP 交易
系统,不再需要客户端直接注册 CTP 前置地址(RegisterFront)。 
 
17. CTP 是否提供加密手段以保护通过互联网传送的交易数据的安全? 
【答:】上线 CTP 的证券(期货)公司可以选择部署 ssl 前置供投资者客户端以 SSL 加密
方式接入 CTP 交易系统。客户端选择接入 ssl 前置时使用如下方式注册 ssl 前置地址: 
RegisterFront("ssl:// ssl 前置 IP 地址或域名:端口号"); 【综合交易平台 API 技术开发指南】 
 上海期货信息技术有限公司,2012 第 7 页 共 17 页
 
 
18. 如何接入 CTP 提供的 UDP 行情? 
【答:】创建行情 API 实例函数 CreateFtdcMdApi(const char *pszFlowPath = "", const bool 
bIsUsingUdp=false) 中,参数 bIsUsingUdp:为行情模式,该参数缺省或置为 false 时使用
TCP 行情,否则为 UDP 行情。无论使用 TCP 或是 UDP 行情,都必须注册相对应的 TCP
或 UDP 行情服务器地址。一般来说,CTP 的普通行情前置都为 TCP 行情服务器,使用
UDP 行情服务器需要向证券(期货)公司申请,且仅限专线或内网接入的投资者使用。 
 在注册行情前置服务器时,无论是 tcp 还是 udp,都必须使用 RegisterFront("tcp://
行情前置服务器 IP 地址或域名:端口号")的格式,因为 udp 传输存在不可靠性,所以在
登录、订阅及接收第一次行情时仍然使用 tcp 方式;并且无需为 udp 方式提供配置节点
参数,udp 仍然使用相同的地址和端口号。 
 
19. CTP 对每秒发送查询数量的限制是多少? 
【答:】CTP 仅对查询进行流量限制,对交易指令没有限制。如果有在途的查询,不允
许发新的查询。1 秒钟最多允许发送 1 个查询。返回值“-2”表示“未处理请求超过许
可数”,“-3”表示“每秒发送请求数超过许可数”。 
 
20. 程序使用 TradeApi 和 MdApi,并且把这 2 个 dll 放在同一个目录下。程序再次启动后,
如果某个 api 采用 Resume 模式订阅公有流/私有流,就会去参考相关的本地流文件。可
能会导致数据异常? 
【答:】相同目录下的 2 个 dll 会把数据写入相同本地流文件,导致 2 个 dll 不断的覆盖
对方写下的流文件。程序再次启动时,TradeApi 可能去参考 MdApi 写下的流文件,所以
导致数据流不连续。解决方法:如果一定要把 2 个 dll 放在相同的目录下,可以在创建
api 时指定流文件的路径。使得不同的 dll 写入不同流文件。 
static CThostFtdcUserApi *CreateFtdcUserApi(const char *pszFlowPath = "", const bool 
bIsUsingUdp=false); 
 
21. 请问 api 是否多线程安全的(linux 以及 windows 平台)? 
【答:】api,spi 是不同的线程、api 可以同时被多个线程调用、也就是你说的线程安全性、
这些特性和平台无关。 【综合交易平台 API 技术开发指南】 
 上海期货信息技术有限公司,2012 第 8 页 共 17 页
 
 
22. 测试时发现 CThostFtdcMdSpi 有个比较严重的问题,就是使用 Release()退出清理对象时
会出现死机,并且频率很高,怎样解决? 
【答:】请参考以下代码的释放顺序。 
template <class TUserApi> 
void CUserApiEnv<TUserApi>::UnInitialUserApi() 

 // 释放 UserApi 
 if (m_pUserApi) 
 { 
 m_pUserApi->RegisterSpi(NULL); 
 m_pUserApi->Release(); 
 m_pUserApi = NULL; 
 } 
 // 释放 UserSpi 实例 
 if (m_pUserSpiImpl) 
 { 
 delete m_pUserSpiImpl; 
 m_pUserSpiImpl = NULL; 
 } 

 
23. CTP 的 LIB,是几字节对齐的,是一字节,还是八字节,还是其它的? 
【答:】是标准的 8 个字节对齐。 
 
24. 使用查询函数时怎样设置查询条件? 
【答:】CTP 提供了查询函数及查询相应函数,客户端可以使用这些函数向后台查询投
资者以及基础数据信息,查询条件各字段不设置时多数查询函数会返回对应经纪公司所
有记录。如查询合约信息: 
 
CThostFtdcQryInstrumentField req; 
 memset(&req, 0, sizeof(req)); 
int iResult = pApi->ReqQryInstrument(&req, ++iRequestID); 
这样,在对应的查询响应 OnRspQryInstrument 中将会获得所有有效的合约。 
 
第三章CTP-API 证券交易 
模拟交易系统 
25. CTP 提供证券模拟交易系统供投资者开发、测试试用: 
交易前置: ctp24-front1.financial-trading-platform.com:41205 
 ctp24-front2.financial-trading-platform.com:41205 
行情前置: ctp24-front3.financial-trading-platform.com:41213 
 ctp24-front4.financial-trading-platform.com:41213 
经纪公司代码:2011 
 
26. 怎样申请上期技术证券模拟交易系统测试账号? 
【答:】可以使用以下账号接入上期技术提供的证券模拟交易系统:1000021-1000030
(共 10 个公用帐号,请勿修改密码),密码均为 1。 
证券交易业务 
27. CTP 证券交易系统支持哪些业务类型? 
【答:】CTP 证券交易系统支持普通股票买卖、ETF 买卖及申购赎回、国债回购卖出、融
资融券等业务类型。 
 
28. CTP 证券交易系统支持哪些交易指令? 
【答:】CTP 证券交易系统支持市价、限价报单及撤单等交易指令。报单(买、卖、申
购及赎回)使用ReqOrderInsert函数,市价单(报单价格条件:THOST_FTDC_OPT_AnyPrice,
有效期类型:THOST_FTDC_TC_IOC,价格:不需要),限价单(报单价格条件:
 
THOST_FTDC_OPT_LimitPrice,有效期类型:THOST_FTDC_TC_GFD,价格:指定价格)。 
 ReqOrderAction 函数完成撤单操作,使用数据序列(BrokerID、InvestorID、OrderRef、
FrontID、SessionID、InstrumentID、ActionFlag=THOST_FTDC_AF_Delete)或(BrokerID、
InvestorID、exchangeID、traderID、OrderLocalID、ActionFlag=THOST_FTDC_AF_Delete)
定位报单完成撤销。 
 
行情接口函数 
交易接口函数 
第四章CTP-API 期货交易 
模拟交易系统 
29. CTP 提供期货模拟交易系统供投资者开发、测试试用: 
交易前置: asp-sim2-front1.financial-trading-platform.com:26205 
行情前置: asp-sim2-md1.financial-trading-platform.com:26213 
经纪公司代码:2030 
 
30. 怎样申请期货模拟交易系统测试账号? 
【答:】准备为 CTP 开发交易客户端的软件厂商,期货投资者可以联系国内任意一家期
货公司向上期技术服务台提出申请。 
 
31. 请问模拟交易系统交易时间? 
【答:】国内证券、期货市场正常交易时间均可交易,每个交易日晚 17:30 到凌晨 5:
00 也可进行交易,节假日正常情况下都可进行交易。 
 
32. 请问期货模拟环境上期所是非交易状态,可其它交易所没有,为何其它交易所的品种也
不动,没有交易了? 【综合交易平台 API 技术开发指南】 
 上海期货信息技术有限公司,2012 第 11 页 共 17 页
 
【答:】模拟环境只有上期所的交易所系统,其他交易所的合约也是在上期所系统模拟。 
 
33. 我 9 点前就开机了,但不知为何到 9 点 4 分左右期货模拟环境才开始接收到行情数据 
【答:】期货模拟环境行情转发在状态从“连续交易”切换到“非交易状态”时会停止行情
转发 5 分钟,主要是为了保证在收盘后 5 分钟内行情静止以方便德邦期货提取模拟大赛
的客户权益数据。这种状态切换发生在集合竞价结束时,由于“非交易状态”仅一分钟,
所以休息 5 分钟就到了 9:04 分,而且模拟环境并不像生产环境每天校时(而是一个月),
所以就有可能看到的延时会更长。 
 
期货交易业务 
行情接口函数 
交易接口函数 
34. 下单交易是否需要经过期货公司的服务器?期货公司服务器坏了是否会影响到 CTP 的
正常交易? 
【答:】CTP 是一套多期货公司共用的交易、结算系统,全部系统部署在上期技术的机
房内。因此,期货公司的服务器状况对其没有任何影响;而且,CTP 系统是由上期技术
统一运行维护,所以稳定性应该没有问题! 
 
35. 我们搞接口与其他的软件连接,只要符合 ctp 的接口。结算的问题我们不需要考虑了吧? 
【答:】CTP 交易、风控和结算子系统完全独立,现在公开发布的是交易接口。开销户、
风控及结算等管理工作由期货公司管理人员通过上期技术提供给期货公司的 CTP 管理
平台和风险控制客户端完成。 
 
 
36. 请问投资者结算结果确认是什么意思?有什么用? 
【答:】投资者在登录后首先需要确认自己的结算单(即账单),结算单确认后才可以进
行交易操作。客户端可以使用 ReqSettlementInfoConfirm 请求确认结算单,请求时只需【综合交易平台 API 技术开发指南】 
 上海期货信息技术有限公司,2012 第 12 页 共 17 页
 
要填写经纪公司代码和投资者代码。查询结算单使用 ReqQrySettlementInfo,不填日期,
表示取上一交易日结算单。使用 ReqQrySettlementInfoConfirm 可以查询当天客户结算单
确认情况,无记录返回表示当天未确认结算单,为避免客户当天多次登陆多次重复确认
结算单,建议在确认前先查询当天是否已经确认,如果客户已经确认过则不需要再次重
复确认。 
37. 可以设置止损否,限价止损、市价止损及 gtc 止损之类的? 
【答:】止盈止损等条件单将在 V4.1 版本推出。gtc 不会支持,现在国内的期货交易所
还不支持过夜挂单!CTP 目前也只是 7:30 起动系统,早的话 8:00 可以挂预埋单了。 
 
38. 可以在 CTP 上面设置保证金的算法--结算价/昨结算价/成交均价/开仓价 
四种算法分别都是什么意思? 
【答:】保证金算法:历史仓用昨结算价计算,今仓可以选择(成交均价/开仓价/结算
价),这里的结算价是指最新价,该项配置由期货公司管理人员在后台进行配置,客户
端可以通过API查到该配置的内容(v4.1 版本将支持该项查询,所以现在快期是在前
端自己做配置)。 
 
39. 逐笔报单的预冻结资金哪里可以看到?需要自己计算的话如何计算? 
【答:】冻结保证金=(成交均价|开仓价|最新价) * 未成交手数 * 合约乘数 * 保证金率
(按金额)+ 未成交手数* 保证金率(按手),参与计算的价格选择参照保证金算法设置。 
 
40. 可提比例怎么查,基本保证金是什么? 
【答:】可提资金等实时性要求不高的数据可以直接从后台查询,客户端无需知道“可
提比例”。“基本保证金”又叫“保底资金”和“基本准备金”,TThostFtdcMoneyType 
Reserve。 
 
41. 平仓盈亏和持仓盈亏是在计入“可用资金”并应用算法时是汇总后统一计算还是分笔计
算? 
【答:】汇总计算后再应用相应算法,如“浮盈可开仓”是把所有的持仓浮盈浮亏加总
后再计入“可用资金”。 
42. 下午开盘前是否有集合竞价?集合竞价时是否会收到行情更新?集合竞价时是否可以【综合交易平台 API 技术开发指南】 
 上海期货信息技术有限公司,2012 第 13 页 共 17 页
 
发市价单? 
【答:】下午没有集合竞价。集合竞价时不更新买卖价/量。集合竞价时发送的市价单会
被交易所认为没有对手方,作为交易不成功来自动撤单。 
43. 请问报单状态中的在队列中是什么意思? 
【答:】表示报单已经在交易所的撮合队列中。 
44. 真 实 环 境 中 的 OnRtnDepthMarketData() 返 回 的 成交金额 Turnover 及 当日均价
AveragePrice 两个字段是不是不正确? 
【答:】是的,交易客户端用到该数据时需要自行调整,调整规则如下: 
交易所 当日均价 成交金额 
郑商所 正确 乘以合约乘数 
大商所 除以合约乘数 正确 
上期所 除以合约乘数 正确 
 
45. 查询历史平仓明细是哪个函数? 
【答:】查历史结算单,CTP 的历史报单只能通过期货公司管理人员在管理平台查询,
客户端需要历史交易记录可以通过查询历史结算单的方式获取。 
 
46. 通过 ReqQryInstrumentMarginRate 获取保证金率时,在返回的数据中,是不是全部都是
绝对值?如果是相对交易所的费率的话,那么交易所保证金率通过什么方法获取? 
【答:】ReqQryInstrumentMarginRate 返回的保证金率已经包含了交易所保证金率及保证
金率调整,也就是说返回最终的比率,即绝对值。 
 
47. 持仓查询记录中的昨持仓是今天开盘前的一个初始值,不会因为平昨或者平仓而减少。
当前时侯的昨持仓=总持仓-今持仓。YdPosition := Position - TodayPosition。 
 
48. OnHeartBeatWarning 在什么情况下发生?我试了自己断线,路由器断线,狂开 bt 下载
都没发生过这个事件。 
【答:】永远不会发生,已经对 API 用户屏蔽了该响应。 
 
49. 委托单的状态中怎么没有“部成部撤”这个状态呢?“未成交不在队列中”与“撤单”的区别
是什么? 
【答:】“部成部撤”即“部分成交不在队列中”。CTP 有一个自动挂起标志,如果设置
了该标志,那么断线客户的未成交报单将被自动挂起,这时该报单的状态就是“未成交
不在队列中”。自动挂起标志是从上期所系统沿用过来的东西,原来设计的“自动挂起”
报单,可以撤单也可以通过“激活”指令让报单重新进入队列。目前请客户端将“自动挂
起标志”设置为 0,永远不挂起。 
 
50. 为什么每次连接服务器时,最大报单引用(MaxOrderRef)都是 1 开始的? 
【答:】FrontID + SessionID + OrderRef,作为主键,当 FrontID + SessionID 变更后
MaxOrderRef 将重置。 
 
51. 报单引用是每发一次单就要递增,还是该 SESSION 内一直使用 LONGIN 时取得的最大报
单引用? 
【答:】报单引用由客户端自主管理,后台仅要求该字段递增。 
 
52. OnRtnOrder 每次在登陆时都会把上一次的下单结果再重新返回一次,这样是不是有些
不妥啊? 
【答:】CTP 的公有流和私有流提供三种订阅方式,TERT_RESTART:从本交易日开始重传,
TERT_RESUME:从上次收到的续传,TERT_QUICK:只传送登录后的内容。每次都重传是因
为在订阅时(SubscribePrivateTopic/SubscribePublicTopic)选择了 TERT_RESTART 方式。 
 
53. 我查某个合约的手续费,返回品种,不能认为所有合约都是按这个设置的?也有可能有
个别合约是按合约设置的? 
【答:】是的,查询费率时返回品种只说明该合约的费率设置是取自对应品种的费率设
置,后台没有对该合约进行特殊的设置。 
 
54. 如果发送一个报单委托价格在停板之外。按道理如果 CTP 校验失败,那么应该从
OnRspOrderInsert 返回错误;如果是交易所校验失败,那么应该从 OnErrRtnOrder 来返
回错误。现在情况是这两个地方都不返回错误,而是从 OnRtnOrder 返回。然而
OnRtnOrder 却没有错误代码,仅是状态改变,没法捕捉异常。其实用户报单后,如果
正确根本不会“马上收到报单响应 OnRspOrderInsert”,只有报单被 CTP 拒绝才会收到。 【综合交易平台 API 技术开发指南】 
 上海期货信息技术有限公司,2012 第 15 页 共 17 页
 
【答:】超出涨跌停板的判断是在交易所处理,所以,CTP 收到报单就新增一条记录,
然后收到交易所的 OnErrRtnOrder 后,修改委托表里的记录,触发 OnRtnOrder。
OnErrRtnOrder 的作用是:CTP 在检查委托发现错误时,会给发出委托的投资者发出
OnRspInsertOrder,同时发出 OnErrRtnOrder 给相关的交易员,所以,作为投资者可以不
关心 OnErrRtnOrder。 
 
55. 还有就是 OnRtnOrder 有重复推送的问题。比如发一个单,OnRtnOrder 推了一个“已报”
状态回来。然后我开始撤单,撤单一报入,OnRtnOrder 首先又推一个“已报”的状态
回来,然后才是“撤消”的状态。重复推送当然不会出错,不过会影响效率。 
【答:】投资者发出 1 个操作,都会收到 2 条回报。具体说,1,发出 1 笔委托,2,CTP
发出“已提交”状态回报,3,CTP 转发交易所的“未成交”状态回报。 
下一个动作:1,用户发出撤单;2,CTP 修改 active User,再发出“未成交”状态回报;
3,CTP 转发交易所的“已撤单”状态回报。就是 CTP 应答一下,然后交易所又应答一
下。都是把对应的委托状态从 OnRtnOrder 推回来。 
 
56. 从 OnRtnOrder 中有没有办法区分这是从 CTP 返回的包还是从交易所返回的包? 
【答:】对客户端来说,所有返回包都由 CTP 发出。 
57. 我想请教,报单状态回报或下单撤单反馈里面我怎么区分是不是交易所小结休息引起
的?这样我好下预埋单。 
【答:】OnRtnInstrumentStatus 会通知当前交易所状态变化 
58. 哪些报单状态是报单的最终状态,不会再改变了的? 
【 答 :】 以 下 状 态 为 报 单 的 最 终 状 态 : THOST_FTDC_OST_AllTraded 、
THOST_FTDC_OST_Canceled 、 THOST_FTDC_OST_NoTradeNotQueueing 、
THOST_FTDC_OST_PartTradedNotQueueing。 
59. ReqOrderAction 里面的:报单的挂起、报单的激活、报单的修改这几个功能现在有没有
实现? 
【答:】目前只支持撤单。 
60. 平今仓的时候,对大连或者郑州使用 CloseToday 是否有问题? 
【答:】后台有对应的转换,对 DCE 和 CZCE 的仓位使用平今或平昨都转换为平仓. 
61. 判断一个合约是否可以交易,如果使用 InstLifePhase 判断,那么在上市日和到期日这一【综合交易平台 API 技术开发指南】 
 上海期货信息技术有限公司,2012 第 16 页 共 17 页
 
天,合约生命周期状态是 1(上市),还是 3(到期)?还是直接用 IsTrading 去判断? 
【答:】CTP 交易后台从管理平台或是交易所取得“合约生命周期状态”及“当前是否
交易”两个字段的值,由于跟后台的设置关联,且 DCE 及 CZCE 并不会在盘中推送单个
合约的状态,因此并不能通过这两个字段及时获得合约是否交易的信息。要查某个合约
当天是否可以交易,可以查 IsTrading,要看现在是否可以交易,就看合约状态(仅上期
所)或者交易所状态。 
62. TThostFtdcCombOffsetFlagType 有几个类型,分别代表什么意思啊。 
【 答 :】 TThostFtdcCombOffsetFlagType 是 一 个 数 组 , 元 素 值 的类型 为
TThostFtdcOffsetFlagType,单腿合约交易只需要填[0]位,组合合约交易时各分腿的开平标志
从[0]开始,每个元素对应一条分腿,暂定为 5 位,目前市场上最长的组合合约为 3 条腿。 
 
63. 银期转账里,业务功能码,应该填什么? 
【答:】 
101001 银行发起转帐开户 
101002 银行发起签约销户 
101003 银行发起银行帐号变更 
102001 银行发起银行资金转期货 
102002 银行发起期货资金转银行 
103001 银行发起冲正银行转期货 
103002 银行发起冲正期货转银行 
104001 银行发起查询资金帐户余额 
104003 银行发起查询账户对应关系 
104005 完成银行向期货公司发起验证期货投资账号密码交易,并可查询账户信息 
104006 银行发起查询期货公司系统状态 
105099 银行下传对帐明细文件 
202001 期货发起银行资金转期货 
202002 期货发起期货资金转银行 
203001 期货发起冲正银行转期货 
203002 期货发起冲正期货转银行 
204002 期货发起查询银行余额 【综合交易平台 API 技术开发指南】 
 上海期货信息技术有限公司,2012 第 17 页 共 17 页
 
204004 期货发起个人客户查询银期直通车开通情况 
204005 期货端发起查询转帐明细 
204006 期货公司发起查询银行系统状态 
204999 期货端发起查询客户平台当日流水 
206001 期货发起银行资金转期货资金(入金)通知 
206002 期货发起期货资金转银行资金(出金)通知 
901001 个人开通银期直通车 
901002 个人解除银期直通车 
905001 平台发起期商签到 
905002 平台发起期商签退 
905003 期货发起同步密钥 
 
64. 请问 CTP 支持哪些下单类型?我在文档里面看到可以直接在报单的时候设置限价单,市
价单和触发单。这些好像交易所目前官方还只支持限价单吧? 其他实现都是 CTP 实现
的吗? 
【答:】CTP 支持国内三家商品交易所正式对外开放的所有下单类型,大商所和郑商所
提供套利交易指令和市价单,大商所提供止盈止损等条件单。CTP 在后台提供非交易时
段的预埋单,条件单也将在 v4.1 版本中完成。 
 
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

综合交易平台API技术开发指南 的相关文章

  • 解决GridView控件的居中问题

    先简单介绍一下GridView控件 它被称为列表视图控件 用于在一个列表中显示数据源的值 其中每列表示一个字段 每行表示一条记录 简单来讲 就是一个列表 可以将数据源绑定到该列表控件上 在浏览器上显示出来就是存放着数据的列表 我在VS201
  • jetbrains IDE 关闭自动提示

    去掉Auto display code completion前面的对勾
  • python基础知识之函数的定义及用法

    目录 前言 一 函数的定义和调用 1 函数的作用 2 函数名的命名规范 3 函数的返回值 return 4 调用函数 二 函数的参数 1 函数形参和实参 2 参数传递的两种形式 3 函数定义的三种形参 三 函数的作用域 1 全局变量 2 局
  • Android 5.0学习之AnimatedVectorDrawable

    http blog csdn net cym492224103 article details 41677825 前言 示例代码地址 animated vector drawable 几句代码 几个配置文件即可实现以上效果 流畅的体验 无缝
  • replaceAll用法 (vue搜索框过滤数据高亮显示)

    举例 vue搜索框过滤数据高亮显示 在计算属性里面写一个方法 先用filter过滤item 然后用indexof方法查找是否包含 item name index0f this txt gt 1 indexof gt 1表示包含 this t
  • 01-不是过去的原因而是现在目的

    01 不是过去的原因而是现在目的 例1 如我们现在不敢或不喜欢与人交往的性格 甚至闭门不出 我们很自然的认识是受小时候在父母虐待下长大或父母关系不和 或在学校 职场收到耻辱 家庭环境等过去因素的影响而留下心灵创伤 也就是我们内心把原因归结为
  • 跨平台C/C++开发软件CLion使用教程:入门指南(二)

    本篇教程主要介绍 CLion 入门指南里关于协助编码的内容 点击获CLion官方正式版 自动完成 Ctrl SpaceCLion 中的基本补全在您键入时工作 并提供所有可用补全的列表 要过滤此列表并仅查看与预期类型匹配的建议 请使用智能完成
  • JAVA 练习题(4)

    数字资产的概念被提出来 用于给数字资产加密的业务变得非常火热 现有一套用于给数字资产加密的系统专门用于产生加密密码 请设计一个方法用于给数字密码进行加密 加密规则如下 根据数字长度的每位数 给每位数 5 再对10求余 最后将所有数字反转 得
  • 使用Electron来给若依系统打包成exe程序,出现登录成功但是不跳转页面(已解决)

    阿丹 之前解决了css找不到文件等问题 那么新问题就来了 问题描述 进入到登录页面发现问题 点击登录一直在转圈 但是不进去 更诡异的是 后台相应的很快 已经显示操作成功了 甚至 redis中都存了token了 并且前台的验证码图片还能正常访
  • STM32串口中断处理中.是否需要清除接受/发送完成/中断 标志位的问题.

    关于是否在串口中断服务程序中 是否加清除标志位操作 手册有说明 正常的读写DR寄存器都能达到清楚标志的效果 所以除了多缓存通信的情况下 没必要增加清除标志位 两个清除函数 USART ClearFlag 清除完成标志位 USART Clea
  • ShardingSphere-JDBC 5.0.0-beta使用:数据源拒绝建立连接,来自服务器的消息:“连接太多”

    问题分析 I wonder if the jar package is missing This is a non Maven project 问题处理 调试发现 问题出在少了蛮多依赖包 由于是非maven项目 有些jar包还可能冲突 版本
  • Java Robot 编写脚本机器人(一)基本用法测试

    Test public void test throws AWTException 获取机器人类 Robot robot new Robot 获取当前屏幕 Point point MouseInfo getPointerInfo getLo
  • 【Python_PySide2学习笔记(一)】PySide2动态加载UI方式,重写关闭窗体事件

    PySide2设置关闭提示窗口 动态加载UI方式 重写关闭窗体事件 前言 转载 https blog csdn net qq 44703282 article details 119830807 在此链接中介绍了两种重写关闭提示窗体事件的方
  • Vue CLI3配置详解-----脚手架的认识以及项目初始化、项目目录结构

    使用Vue CLI3创建项目 脚手架 scaffold 指施工现场为工人操作并解决垂直和水平运输而搭设的各种支架 建筑界的通用术语 写在前面 如果你只是简单的写几个Vue的 Demo 程序 那你不需要Vue CLI 如果你 开发大型项目 那
  • React中函数组件与类组件的区别

    React中函数组件与类组件的区别 一 组件定义 函数组件 import React from react function Index props const value setvalue useState React return di
  • C语言的可变参数函数理解与应用

    一 可变参数函数的理解 官方定义 C语言允许定义参数数量为可变的函数 这称为可变参数函数 它与传统意义上的强制定义固定参数的函数不同 可变参数函数应用最广的是格式化输入输出函数 如printf scanf 可支持任意参数输入输出 可变参数函
  • 【OpenCV C++】光流法进行运动目标检测

    OpenCV C 光流法进行运动目标检测 什么是光流 程序说明 代码 运行效果 什么是光流 光流 optical flow 是空间运动物体在观察成像平面上的像素运动的瞬时速度 光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性
  • c/c++时间类型

    1 time t time t 类型 这本质上是一个长整数 表示从1970 01 01 00 00 00到目前计时时间的秒数 如果需要更精确一点的 可以使用timeval精确到毫秒 time t cur time NULL 2 struct

随机推荐

  • 刷题day_11:两个数组的交集

    题意描述 给定两个数组 编写一个函数来计算它们的交集 有两种方法 1 利用unordered set容器编写 2 和上一题一样利用数组来编写 利用unordered set容器的C 代码如下 class Solution public ve
  • solr搜索引擎 copyField字段 检索查询

    添加一个文档 查询添加的文档 以上详细介绍了query里面的参数详解 当不输入任何条件时 进行查询 看看返回结果 返回了刚才添加进去的文档 添加文档时 我们添加了id title content 分词 那么如果我们想自己定义 该如何 id
  • 彩票系统的Java实现

    能够实现的功能有六个 1 充值 2 查看账户资金 3 开始购买彩票 4 开奖 5 查看当前购买的彩票 6 退出系统 import java util Arrays import java util Random import java ut
  • Docker使用Link在容器之间建立连接

    在使用Docker的时候我们会常常碰到这么一种应用 就是我需要两个或多个容器 其中某些容器需要使用另外一些容器提供的服务 比如这么一种情况 我们需要一个容器来提供mysql的数据库服务 而另外两个容器作为客户端来连接使用mysql数据库服务
  • arm64 ubuntu18.04桌面文件系统制作

    适用于RK3568 亲测有效 1 下载ARM64根文件系统 ubuntu base 18 04 5 base arm64 tar gz http cdimage ubuntu com ubuntu base releases 18 04 r
  • timing 分析基本概念-min period

    min period 一般对memory 进行最小周期的检查 如有一个memory 最高频率是1GHz 但是我们想让它工作到2GHz 那么就会出现min period 的violation 在library 中可以查到timing type
  • 【模板】归并排序

    题目链接 https www luogu com cn problem P1177 1945年由约翰 冯 诺伊曼 John von Neumann 首次提出 如上图所示 归并排序的执行流程为 不断地将当前序列平均分割成 2 个子序列 直到不
  • qt:构建失败,输出Error while building/deploying project SoftwareForAUV (kit: Desktop Qt 5.15.2 MinGW 64-bit

    打开qt项目的时候报错 我能想到就两个原因 1 路径中含有中文名 常见的就是项目拖到桌面 直接打开pro文件 如果 路径中有中文名 就会报错 2 编译器选择了select all 在打开项目选择编译器的界面 选择了安装的多个编译器 解决办法
  • Java连接超时

    java net SocketTimeoutException connect timed out 通常表示无法建立到远程服务器的连接 可能是由于网络问题或目标服务器不可用导致的 这种情况下 可以尝试以下几种解决方法 检查网络连接 可以检查
  • Express基本使用(Node.js)(1)

    Express基本使用 Node js Express是基于node js内置http模块二次开发的中间件 可以提高程序员的开发效率 01 使用express发送get和post请求 导入express模块 const express re
  • 自定义控件玩套路以及canvas StaticLayout的使用

    遇到自定义控件的时候很苦恼 不知道从哪里下手 鄙人也是新手 记录下开发的思路 我们有时候需要把某一个功能封装成控件 很简单 写好布局 将其inflate出来 必要的属性 就跟普通的activity一样定义即可 context直接调用getC
  • ShuffleNet V1、V2 & EfficientNet & 迁移学习

    一 ShuffleNet V1 ShuffleNet Unit中全是GConv和DWConv 在左侧的网络结构中 对于输入特征矩阵 有串行的GConv1和GConv2 对于普通的组卷积的计算 只针对该组内的channel的信息进行计算 组卷
  • HDU - 1827 Summer Holiday(强连通分量+贪心)

    题目大意 To see a World in a Grain of Sand And a Heaven in a Wild Flower Hold Infinity in the palm of your hand And Eternity
  • 分布式限流之 - Nginx层限流

    写在前面的话 高并发的三驾马车 缓存 降级 限流 这里仅仅说限流 常用的限流算法有 计数器算法 固定窗口算法 滑动窗口算法 漏桶算法 令牌桶算法 每种算法的特点和优缺点这里不展开 比较适用的限流算法基本都会选择令牌桶 并且这里基于Sprin
  • 《Perl语言入门》读书笔记(五)输入与输出

    1 读取标准输入 使用
  • Android Data Binding

    请注明链接 https blog csdn net feather wch article details 79789597 Data Binding 1 DataBinding引入 android compileSdkVersion 23
  • 自动备份脚本linux下,Linux七牛云自动备份脚本

    1 下载七牛云自动备份脚本 目录如下 image png 进入此目录 执行命令 python setup py install 需要python2 7以上 安装完毕 目录如下 image png 2 编写配置文件 备份名称 用于标记 BAC
  • 基于Qt实现分块下载网络文件

    实际开发经常遇到下载网络文件的需求 对于一些比较大的网络文件 如果通过网络接口一次性读取数据后再写入文件 会占用较大的内存 比较好的做法是 先通过QNetworkRequest ContentLengthHeader获取文件的大小 然后设定
  • LED摩托车灯升降压恒流芯片OC4000电路原理图

    LED摩托车灯升降压恒流芯片OC4000是一种可以将不稳定的直流电压转化为稳定的直流电压的电子元件 特别适合用于需要大电流 高电压的LED灯具中 它是一种高精度 高效率的降压型LED恒流驱动控制芯片 可以将电压降至适合LED灯珠的安全范围
  • 综合交易平台API技术开发指南

    综合交易平台API技术开发指南 草稿 第一章 CTP 产品特性 2 第二章 CTP API 技术基础 4 第三章 CTP API 证券交易