需求:股票分析
使用tushare包获取某股票的历史行情数据。
- 输出该股票所有收盘比开盘上涨3%以上的日期。
- 输出该股票所有开盘比前日收盘跌幅超过2%的日期。
- 假如我从2015年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?
准备工作:
先安装财经数据接口包tushare
pip install tushare
我们以当下的热门个股九安医疗为例,九安医疗股票代码:002432
首先获取九安医疗股票的历史行情数据:
结果:
…
这样在jupyter上展示不方便,我们将获取的股票数据存储到本地
并尝试读取:
可以看出上面的数据还需要进行相关的处理,
那个Unnamed: 0那一列没有用,我们给它删除:
然后我们试着查看每一列的数据类型:
发现data并不是标准的时间序列类型,我们需要给它转一下:
然后我们将date列作为源数据的行索引:
数据至此已经处理的差不多了,下面开始解决问题:
1. 输出该股票所有收盘比开盘上涨3%以上的日期:
#伪代码:(收盘-开盘)/开盘 > 0.03
(df['open'] - df['close']) / df['open'] > 0.03
#在分析的过程中如果产生了boolean值则下一步马上将布尔值作为源数据的行索引
#如果布尔值作为df的行索引,则可以取出true对应的行数据,忽略false对应的行数据
2. 输出该股票所有开盘比前日收盘跌幅超过2%的日期:
#伪代码:(开盘-前日收盘)/前日收盘 < -0.02
df['close'].shift(1)将收盘价那一列整体下降一行,方便计算
(df['open'] - df['close'].shift(1))/df['close'].shift(1) < -0.02
#将布尔值作为源数据的行索引取出True对应的行数据
3.假如我从2015年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?
分析:
时间节点:2015-2022
一手股票:100支股票
买:
一个完整的年需要买入1200支股票
卖:
一个完整的年需要卖出1200支股票
买卖股票的单价:
开盘价
买股票:
找每个月的第一个交易日对应的行数据(捕获到开盘价)==》每月的第一行数据
根据月份从原始数据中提取指定的数据
每月第一个交易日对应的行数据:
买入股票花费的总金额:
然后就求卖出股票到手的钱,这里有一个特殊情况就是2022年买入的股票不能卖(不满足题目要求的本年最后一个交易日卖出条件)
所以我们将2022年最后一行切出去:
然后我们就可以求2022年之前卖出股票到手的钱了:
我们最后2022年手中剩余的股票需要估量其价值计算到总收益中,
我们这里使用昨天的收盘价作为剩余股票的单价,今天我写博客这天是2022年1月22,所以只卖了一手股票即100支,所以剩余股票价值:
由以上分析,可得总收益:
好了,到这里,这篇博客也该跟大家说再见了,创作不易,如果本文对你有用,欢迎收藏加点赞,这真的是对我的肯定与鼓励,也是我坚持下去的动力。
向未来张望的时光,或许孤独而漫长,望努力过后,都是晴朗,光终究会洒在你的身上,你也会灿烂一场,加油啊,少年!