pandas应用-股票分析

读取数据

数据格式为csv格式,需注意编码格式
详细的read_csv参数可参考 https://blog.csdn.net/shanmou1782/article/details/90441391

datadir = 'yahoo-data'
fname = '600690.csv'
# engine 可以选择C或者是python。C引擎快但是Python引擎功能更加完备。
# 按日期排列,类型为 pandas.core.series.Series
data = pd.read_csv(os.path.join(datadir, fname), index_col='日期', parse_dates=True, engine='python')

读取的数据展示

清理数据

观察数据发现数据主要有2个问题:1,股票停盘时值为0;2,未计算除权除息

adj_price = data['收盘价']
adj_price[:10]
pre = adj_price[0]
for index, val in enumerate(adj_price):
    if adj_price[index] == 0:
        adj_price[index] = pre
    else:
        pre = adj_price[index]

清理前后对比

adj_price.plot(figsize=(8, 6))

在这里插入图片描述
在这里插入图片描述

计算增长倍数

1.最大增长倍数及最大年化复合增长率
2.计算最低价和最高价之间的收盘价比较,以及增长的倍数和年化复全增长率,这个反应的是一个股票最好的情况下的投资收益情况。

增长率

# 增长率
total_max_growth = adj_price.max() / adj_price.min()
total_max_growth # 12.361623616236162

最大年均复合增长率

min_date = adj_price.idxmin()
max_date = adj_price.idxmax()
max_growth_per_year = total_max_growth ** (1.0 / (max_date.year - min_date.year))
max_growth_per_year # 2.312198803176424

当前平均增长倍数

total_growth = adj_price.ix[0] / adj_price.ix[-1]
total_growth # 1.424550430023456

年复合增长倍数

old_date = adj_price.index[-1]
now_date = adj_price.index[0]
growth_per_year = total_growth ** (1.0 / (now_date.year - old_date.year))
growth_per_year # 1.014254896755263

平均年化增长率

计算每年的增长率,然后再求平均值。也可以计算每月的增长率,再求平均值,可以看到更短的一些周期变化。

price_in_years = adj_price.to_period(freq='A').groupby(level=0).first()
price_in_years.plot(figsize=(8,6))

在这里插入图片描述

计算年化收益

计算年化收益率时,diff 应该要除以前一年的价格,即在前一年的价格的基础上上涨了多少,而不是在当前年的价格。

diff = price_in_years.diff()
rate_in_years =  diff / (price_in_years - diff)
rate_in_years

平均年化收益

rate_in_years.mean() # 0.23090471187498904
rate_in_years.plot(kind='bar', figsize=(8,6))
X = [0, len(rate_in_years)]
Y = [0, 0]
plt.plot(X, Y, color='red', linestyle='-')

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值