
import tushare as ts
import pandas as pd
from datetime import datetime
from time import sleep
pro = ts.pro_api('your token')
data_dir = 'data/'
获取所需要的交易开盘时间
def get_trade_days(start = '20170101',end = '20171231'):
trade_days_data = pro.query('trade_cal', start_date= start, end_date=end)
return trade_days_data[trade_days_data.is_open==1].cal_date.tolist()
open_days = get_trade_days(start = '20190101',end = '20191231')
# 或者更新到今天
today_time = datetime.now().strftime('%Y%m%d')
print(today_time)
# 已经有的数据的最大一天
last_date = df.index.max()
last_date.strftime('%Y%m%d')
常用的数据
filed_names = "ts_code,trade_date,close,turnover_rate,turnover_rate_f,volume_ratio,pe,pe_ttm,pb,ps,ps_ttm,total_share,float_share,free_share,total_mv,circ_mv"
data = list()
j = 0
for day in open_days:
daily_data = pro.daily_basic(ts_code='', trade_date= day , fields = filed_names)
sleep(1)
j+=1
print(daily_data.shape,j,end = "r",flush = True)
data_need.append(daily_data)
数据合并
data_update = pd.concat(data,axis=0)
新旧data 合并
old_data = pd.read_parquet(data_dir+'data2019.gzip',compression='gzip')
new_data = old_data.apped(data_update)
new_data.to_parquet(data_dir+'data2019.gzip',compression='gzip')
对于更多的数据
#去掉close
filed_names = "ts_code,trade_date,turnover_rate,turnover_rate_f,volume_ratio,pe,pe_ttm,pb,ps,ps_ttm,total_share,float_share,free_share,total_mv,circ_mv"
daily_data = pro.daily_basic(trade_date= '20190104' , fields = filed_names)
daily_data = pro.daily_basic(trade_date= '20190104' , fields = filed_names)
daily_price = pro.daily(trade_date='20190104') # open high low close
daily_data_all = daily_price.merge(daily_data,on=['ts_code','trade_date'])
用一个函数打包
from time import sleep
def get_daily_data(day):
filed_names = "ts_code,trade_date,turnover_rate,turnover_rate_f,volume_ratio,pe,pe_ttm,pb,ps,ps_ttm,total_share,float_share,free_share,total_mv,circ_mv"
daily_data = pro.daily_basic(trade_date= day , fields = filed_names)
sleep(1)
daily_data = pro.daily_basic(trade_date= day , fields = filed_names)
daily_price = pro.daily(trade_date='20190104') # open high low close
daily_data_all = daily_price.merge(daily_data,on=['ts_code','trade_date'])
return daily_data_all




近期评论