Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差

Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差

我的Tushare ID:393587

  • 引入模块
  • 导出数据
  • 数据处理
  • 计算相关系数与协方差

引入模块

第一步,我们需要引入我们所需的模块

import tushare as ts
import pandas as pd
import numpy as np
  • tushare: 是我们本次所要用到的数据接口,它提供丰富的数据内容,如股票、基金、期货等行情数据,并且它对于教育群体有支持,提供了免费获取金融数据的机会。
  • numpy:是python中能用来灵活处理数组数据的模块。
  • pandas:是基于Numpy的专业数据分析工具,它主要用于处理了一下dataframe的数据。

导出数据

在从tushare我们所需的导出数据之前,我们先要在tushare的官网:tuahre官网链接注册一个我们自己的账号。

在注册完了账号之后,可以在我们的个人主页获得我们账号所对应的token。才能在程序运行时,从tushare接口得到我们所需的数据。

然后在程序中输入我们的token:

tushare_token = '这里输入你在tushare账号中所对应的token'
pro = ts.pro_api(tushare_token) # 初始化接口

然后是我们从tushare导出股票的日数据的函数:

pro.daily(ts_code, start_date, end_date)
  • ts_code:是我们所要的股票的代码
  • start_date:是我们所要的数据开始的时间
  • end_date:是我们所要的数据结束的时间

处理数据

df_list=[] # 创建一个空list以便存储我们接下来的数据
#以股票代码为000001的平安银行为例
df = pro.daily(ts_code='000001.SZ', start_date='20180101', end_date='20210101')
# 注:(在深圳的股票就是代码加.SZ,在上海的股票就是代码加.SH)

然后我们就能得到下面的数据,存储在我们的df变量中。

Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差_第1张图片
在得到了数据之后,我们就要来计算我们股票的涨跌幅,并将其存入我们之前所创造的用来存储数据的df_list中:

#获得收盘价
cprice = df[['trade_date','close']].set_index('trade_date')
#让日期按升序排列
cprice = cprice.sort_index()
#计算涨跌幅
cprice['returns'] = 100 * cprice['close'].diff().div(cprice['close'])
#将数据添加进df_list中
df_list.append(cprice)

同时再用上述的方法,计算其他多支股票的涨跌幅,存入df_list。
(我在这里还选择了其他四只股票,分别为万科A,深物业A,世纪星源,以及中国宝安)

接着我们就将我们得到的df_list转换成dataframe的形式,以便我们使用pandas对数据进行处理。

#先创建一个空的dataframe用来存储我们的数据
df = pd.DataFrame([])
#把所有涨跌幅放进一个Dataframe里
for i in range(1,6):
    df[str(i)] = df_list[i-1]['returns']
# 将dataframe的行名称改成我们的股票名
df.columns = ['平安银行','万科A','深物业A','世纪星源','中国宝安']

就得到了这样的df:
Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差_第2张图片

计算相关系数与协方差

然后我们再用pandas中的corr()函数计算数据的相关系数。

#计算相关系数
df.corr()

得到数据的相关系数:
Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差_第3张图片

用pandas中的cov()函数计算数据的协方差。

#计算协方差
df.cov()

得到数据的协方差:
Python 应用: 使用Tushare的数据,计算多只股票收益率之间的相关系数与协方差_第4张图片

然后我们就得到我们所需的数据啦。

你可能感兴趣的:(python,tushare,数据分析)