#%%#先引入后面可能用到的包(package)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
%matplotlib inline
#正常显示画图时出现的中文和负号
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
#使用tushare获取交易数据
#设置token
import tushare as ts
token=''
ts.set_token(token)
pro=ts.pro_api(token)
#pro=ts.pro_api(token)
index={'上证综指': '000001.SH','深证成指': '399001.SZ','沪深300': '000300.SH','创业板指': '399006.SZ','上证50': '000016.SH','中证500': '000905.SH','中小板指': '399005.SZ','上证180': '000010.SH'}
#获取当前交易的股票代码和名称
def get_code():df = pro.stock_basic(exchange='', list_status='L')codes=df.ts_code.valuesnames=df.name.valuesstock=dict(zip(names,codes))#合并指数和个股成一个字典stocks=dict(stock,**index)return stocks
#获取行情数据
def get_data(stock,start='20151009',end=''):#如果代码在字典index里,则取的是指数数据code=get_code()[stock]if code in index.values():df=ts.pro_bar(ts_code=code,asset='I',start_date=start, end_date=end)#否则取的是个股数据else:df=ts.pro_bar(ts_code=code, adj='qfq',start_date=start, end_date=end)#将交易日期设置为索引值df.index=pd.to_datetime(df.trade_date)df=df.sort_index()return df
import tushare as ts
import pandas as pd
import timedef maintask():pro = ts.pro_api()#获取基础信息数据,包括股票代码,名称,上市日期,退市日期等pool = pro.stock_basic(exchange='',list_status = 'L',adj = 'qfq',fields = 'ts_code,symbol,name,area,industry,fullname,list_date,market,exchange,is_hs')#print(pool.head()) print('获得上市股票总数:',len(pool)-1)j=1for i in pool.ts_code:print('正在获取第%d家,股票代码%s' %(j,i))#接口限制访问200次/分钟,加一点微小的延时防止被bantime.sleep(0.301)j += 1df = pro.daily(ts_code=i,start_date = startdate,end_date = enddate,fields = 'ts_code,trade_date,open,high,low,close,pre_close,change,pct_chg,vol,amount')#print(df.head())writer = pd.ExcelWriter(i + '.xlsx')df.to_excel(writer,sheet_name= i + '',index=False)if __name__== '__main__':#设置起始日期startdate='19980101'enddate='20200224'#主程序maintask()