计算n日kdj值

1 周期(n日、n周等)的RSV值

n日rsv = (Cn -Ln)/ (Hn-ln) x 100

rsv为未成熟随机指标值;

Cn为第n日收盘价;

Ln为n日内的最低价;

Hn为n日内的最高价

2 计算K值与D值

当日K值=2/3×前一日K值+1/3×当日RSV

当日D值=2/3×前一日D值+1/3×当日K值

若无前一日K 值与D值,则可分别用50来代替。

J值=3*当日K值-2*当日D值

kdj指标中,k值和d值的取值范围都是0—100,而j值的取值范围可以超过100和低于0。通常就敏感性而言,j值最强,k值次之,d值最慢,而就安全性而言,j值最差,k值次之,d值最稳。

low_list=df['low'].rolling(window=9).min()
low_list.fillna(value=df['low'].expanding().min(), inplace=True)
high_list = df['high'].rolling(window=9).max()
high_list.fillna(value=df['high'].expanding().max(), inplace=True)
rsv = (df['close'] - low_list) / (high_list - low_list) * 100
df['KDJ_K'] = rsv.ewm(com=2).mean()  
 # pd.Series.ewm(rsv, com=2).mean()
df['KDJ_D'] = df['KDJ_K'].ewm(com=2).mean()
 # pd.Series.ewm(stock_datas['K'], com=2).mean()
df['KDJ_J'] = 3 * df['KDJ_K'] - 2 * df['KDJ_D']

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐