上图是教程中给的使用时间对齐序列获得两个合约价差序列的范例。同时获取两个合约最新价,相减得到价差并保存在dif序列中,只要任一合约最新价有更新,dif就计算最新价差,因此dif的周期差不多就是tick的周期500ms,比较容易理解。
但是,现在想利用时间对齐序列获得指定周期的价差K线序列,比如:想获得上述合约价差的1分钟K线序列,并且绘制价差K线图,该怎么做呢?dif是周期500ms左右的价差序列,没有开、高、低、收四个构成K线的必要元素,只有价差。因此需要用diff序列来组合成1分钟K线,这个编程相对麻烦。当然,应该也不能用以下语句获得价差K线的开、高、低、收:
klines_spread.open = klines.open – klines.open1
klines_spread.high = klines.high – klines.high1
klines_spread.low = klines.low – klines.low1
klines_spread.close = klines.close – klines.close1
这样写显然不符合逻辑。所以,请问:如果想绘制两个合约价差的1分钟K线,该怎么写程序呢?可否给个范例?可能该示例比较典型,建议可以将其放到“示例程序”——“基本使用”中,作为t96。
万分感谢~
如果只使用K线操作,你要OHLC的话,要维护一个新的K线序列,逻辑是这样的,这是别的语言代码,你可以参照改一改。
diff_open=ka[-1].open-kb[-1].open; diff_close=ka[-1].close-kb[-1].close; diff_high=max(diff_open,diff_close); diff_low=min(diff_open,diff_close);
两个相同周期的K线操作,不必处理周期问题,因为TQSDK已经对齐时间了,按照参考代码的 规则 运算你的订阅K 里面的每一行,
实时状态下只需要在代码基础上加上比对更新最新的H L,
如果用两个品种TICK合成的话,要先写单品种K线合成规则、就要处理周期问题,合成规则你可以参考MT4的脚本,挺费劲的,转成PYTHON需要花不少功夫。然后合成TICK生成新的合成K线。
K线是使用高开低收来画的,一组数据如果没有高开低收几个数据就画不了类似于K线的图像
是的,那请问怎么用天勤的时间对齐K线序列获取到两个合约价差在某特定周期(比如1分钟或1小时)的高、开、低、收数据呢?程序怎么写?谢谢~
感谢~
但是请问周期该怎么处理呢?除了对tick的时间戳用循环处理,有没有更好的方式?