跳转至

做市商询价和报价

1.指令介绍

  • 1.请求询价指令

发起询价指令使用ReqForQuoteInsert函数。

参数CThostFtdcInputForQuoteField中,ForQuoteRef非必填,可由CTP交易核心自动生成。

交易所有询价价差的限制,期货公司可以在柜台上进行设置,一般如下

经纪公司代码合约代码交易所代码最新价价差
1008 SRC CZCE 0 8
1008 SRC CZCE 50 10
1008 SRC CZCE 100 20
1008 SRC CZCE 200 30
1008 SRC CZCE 300 50
1008 SRC CZCE 500 75

询价价差的判断过程

1) 看最新价对应于上面的哪一档次,确定价差的最小值

2) 计算买价和卖价的价差,看是否大于设置的价差(等于也不行)

3) 如果2)通过,那么询价单报入交易所,否则会被CTP直接拒绝。

如果询价的时候,当前合约价差不在范围,则报“CTP:当前价差禁止询价”。

另外,交易所还有询价时间间隔限制,一般在交易所端有控制,但郑商所控制在CTP柜台端,柜台设置例如:

对于郑商所,如果询价过于频繁,则会报“CTP:当前时间禁止询价”。其他交易所报错类似。

  • 2.接收询价响应

询价响应有以下几种:

函数名称说明
OnRspForQuoteInsert 只在录入错误的情况下返回,如字段校验失败、被限制询价等;可以通过ErrorID和ErrorMsg查看错误信息
OnRtnForQuoteRsp(交易spi) 暂时不用
OnRtnForQuoteRsp(行情spi) 录入成功后会推送,但是事先要调用行情api里的SubscribeForQuoteRsp去订阅该消息。
OnErrRtnForQuoteInsert 被交易所拒绝的询价,通过此接口返回;可以通过ErrorID和ErrorMsg查看错误信息
  • 3.查询询价

查询询价使用ReqQryForQuote函数。

接收查询结果使用OnRspQryForQuote函数

  • 4.请求报价指令

请求报价指令使用ReqQuoteInsert函数。

参数CThostFtdcInputQuoteField中,QuoteRef、AskOrderRef、BidOrderRef非必填,如果手工填则要求AskOrderRef小于BidOrderRef,否则会报“CTP:重复的报单”。

  • 5.接收报价响应

报价响应有以下几种:

函数名称说明
OnRspQuoteInsert 只在录入错误的情况下返回,如字段校验失败、无做市商权限等;可以通过ErrorID和ErrorMsg查看错误信息
OnRtnQuote 当报价录入成功后,CTP给出该报价响应
OnRtnOrder 报价录入成功后,如果是双边报价,CTP还会同时衍生出买卖两笔报价衍生单报入交易所,并返回相应的OnRtnOrder
OnRtnTrade 衍生单成交后,返回该成交回报

对于大商所,交易所在接受报价后,将不再维护报价状态的更新,所以客户端在接收CTP的报价回报时,其报价状态没有完整生命周期。 详见报价回调规则

  • 6.撤销报价请求

撤销报价请求使用ReqQuoteAction函数。

参数CThostFtdcInputQuoteActionField中,使用QuoteRef+SessionID+FrontID组合来撤单。

  • 7.撤销报价衍生单

撤销报价衍生单使用ReqOrderAction函数。

参数CThostFtdcInputOrderActionField中,使用FrontID+SessionID+OrderRef组合来撤单。

要注意的是,如果在报价的时候没有填写AskOrderRef和BidOrderRef,那么报价衍生单的响应OnRtnOrder里的FrontID和SessionID是0。

  • 8.查询报价

查询报价使用ReqQryQuote函数。

接收查询结果使用OnRspQryQuote函数

2.四所区别

下面列出四所在询价和报价上的一些区别。注意:以下内容仅供参考,如果交易所的规则发生变化,文档并不会实时更新。

  • 1.四所询价对比
 中金所大商所郑商所上期所
询价间隔如何设置 交易所限制 交易所限制 CTP柜台 交易所限制
普通投资者是否可接收询价申报 可以 可以 可以 可以
  • 2.四所报价对比
 中金所大商所郑商所上期所
是否支持平仓 支持 支持 支持 支持
是否必须关联询价 询价通知没有询价编号,不用填 询价通知有编号,但是非必填,如做市商要完成义务率则要填 询价通知有编号,但是非必填,如做市商要完成义务率则要填 询价通知没有询价编号,不用填
是否支持单边报价 不支持,提示“CTP:报单字段有误” 支持,数量填0 不支持,提示“CTP:报单字段有误” 不支持,提示“CTP:报单字段有误”
是否支持市价单 不支持,交易所提示:“已撤单报单被拒绝CFFEX:价格跌破跌停板” 不支持,交易所提示:已撤单报单被拒绝DCE:期权价格必须大于等于TICK! 不支持,交易所提示:“已撤单报单被拒绝CZCE:出错: 限价单价格不能为0或负数” 不支持
双边报价买卖数量可否不一致 可以不一致 可以不一致 CTP:不可以,提示“CTP:报单字段有误” CTP:不可以,提示“CTP:报单字段有误”
双边报价卖价是否必须大于买价 一定是低价买,高价卖。否则会形成自成交 必须,否则交易所提示: 已撤单报单被拒绝DCE:双边报价指令卖价必须大于买价 必须,否则交易所提示:已撤单报单被拒绝CZCE: 出错:卖价(40800)必需大于买价(94800) 一定是低价买,高价卖。否则会形成自成交
是否支持套保属性 支持 不支持,提示“CTP:该期权合约只支持投机类型报单” 不支持,提示“CTP:该期权合约只支持投机类型报单” 支持
是否会撤销前一次报价 不会撤销 不会撤销 会撤销 会撤销
是否支持撤单腿 可以 可以 不可以 不可以
双边报价开平可否不一致 可以 可以 可以 可以