前言:
而今各位老铁们对“python 交易日”可能比较关注,咱们都需要剖析一些“python 交易日”的相关内容。那么小编在网摘上搜集了一些对于“python 交易日””的相关内容,希望咱们能喜欢,同学们一起来学习一下吧!从去年开始,朋友圈的Python课程就非常火,身边好多程序员朋友都开始钻研起了Python。不过最近,身边很多金融行业的朋友也纷纷在朋友圈打起了卡,每天更新自己学习Python的进度。
这实在令我好奇,就专门找朋友一问究竟,朋友对我说:再不学Python都赶不上金融科技时代了!
前不久,中国人民银行印发的《金融科技(FinTech)发展规划(2019-2021年)》(以下简称《规划》)指出,金融科技是技术驱动的金融创新,旨在运用现代科技成果改造或创新金融产品、经营模式、业务流程等,推动金融发展提质增效。
在政策的指导之下,如今,Python被广泛地应用于金融投资和风险管理领域,更多金融机构尝试着把Python与金融的风险管理相结合,用工具来把握金融市场的不确定性。
不仅如此,各大金融机构还将金融科技作为重要战略计划,招募金融科技领域中高端人才。一时间,“金融科技”、“数字化转型”成为当下金融圈的热门关键词。
将技术应用于业务,科技赋能业务。在未来,Python将是金融领域从业者的必备技能。
不仅仅是程序猿,现在即便是数据相关的岗位,招聘需求上都会写上“熟练使用Python”。
那Python在金融科技中到底能发挥多大价值呢?今天异步君就为大家介绍下两个股票投资的案例看看Python的具体应用:
利用Python下载数据并使之可视化
中证指数有限公司的官方网站提供了关于A股股指历史走势数据的下载服务。下面,通过导入已下载的上证综指、深圳成指、中证500和中证800指数在2014年至2018年的日收盘价数据并且通过Python进行可视化,具体的代码如下:
In [1]: import numpy as np ...: import pandas as pd ...: import matplotlib.pyplot as plt ...: from pylab import mpl ...: mpl.rcParams['font.sans-serif'] = ['SimHei'] ...: mpl.rcParams['axes.unicode_minus'] = FalseIn [2]: index_data=pd.read_excel('C:/Desktop/国内A股主要股指的日收盘数据(2014-2018).xlsx', sheet_name="Sheet1", header=0, index_col=0) #导入外部数据In [3]: index_data.plot(subplots=True,layout=(2,2),figsize=(10,10),fontsize=13,grid=True)Out[3]:
利用Python计算投资组合的收益率和波动率
下面通过基于A股市场的一个案例并结合Python演示如何计算一个投资组合的收益率和波动率。
【例】假定投资组合配置了5只A股股票(具体信息见下表),数据是2016年至2018年期间的每个交易日收盘价格。下面就通过Python计算投资组合的预期收益率和年化波动率,具体分为4个步骤。
第1步:导入股票的收盘价格数据并且进行可视化,具体的代码如下:
In [6]: data=pd.read_excel('C:/Desktop/构建投资组合的5只股票数据(2016-2018).xlsx', sheet_name= "Sheet1",header=0,index_col=0) #导入外部数据In [7]: data.head()Out[7]: 上海机场 宝钢股份 海通证券 工商银行 中国石油日期 2016-01-04 28.27 5.23 14.28 4.45 8.132016-01-05 28.76 5.43 14.33 4.47 8.072016-01-06 29.50 5.97 14.58 4.51 8.312016-01-07 27.99 5.38 13.23 4.43 7.832016-01-08 28.03 5.92 13.51 4.46 7.99In [8]: (data/data.iloc[0]).plot(figsize=(8,6)) #将股价按首个交易日进行归一处理并可视化
从图中不难发现,这5只股票在2016年至2018年期间的走势存在一定的分化。
第2步:按照前面介绍的式子构建这5只股票日收益率的时间序列,同时进行可视化,代码如下:
5只股票日收益率的直方图
In [9]: R=np.log(data/data.shift(1)) #按照对数收益率的计算公式得到股票收益率 ...: R=R.dropna() #删除缺省的数据 ...: R.describe()Out[9]: 上海机场 宝钢股份 海通证券 工商银行 中国石油count 730.000000 730.000000 730.000000 730.000000 730.000000mean 0.000802 0.000298 -0.000663 0.000237 -0.000165std 0.019078 0.021775 0.016945 0.012614 0.012901min -0.105361 -0.104059 -0.098549 -0.067593 -0.08252125% -0.008854 -0.009260 -0.007118 -0.004662 -0.00527450% 0.000372 0.000000 -0.000648 0.000000 0.00000075% 0.008488 0.010305 0.006625 0.006316 0.005203max 0.088763 0.095648 0.095198 0.059223 0.070761In [10]: R.hist(bins=40,figsize=(10,10)) #将股票收益率按照直方图方式展示Out[10]:
第3步:计算每只股票的平均收益率、波动率以及协方差,由于运用的是日数据,因此需要进行年化处理,代码如下:
In [11]: R_mean=R.mean()*252 #计算股票的年化平均收益率 ...: print(R_mean)上海机场 0.202051宝钢股份 0.075045海通证券 -0.167117工商银行 0.059691中国石油 -0.041456dtype: float64In [12]: R_cov=R.cov()*252 #计算股票的协方差矩阵并且年化处理 ...: print(R_cov) 上海机场 宝钢股份 海通证券 工商银行 中国石油上海机场 0.091724 0.022705 0.022375 0.014478 0.017292宝钢股份 0.022705 0.119489 0.042816 0.023992 0.030719海通证券 0.022375 0.042816 0.072361 0.021051 0.028913工商银行 0.014478 0.023992 0.021051 0.040094 0.016621中国石油 0.017292 0.030719 0.028913 0.016621 0.041939In [13]: R_corr=R.corr() #计算股票的相关系数矩阵 ...: print(R_corr) 上海机场 宝钢股份 海通证券 工商银行 中国石油上海机场 1.000000 0.216880 0.274644 0.238733 0.278804宝钢股份 0.216880 1.000000 0.460463 0.346625 0.433946海通证券 0.274644 0.460463 1.000000 0.390828 0.524851工商银行 0.238733 0.346625 0.390828 1.000000 0.405316中国石油 0.278804 0.433946 0.524851 0.405316 1.000000In [14]: R_vol=R.std()*np.sqrt(252) #计算股票收益率的年化波动率 ...: print(R_vol)上海机场 0.302861宝钢股份 0.345671海通证券 0.269000工商银行 0.200236中国石油 0.204791dtype: float64
从以上的相关系数矩阵分析可以看到,这5只股票的收益率之间相关性比较低,因此对于整个组合的分散化效果会比较好。
第4步:运用前面生成的随机权重数计算投资组合的预期收益率和收益波动率,代码如下:
In [15]: R_port=np.sum(weights*R_mean) #计算投资组合的预期收益率 ...: print('投资组合的预期收益率:',round(R_port,4))投资组合的预期收益率: 0.0399In [16]: vol_port=np.sqrt(np.dot(weights,np.dot(R_cov,weights.T))) #计算投资组合收益波动率 ...: print('投资组合收益波动率:',round(vol_port,4))投资组合收益波动率: 0.177
从以上的分析中可以得到,运用随机生成的权重计算得到该投资组合的预期收益率是3.99%/年,收益波动率达到17.7%/年。
除此之外,Python还可用来绘制可行集、模拟资本市场线及可视化等更多的应用,在金融领域,Python是把锋利好用的“手术刀”,可以帮助我们高效剖析金融风险。
在金融领域里,Python还能够做的事情还有很多,更多内容可以关注一下《基于Python的金融分析与风险管理》。
本书在对Python基础知识进行简洁明晰的介绍之后,直奔“如何在金融投资和风险管理中进行场景应用”这一核心主题,通过大量的典型案例细致地描述应用过程,宛如一位循循善诱的老师手把手地演示每个步骤和细节。
如果你的征途是金融投资或者风险管理,本书将是载你进行星际穿越的那艘永恒号。