import pandas as pd
import tushare as ts
import baostock as bs
def data_recon_ts(ts_code, start_date, end_date, token):
# 获取股票日线行情数据并规整化。接口:Tushare Pro;时间单位:日
ts_pro = ts.pro_api(token)
data = ts_pro.daily(ts_code=ts_code, start_date=start_date, end_date=end_date)
data.trade_date = pd.DatetimeIndex(data.trade_date)
data.set_index("trade_date", drop=True, inplace=True)
data.sort_index(inplace=True)
data.index = data.index.set_names('Date')
recon_data = {'High': data.high, 'Low': data.low,
'Open': data.open, 'Close': data.close,
'Volume': data.vol}
data_recon = pd.DataFrame(recon_data)
return data_recon
def data_recon_bs(ticker, start_data, end_data, frequency='d', adjustflag='3'):
# frequency="d"取日k线,adjustflag="3"默认不复权,1:后复权;2:前复权
lg = bs.login()
fields= "date,open,high,low,close,volume"
date = bs.query_history_k_data(ticker, fields, start_date=start_data, end_date=end_data,
frequency=frequency, adjustflag=adjustflag)
data_list = []
while (date.error_code == '0') & date.next():
data_list.append(date.get_row_data())
result = pd.DataFrame(data_list, columns=date.fields)
result.close = result.close.astype('float64')
result.open = result.open.astype('float64')
result.low = result.low.astype('float64')
result.high = result.high.astype('float64')
result.volume = result.volume.astype('float64')
result.volume = result.volume/100 # 单位转换:股-手
result.date = pd.DatetimeIndex(result.date)
result.set_index("date", drop=True, inplace=True)
result.index = result.index.set_names('Date')
recon_data = {'High': result.high, 'Low': result.low,
'Open': result.open, 'Close': result.close,
'Volume': result.volume}
data_recon = pd.DataFrame(recon_data)
bs.logout()
return data_recon
token='*****your own token!*****'
zc_ts=data_recon_ts('002891.sz','20211101','20211103',token)
print(zc_ts)
zc_bs=data_recon_bs('002891.sz','2021-11-01','2021-11-03')
print(zc_bs)
股票信息获取基础
最新推荐文章于 2022-09-06 13:24:41 发布