首页 > 数据治理 > > 另一个视角,使用对数化数据,计算非价位指标
之前在做时序数据整理时候学习时候,发现很多代码都行情数据做了对数化处理。学习了下,发现是另一个视角。
https://www.zhihu.com/question/20831196/answer/16324269
知乎查了,这个答案比较全。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上面答案比较理论,下面这个更好理解。
我们平时看到的K线图几乎都是采用 普通坐标 ,而有一种叫作 对数坐标 的K线图大部分人可能没了解过。在介绍对数坐标下的K线图的前,我们先思考一个问题:从100点涨到1300点的涨幅大还是从1000点涨到6000点的涨幅大?
普通坐标下的上证月K线图
对数坐标下的月K线图
看了上证的两幅图是不是有点惊讶,涨的最厉害的不是2005-2007,而是股市刚建立初那两三年。看惯了普通坐标k线图的股民们,眼里只有2005-2007那一拨牛市,2005年之前的股市看起来好像平淡无奇。普通坐标下K线图100点涨到1100点k线的长度和1000点涨到2000点k线图的长度是一样的,而对数坐标下是按照上涨/下跌的幅度计算k线图的长度的,对数坐标下,100点涨到110点和1000点涨到1100点K线图的长度是一样的。
做了一些策略实践,发现对于均线,布林线,唐安期通道这样直接基于价位求出指标,使用对数化数据计算指标相关并不好。而像MACD,KDJ,CCI这样非价位指标,使用对数化指标后,分析起来更为合理。
这里就简单说说VNPY中MACD指标更新支持对数化。其实很简单,直接调用np.log()方法,然后增加islog参数。如果True时候,就把传入指标对数化再计算。
# ---------------------------------------------------------------------- def macd(self, fastPeriod, slowPeriod, signalPeriod, islog = False, array=False): """MACD指标""" if islog: macd, signal, hist = talib.MACD(np.log(self.close), fastPeriod, slowPeriod, signalPeriod) else: macd, signal, hist = talib.MACD(self.close, fastPeriod, slowPeriod, signalPeriod) if array: return macd, signal, hist return macd[-1], signal[-1], hist[-1]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22259926/viewspace-3132485/ ,如需转载,请注明出处,否则将追究法律责任。