9 浏览
0

本地回测,同时监听了quote和tick,quote使用的主连代码,tick使用quote.underlying_symbol。发现突然有时候quote和tick的last_price会差非常多,但又没有触发换月,我用if api.is_changing(quote, “underlying_symbol”)来判断是否换月,并没有触发这里。

是否意味着quote的价格不应该使用,而应该使用ticks里或者klines里的价格?

zyding 编辑评论 10小时 前

即使都使用tick里的价格,发现开仓后,position里的价格也与tick价格不一样,导致没有办法判断盈亏。再仔细看日志,发现到12-16夜盘开盘的时候,tick数据自己换月了,但其他所有对象都没有换月,代码也没有触发自动或手动换月。依然在开2501的仓,但是tick价格变成了2505的了。
代码类似:
symbol_prefix = “KQ.m@DCE.c”
quote = api.get_quote(symbol_prefix) #未换月
ticks = api.get_tick_serial(quote.underlying_symbol) #自动换月
position = api.get_position(quote.underlying_symbol) #未换月
target_pos = TargetPosTask(api, quote.underlying_symbol) #未换月