一、CTP的API分为行情API和交易API介绍:
其中行情API提供两类接口,用户通过CThostFtdcMdApi发送请求,通过CThostFtdcMdSpi收到接口的相应回报。
交易API同样也有两类接口,用户通过CThostFtdcTraderApi发送请求,通过CThostFtdcTraderSpi收到接口的相应回报。
二、CTP的报单流程:
CTP终端报单指令(ReqOrderInsert)报入CTP后台,首先要经过数据同步状态、会话、报单字段、合约、经纪公司、投资者、是否确认结算单、交易权限、持仓资金检查和冻结、只能平仓权限检查及交易所会话检查等,CTP报单检查失败则通过OnRspOrderInsert返回报单错误(CTP打回的错单),根据CTP介绍,OnRspOrderInsert属于对话通讯模式,即普通的客户/服务器模式,也就是说服务器只会将此类返回信息发送给对应的客户会话,通讯故障发生时,此类数据流也存在丢失的可能。
当成交发生后(全部成交或部分成交),CTP后台将向客户端返回OnRtnTrade消息,同时也会返回OnRtnOrder消息,其中rderSubmitStatus为“已经接受”,OrderStatus为“全部成交”或“部分成交还在队列中”。
三、关于下单的一些说明:
通过对下单类型的不断尝试,必须要填限价单否则无法下单成功; 下单之前必须要确认,但是CTP服务器有时会报错。
三、statusmsg回报各种错误总结:
(1)CTP不合法登入:检查登入用户名或者密码,是否有错
(2)CTP无此权限:每天登入之前必须要确认用户交易信息,且保证保单下单的用户信息和登入的信息一致
(3)报单字段错误:检查是否有漏掉必须的报单字段或者报单的值填写正确, 有些标的的限价单价格为int类型,浮点类型上传也会报此错误
(4)价格跌破跌停板:限价单下单的价格和期货正式价格差异较大
(5)订单已提交,且已撤销:由于填写的是已立即成交否则撤单,所以没立即成交就会撤销