Python:计算KDJ指标

计算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值最稳。

# 9 3 3 
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(adjust=False, alpha=1 / 3).mean()
 # pd.Series.ewm(rsv, com=2).mean()
df['KDJ_D'] = df['KDJ_K'].ewm(adjust=False, alpha=1 / 3).mean()
 # pd.Series.ewm(stock_datas['K'], com=2).mean()
df['KDJ_J'] = 3 * df['KDJ_K'] - 2 * df['KDJ_D']
 
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值