1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 板块拥挤度的相对强度rps

板块拥挤度的相对强度rps

时间:2018-07-26 02:35:24

相关推荐

板块拥挤度的相对强度rps

行业板块的交易拥挤度:行业板块的成交量/全A指数的成交量

通过这个公式计算出来的因为某些股市值高,哪怕的某天成交量变低,也会比一些小市值股票的拥挤度指数大,所以参考欧奈尔的相对强度rps重新写了一个板块的rps.

数据用的akshare同花顺的板块指数

首先获取所有板块的成交额

industry_names = ak.stock_board_industry_name_ths().loc[:, 'name'] # series类型# industry_names = ['中药', '证券']# 获取同花顺行业板块成交额def get_amount(lists):result = pd.DataFrame()for name in lists:try:tmp = ak.stock_board_industry_index_ths(symbol=name).loc[:, ['日期', '成交额']].rename(columns={'成交额': name})tmp['日期'] = tmp['日期'].astype(str)tmp[name] = tmp[name].astype(float)tmp = tmp.set_index('日期').loc['-01-01':'-09-09']result = result.join(tmp, how='outer')except:print(tmp[name])continuereturn result# 获取板块池中行业的成交额industry_amount = get_amount(industry_names)

运行结果:

通过df/df.shift(n)函数来计算成交额n日的滚动涨幅;通过rank(method='average',axis =1, pct=True)来进行排名,np.floor()向下取整来计算板块成交量的RPS;

# 计算板块成交额的n日的滚动涨幅pct = industry_amount / industry_amount.shift(5)# 计算板块行业成交额的相对强度RPSrps = np.floor((pct.rank(method='average', axis=1, pct=True) - 0.000001) * 100)

将成交额涨幅和RPS转为多层索引,以便观察:

# 将涨幅pct和rps转为多层索引pct_stack = pct.stack().reset_index().rename(columns={'level_1': '行业板块', 0: '5日涨幅'})rps_stack = rps.stack().reset_index().rename(columns={'level_1': '行业板块', 0: 'RPS'})pct_rps = pd.merge(pct_stack, rps_stack)

最后通过matplotlib画出成交额涨幅的变化趋势图:

# 绘图 板块成交量涨幅的变化for name in industry_names:pct.index = pd.to_datetime(pct.index)plt.style.use('seaborn') # 将绘图样式设置为seabornmpl.rcParams['font.family'] = 'Microsoft YaHei' # 将所有的图标的字体设置为微软雅黑mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题plt.figure(figsize=(10, 6))plt.subplot()plot = plt.plot(pct[name], lw=1.5) # 会自动把包含的数据解释为单独的数据集plt.title('%s 5日成交量涨幅' % name)plt.savefig('./data/%s.png' % name)# plt.show()plt.close

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。