使用pandas的内置方法ewm计算KDJ指标
在量化交易中,我们一般会用到一些常用的指标,比如移动平均线(ma), MACD,KDJ,EMA,EXPMA等等。一般计算kdj等指标会用到talib金融库。但是如果用pandas的dataframe来存放数据的话,实际上只用Pandas的内置方法也是可以很容易的计算一些常用指标的。本文就介绍只用10来行代码就能计算出KDJ的方法。
KDJ指标的计算公式比较复杂,首先要选择周期(n日、n周等),再计算当RSV值,最后用RSV值来计算K值、D值、J值。
具体的计算公式大家可以自行百度。
下面给出具体代码,参数这里用的是最常用的9,3,3。
代码不多,就是这几行。应该不是很难看懂。参数df就是一个日k线的dataframe,需要有最基本的ohlc这个价格和量能volume。
这段代码中最核心的、最主要的就是ewm这个函数,这是指数加权滑动。
从Pandas的文档上面可以看到
当adjust = False的时候,是这么计算的。
而KDJ的K的计算公式是:
那么当ewm的参数com=2的时候,alpha就等于1/(1+com) = 1/3, 那么1-alpha就是2/3。
所以ewm的参数要选择com=2,adjust=False。