从Tushare同时获取多个股票
多个股票获取
我获取的数据出现了一个问题,000001.SZ 的2010年的cloes数据是全的,即12个月都有数据,但是在多个股票数据获取的时候,我发现的000001.SZ的close数据并没有全部获取,不知道是什么原因。希望有大佬指点一下。非常感激不尽。
多个股票数据获取步骤:
- 第一是设置code_list
- 第二是设置一个接受数据的空列表对象data_list
- 第三是对代码进行for循环
- 第四for循环代码传递到数据获取代码
- 第五是利用交易时间降维排序
- 第六是重命名第一行名称
- 第七是设置日期索引
import tushare as ts
import pandas as pd
token = 'you token'
pro = ts.pro_api(token)
code_list=['000001.SZ','600000.SH','600016.SH']
data_list =[]
for code in code_list:
data = pro.daily(ts_code =code,start_date = '20101001',end_date = '20101231')[['trade_date','close']]
data.sort_vlaues('trade_date',inplace = True)
data.rename(columns={'close':code},inplace = True)
data.set_index('trade_date',inplace=True)
data_list.append(data)#获取的第二个股票数据接在第一个股票的右边
data = pd.concat(data_list,axis = 1)
print(data.head())
print(data.tail())
这样就输出了多个股票数据。
多个股票的对数收益率计算
接着上述获取的数据,我们需要设置一个循环,来逐一计算每个股的对数收益率.
import numpy as np
data_list_2 = []#接受收益率空列表对象
for a in code_list:
lograte = np.log(data.[a]/data[a].shift(1))#注:我现在数据是升维,所以shift(1),若是降维排序则为shift(-1)
data_list_2.appen(lograte)
log_rate=pd.concat(data_list_2, axis=1)#每个数据接在右侧
print(log_rate.head())
print(log_rate.tail())
按照上面的方法爱就可以计算出多个股票的对数收益率了