4.13K 浏览
0

按照k线的更新规则:

规则2: K线序列 (例如上面例子中的ka1, ka2) 总是按周期推进. 每根K线在创建时和结束时各更新一次

在刚创建时,最新这个k线的各个价格值(high=low=close)是一样的,到本周期结束再次更新前,这个价格值应该都是保持不变的。

如果在此间根据quote进行的交易逻辑中使用kline.iloc[-1].hhv应该是取不到这个k线周期的hhv的,因为按照规则还未到周期结束,hhv等不会更新。

因此做回测时,只能使用tick或者其他小周期去拼凑,自行取得最新k线的high、low,在去与之前k线hhv或high比较取得hhv,或者llv。

但是在实盘中,k线更新规则又是怎么样的呢?是实时更新,抑或也是周期性更新呢?

是否可以在对kline做is_changing判断时,选取其价格字段(high/low/close),如api.is_changing(kline.iloc[-1],’close’),从而可以使用hhv取得包括最新k线在内的真实hhv呢?

west 已回答的问题 2020年5月20日
0

1.根据问题中“如果在此间根据quote进行的交易逻辑中使用kline.iloc[-1].hhv应该是取不到这个k线周期的hhv的”:你取-2的数据就可以

2.在实盘中,k线更新规则是实时更新

3. 你可以参考指标源码自行修改的

west 发表新评论 2021年3月29日

关于你说的2.实盘当中实时更新
那么,在回测中,是不是我订阅5秒钟频率的kline,quote就5秒更新一次,并且本标的的10分钟K线也会每5秒刷新kline[-1]的高低收价格(开已经固定了)?

回测时最后一根K线没有周期内中间的变化数据(实盘过程中有的),这根K线可以理解为只有结束的那一次更新才有有效数据,而这时候它就已经成了-2了。
回测时K线没有实时变动的数据,如果要实时的,可以订阅tick,然后对应quote就是用tick生成的,就可以算实时的在更新

您正在查看1个答案中的1个,单击此处查看所有答案。