TqSdk 不同合约类型的数据差异
合约类型
根据 query_symbol_info 得知,Tqsdk 里的合约类型可能的值有:
FUTURE期货CONT主连COMBINE组合INDEX指数OPTION期权STOCK股票
这里常用的就是 FUTURE 和 CONT。
通常使用 FUTURE 就可以了,但是在做一些长周期的回测时,需要考虑到主力合约变更的情况。官方文档对这个问题的描述 是使用主连合约,然后使用 quote.underlying_symbol 获取回测当时的标的合约。
在实际应用时,发现 FUTURE 和 CONT 不同合约类型,在订阅 kline、quote、tick 等数据时还是有一些细微区别的,在这里整理并做记录。
测试代码
以下是测试时使用的代码,测试时 CZCE.AP501 是当前主力,且持空仓 13 手。
from tqsdk import TqApi,TqAuth,TqKq
api = TqApi(account = TqKq(),auth=TqAuth("信易账户","信易密码"))
FUTURE = 'CZCE.AP501'
CONT = 'KQ.m@CZCE.AP'
print('========== quote ==========')
print(api.get_quote(FUTURE))
print(api.get_quote(CONT))
print('========== kline ==========')
print(api.get_kline_serial(FUTURE,86400).iloc[0])
print(api.get_kline_serial(CONT,86400).iloc[0])
print('========== tick ==========')
print(api.get_tick_serial(FUTURE).iloc[0])
print(api.get_tick_serial(CONT).iloc[0])
print('========== position ==========')
print(api.get_position(FUTURE))
print(api.get_position(CONT))
print('========== symbol_info ==========')
print(api.query_symbol_info(FUTURE).iloc[0])
print(api.query_symbol_info(CONT).iloc[0])
api.close()
数据差异
图片中左侧是
FUTURE,右侧是CONT




