先把tushare获取的行情数据存入本地,再进行读取,这样如果更换数据源的话也可以直接利用
- 定义读取行情数据的函数,并根据交易时间选择数据时间段
#######定义读取行情数据函数
def read_file(path,file_name,start_date,end_date):
try:
r=open(path+file_name,encoding='utf-8-sig')
data=pd.read_csv(r)
data=data.sort_values(by='trade_date',ascending=True)
data=data.reset_index(drop=True)
data['trade_date']=data['trade_date'].apply(int)
data=data[data['trade_date']>=start_date]
data=data[data['trade_date']<=end_date]#####日期为int格式
except:
r=open(path+file_name,encoding='gbk')
data=pd.read_csv(r)
data=data.sort_values(by='trade_date',ascending=True)
data=data.reset_index(drop=True)
data['trade_date']=data['trade_date'].apply(int)
data=data[data['trade_date']>=start_date]
data=data[data['trade_date']<=end_date]#####日期为int格式
return data
- 定义股票指数
#######定义股票指数
def stockindex(path_rele,fut_name,path_stock,path_sz,start_date,end_date):
stock_list=[]
####获取交易日历
df_cal=read_file(r'.\\data_cal\\','data_cal.csv',start_date,end_date)
df_cal['cal_date']=df_cal['cal_date'].apply(int)
####定义一个只有交易日历的dataframe
sz_data=pd.DataFrame(columns=['trade_date'])
sz_data['trade_date']=df_cal.cal_date
try:
r=open(path_rele+fut_name+