各交易所行情区别
目前,各交易所提供的行情存在一定的差异,主要体现在字段数量、字段计算方法、字段含义上,甚至行情每秒tick数都不尽相同。CTP对交易所的行情只做转发,但对于有些交易所不发的字段,会做一定程度的补充,例如郑商所的成交金额,交易所不发这个字段,但该字段对于行情又十分重要,因此CTP会计算并补填;对于交易所有值的字段,CTP不会对其做更改,只做转发。
本文针对CTP给出的各所行情,选取一些重要差异,逐一说明,以帮助用户更快上手,降低开发成本。交易所行情本身的差异不在本文讨论范围。如需了解行情的订阅方法,请参阅行情接口。
1.字段差异
- ExchangeID(交易所ID)
期货普通前置不推送exchangeid; 期货mdfront推送exchangeid ;个股的普通前置推送exchangeid
- Tradingday(交易日)
郑商所行情的Tradingday是自然日,其他交易所的Tradingday都是交易日。
- TrunOver(成交金额)
郑商所行情中,不推送成交金额,CTP的TCP行情会自行计算并填补,成交金额=成交均价*成交数量。
- AveragePrice(成交均价)
除了郑商所外,其他交易所都不推送成交均价,CTP的TCP行情会自行计算并填补,成交均价=成交金额/成交数量
2.每秒tick数
郑商所的行情可以配置为4Tick/秒或2Tick/秒,该配置在CTP的郑商所报盘ini里。
czcemdserver.ini中,MarketID=ZCE001为两笔,行情源是tcp行情。MarketID=ZCE011为四笔,行情源是udp行情。如欲配置成4笔,请咨询上期技术当前mdserver版本是否支持。
使用mdfront的,在mdfront.ini中,郑商所配置下,ProtocolVersion=2为两笔,ProtocolVersion=11为四笔。
特别注意:交易所4Tick/秒的行情不会推送日终收盘价,CTP转发出来的收盘价是夜盘的收盘价,而非日终收盘价,请注意区分。
其他交易所的行情只能是2Tick/秒,即500毫秒推一次,一秒两次。
3.组合合约行情
只有大商所和郑商所有组合合约行情,其他交易所没有组合合约行情。
组合行情仅有少数字段有值,例如买卖价量、涨跌停板;大部分字段都没有值,例如最新价、成交金额、成交量等。
特别提醒:部分终端的组合行情有最新价,是因为终端自己计算了最新价。并非行情订阅的有问题。
4.UDP行情和TCP行情区别
UDP行情只做纯转发,因此交易所不发的字段,在UDP行情里就保持为空转发出去。
TCP行情会补填一些字段。比如郑商所的Tradingday字段和AveragePrice字段,交易所行情没有这个字段,因此是空的,但是TCP行情会去补填。
UDP行情和TCP行情的订阅方法,请参阅CreateFtdcMdApi