简介
数据是研究量化的基础,基于tushare数据进行量化学习与研究更适合新手,通过网页爬取的数据,后续处理时个人觉得有点麻烦,而tushare返回的绝大部分的数据格式都是DataFrame类型,非常便于新手用pandas/NumPy/Matplotlib进行数据分析和可视化。
我选取的数据:包含tushare的数据接口中的行情数据(日线行情、每日指标)合并后构建出自己的数据库。
代码
#导入基本库和数据接口
import pandas as pd
import tushare as ts
pro = ts.pro_api()
#定义获取数据函数,时间和指标可以根据需求更改
def get_data(code):
df1 = pro.daily(ts_code=code, start_date='20101012', end_date='20240325', fields='ts_code,trade_date,open,high,low,close,pre_close,change,pct_chg,vol,amount,')
df1 = df1.sort_values('trade_date')
df2 = pro.daily_basic(ts_code=code, start_date='20101012', end_date='20240325', fields='ts_code,trade_date,close,turnover_rate,turnover_rate_f,volume_ratio,pe,pe_ttm,pb,ps,ps_ttm,dv_ratio,dv_ttm,total_share,float_share,free_share,total_mv,circ_mv')
df2 = df2.sort_values('trade_date')
# 合并df1和df2
merged_df = pd.merge(df1, df2, how='outer')
# 删除2中与df1重复的列
merged_df = merged_df.loc[:, ~merged_df.columns.duplicated()]
# 存储为CSV文件,路径可以根据自己更改
merged_df.to_csv(f'{code}.csv', index=False)
# 获取code_list的数据并存储(以部分数据为例)
code_list=['600055.SH','600062.SH','600069.SH','600079.SH']
for code in code_list:
get_data(code)
#最终输出输出csv文件到特定位置
构建的数据库
数据的csv文件
我的数据库是基于申万一级指数,筛选的特定7个成长期行业,提取申万二级指数中7行业的公司,以这些上市公司为标的来进行量化研究,欲知后事,咱下回分解。