【金融数据分析】基于python实现收益率和风险分析
小白一枚,金融大数据分析作业,顺便总结一下。
下面的数据以中国银行股票为例,其他股票的而分析方法类似。编程工具:Jupyter notebook
1. 导入数据分析包并设置好绘图工具属性
import pandas as pd
import matplotlib.pyplot as plt
import ffn #金融计算包
import tushare as ts#获取金融数据的工具包
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
2. 获取股票数据
tushare工具包可以获取股票数据,获取的数据一般只能是最近几年的股价数据。更早的数据获取不到,可以换用pandas的数据获取包。
chinaBank = ts.get_hist_data('601988', '2018-01-01', '2019-01-01') #中国银行
chinaBank = chinaBank.sort_values(by='date', ascending=True) #数据转化为升序
Close = chinaBank.close
Close.head()
3. 收益率
3.1 一期收益率
在计算之前,一定要确保日期索引是dataTime类型,否则可能出现计算出错的问题。
#将索引值变换成日期型数据(datetime),
Close.index = pd.to_datetime(Close.index)
#收盘价格滞后一期,第一位数据由于没有前项,值会变为NaN
lagClose = Close.shift(1)
#将收盘价格与滞后一期的收盘价格合并,转换成DataFrame数据
Close_hebing = pd.DataFrame({"Close": Close, "lagClose": lagClose})
Close_hebing.head()
#收益率
simpleret = (Close - lagClose) / lagClose
simpleret.name = 'simpleret'
#中国银行一期收益率
simpleret.head() #每天的收益率
3.2 二期收益率
#二期收益率
simpleret2 = (Close - Close.shift(2)) / Close.shift(2)
simpleret2.name = 'simpleret2'
simpleret2.head()
3.3 单期收益率曲线图
plt.figure(figsize=(10, 6))
simpleret.plot()
作图的结果如下:
3.4 累积(多期)收益率曲线图
第二行代码的表达式是多期收益率的表达式,多期表达式与一期收益率有一个近似的函数表达式,具体推导需要自行百度一下相关证明。
plt.figure(figsize=(10, 6))
((1 + simpleret).cumprod() - 1).plot() #累乘cumprod并绘图
4 年化收益
计算年化收益前需要获得每日的日收益,年收益的计算公式代码里面已经附上。
#累加cumsum和累乘cumprod
#年华收益率计算公式:[(1+r1)*(1+r2)*...(1+rn)]**(n/m),n为一年股票交易天数,m为大盘交易天数
annualize = (1 + simpleret).cumprod()[-1]**(245 / 311) - 1
print("中国银行2018年年收益:" + str(annualize))
5 风险度量
5.1 度量方式1——方差度量风险
方差度量风险,相当于是数据的稳定性,这里转化为收益的稳定性。
returnS = ffn.to_returns(chinaBank.close).dropna() #计算一期收益率
print("中国银行方差风险:" + str(returnS.std()**2)) #std()函数是标准差,需要平方
5.2 度量方式1——下行风险
这里自定义了下行风险偏差函数。无风险收益率不仅可以用自身的平均收益率,还可以使用各个典型的银行定期收益率作为无风险收益率。
#下行偏差风险函数,返回值越大则对应的风险越大
def cal_down_risk(returns):mu = returns.mean()#无风险利率,这里取平均值temp = returns[returns < mu]down_risk = (sum((mu - temp)**2) / len(returns))**0.5return (down_risk)
print("下行风险:" + str(cal_down_risk(returnS)))
【金融数据分析】基于python实现收益率和风险分析相关推荐
- python商业分析_科研进阶 | 纽约大学 | 商业分析、量化金融:基于Python的商业分析工具...
科研进阶 | 纽约大学 | 商业分析.量化金融:基于Python的商业分析工具(8.22开课)mp.weixin.qq.com 课题名称 = 基于Python的商业分析工具 = 项目背景 数据分析为 ...
- 金融数据分析:股票日收益率5日均值【python】
下载数据 国内有很多开源的金融数据库,下面以锐思数据库为例: 读取数据
- python金融工程的工具包_金融工程及其Python应用
目 录 第1章 金融工程导论 1 1.1 金融工程的概念 2 1.2 国外现代主流金融理论发展历程 2 1.3 国内金融的发展 3 1.4 现代主流金融理论简介 4 1.4.1 投资组合理论 4 1. ...
- 金融工程及其python应用pdf_金融工程及其Python应用
金融工程及其Python应用 编辑 锁定 讨论 上传视频 <金融工程及其Python应用>是2019年1月清华大学出版社出版的图书,作者是朱顺泉. 书 名 金融工程及其Python应 ...
- 基于Python的基金定投分析: 通过获取过去10年的股市数据分析基金定投的收益率。
视频:基于python的基金定投以及优化定投策略-jupyter_哔哩哔哩_bilibili ## 基于Python的基金定投分析 通过获取过去10年的股市数据分析基金定投的收益率. #### 首先, ...
- python金融数据分析电子版_python 金融大数据分析 pdf
书籍:Python金融大数据分析 Python for Finance_ Mastering Data-Driven Finance 2nd - 2019.pdf 简介 金融业最近以极高的速度采用了P ...
- Python金融数据分析入门到实战-视频课程
大家好!很荣幸能够在CSDN上和各位同学分享这门课程. 本课程的核心为Python金融数据的分析,首先课程提取了数据分析工具NumPy.Pandas及可视化工具Matplotlib的关键点进行详细讲解 ...
- 金融python入门书籍_零基础想系统地学习金融学、量化投资、数据分析、python,需要哪些课程、书籍?有哪些证书可以考?...
7.10更新,最近写了关于量化交易的一些文章: -------------------------分割------------------------- 感谢大家的支持!我要把下文当中视频全部放出来给 ...
- 金融数据分析用哪些分析软件Python,R还是SQL?
前言 [金融数据分析]建议使用Python + SQL 首先,Python和R都适合做金融数据分析,但Python在市场欢迎度.易学程度.库生态丰富度.接口拓展性等上面都表现更好,学习性价比更高 其次 ...
最新文章
- c#垂直投影法_投影学
- Leetcode--128. 最长连续序列
- springboot使用redis(StringRedisTemplate的常用方法)
- application terminated怎么解决_优雅解决 SpringBoot 工程中多环境下 application.properties 的维护问题...
- 基于visual Studio2013解决面试题之0909移动星号
- 怎样成为优秀软件模型设计者
- OpenLayers geojson 进行展示矢量标签展示
- 如何按行政区划下载谷歌地图并裁剪
- python博弈论_基于原生python的进化博弈实现
- python化学公式配平_配平化学方程式的C++代码实现
- B站最近很火的damedane,unravel图片唱歌
- 优秀架构师是如何学习开源项目的?
- linux时间为什么没有北京,Linux时区选择为何没有北京?
- SUV世家广汽三菱,牵手微信企业号打造学习型企业
- 安装net-speeder,加速***
- PostScript(PS 格式)讲解
- 宁向东管理课:自我力
- Unity Google Android登录接入
- CVPR 2021 | Involution:超越卷积和自注意力的神经网络新算子
- docker-compose部署shadowscoks server