我的Tushare ID:393587
第一步,我们需要引入我们所需的模块
import tushare as ts
import pandas as pd
import numpy as np
在从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)
df_list=[] # 创建一个空list以便存储我们接下来的数据
#以股票代码为000001的平安银行为例
df = pro.daily(ts_code='000001.SZ', start_date='20180101', end_date='20210101')
# 注:(在深圳的股票就是代码加.SZ,在上海的股票就是代码加.SH)
然后我们就能得到下面的数据,存储在我们的df变量中。
在得到了数据之后,我们就要来计算我们股票的涨跌幅,并将其存入我们之前所创造的用来存储数据的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','世纪星源','中国宝安']
然后我们再用pandas中的corr()函数计算数据的相关系数。
#计算相关系数
df.corr()
用pandas中的cov()函数计算数据的协方差。
#计算协方差
df.cov()
然后我们就得到我们所需的数据啦。