【量化交易】KDJ指标实现

【量化交易】KDJ指标实现,第1张

【量化交易】KDJ指标实现
  • 指标说明
    • 指标原理
    • 计算步骤
  • Python指标实现
    • 利用Tushare获取数据源
      • 平台介绍
      • 获取数据源
    • 利用Python实现指标计算

指标说明 指标原理

KDJ指标又称为随机指标,首先选定一定跨度的时间范围,找特定时间范围内的收盘价与该时间范围内最高价与最低价的相对位置来捕捉处于超买、超卖现象的股票。(id:513088)

计算步骤

(1)计算未成熟随机值RSV
RSV = (第n天的收盘价-最近n天内的最低价)/(最近n天的最高价-最近n天内的最低价) x 100%
其中,n为时间跨度,RSV取值越大说明市场可能出现超买,建议卖出。反之为超卖,建议买入
(2)计算K值
K值 = 2/3 x 前一日K值 + 1/3当日RSV
(3)计算D值
D值 = 2/3 x 前一日D值 + 1/3当日K值
(4)计算J值
J值 = 3 x K值 - 2 x D值

Python指标实现 利用Tushare获取数据源 平台介绍

Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。

获取数据源
# 首先进行安装
pip install tushare 
# 导入tushare 
import tushare as ts 
# 设置token 
pro = ts.pro_api(token) # token在个人主页,复制即可
# 以平安银行为例,获取最近的交易数据
df = pro.daily(ts_code='000001.SZ', start_date='20220401', end_date='20220515')
df.head()
ts_codetrade_dateopenhighlowclosepre_closechangepct_chgvolamount
0000001.SZ2022051314.5014.6614.4914.6114.380.231.5994676311.91985962.932
1000001.SZ2022051214.4814.5614.3314.3814.63-0.25-1.7088685064.23987061.607
2000001.SZ2022051114.5414.8414.4414.6314.590.040.2742848573.621240700.426
3000001.SZ2022051014.5014.6014.1114.5914.550.040.2749992285.021425836.927
4000001.SZ2022050914.9414.9414.4614.5514.96-0.41-2.7406818621.351197104.247
利用Python实现指标计算

在计算K值和D值时,取较为常用的2/3 和1/3作为平滑权重,时间跨度n选9日。

# 对数据进行排序
df =  df.sort_values('trade_date',ascending=True)
low_list = df['low'].rolling(9,min_periods = 1).min()
high_list = df['high'].rolling(9,min_periods = 1).max()
rsv = (df['close'] - low_list)/(high_list - low_list) *100
df['K'] = rsv.ewm(com=2,adjust=False).mean()
df['D'] = df['K'].ewm(com=2,adjust=False).mean()
df['J'] = 3*df['K'] - 2*df['D']
df[-5:]
ts_codetrade_dateopenhighlowclosepre_closechangepct_chgvolamountKDJ
4000001.SZ2022050914.9414.9414.4614.5514.96-0.41-2.7406818621.351197104.24729.86082138.50792912.566604
3000001.SZ2022051014.5014.6014.1114.5914.550.040.2749992285.021425836.92728.69842335.23809415.619081
2000001.SZ2022051114.5414.8414.4414.6314.590.040.2742848573.621240700.42628.65609133.04409319.880088
1000001.SZ2022051214.4814.5614.3314.3814.63-0.25-1.7088685064.23987061.60724.04911630.04576712.055813
0000001.SZ2022051314.5014.6614.4914.6114.380.231.5994676311.91985962.93225.19025328.42726218.716234

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/922491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存