4.28K 浏览
0

if api.is_changing(klines.iloc[-1], [“datetime”, “open”]): # 新产生一根日线或开盘价发生变化: 重新计算上下轨

west 已回答的问题 2020年3月16日
1

如果到这根K线的起始时间了,datetime、open都会触发is_changing()返回True。

但是,如果此时这个K线周期内还没有产生第一笔交易,open就等于上一根K线的收盘价,如果这根K线结束前,产生了一笔tick交易,则open价格会发生改变(但datetime不会变)

west 发表新评论 2020年3月17日

你的解释我明白了,回到我的问题,貌似你说的那种情况(成交清淡,K走很久才出现一个tick)open仍然多余,这时候触发计算的仍然是前面的完整K数据吧?

如果是你说的“仍是前面的完整k线”情况,就表示行情从上一根K线到当前时间一笔也没成交,你可以用is_changing()判断行情数据更新来下单。
如果是”触发了计算”,说明数据改变了,那肯定是有新的tick出现了,也就不存在“仍是前面的完整K线”情况了

0

K线算是一个统计数据,它包含这个起始时间到这个周期结束时间之间内的一些统计值。

因此它有初始值(上一K线的收盘价),当这个周期内有了tick数据,则K线应该是这些tick的统计值(即改变初始值)

west 已回答的问题 2020年3月16日