2019.06.28为止的sql完整数据
github 链接
先获取 “股票代码表”
我这里是使用 mongodb 存储的。
项目有结构不方便放上来,这里是代码片段。具体请参见 github 仓库
def fetch_code(): """ 从接口获取代码,存入数据库,返回结构样例 ts_code symbol name area industry list_date 0 000001.SZ 000001 平安银行 深圳 银行 19910403 1 000002.SZ 000002 万科A 深圳 全国地产 19910129 3541 603936.SH 603936 博敏电子 广东 元器件 20151209 3542 603937.SH 603937 丽岛新材 江苏 铝 20171102 :return: """ datas = ts_pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date') dataArr = datas.to_dict('records') t_codes = db['codes'] t_codes.drop() result = t_codes.insert_many(dataArr) if len(result.inserted_ids) != len(dataArr): assert False print('插入代码表数据失败.请检查。') return else: print("插入代码表数据成功")
|
获取交易日历
def fetch_calender(): """ 从接口获取有效交易日信息,存入数据库,返回结构样例 exchange cal_date is_open 0 SSE 20180101 0 1 SSE 20180102 1 2 SSE 20180103 1 """ calender = ts_pro.trade_cal(start_date='20190101', end_date='20191231') t_calender = db['calender'] dataArr = calender.to_dict('records') result = t_calender.insert_many(dataArr) if len(result.inserted_ids) != len(dataArr): assert False print('插入代码表数据失败.请检查。') return else: print("插入代码表数据成功")
|
获取历史数据
代码有些多,看 github 吧
每个股票代码作为一个集合保存数据。从数据库中取出代码,然后遍历获取数据
def get_code(market): """ 获取股票代码表 market [in] string SH 上海,SZ 深圳,ALL 所有市场 output: {'ts_code': '600000.SH', 'symbol': '600000', 'name': '浦发银行', 'list_date': '19991110'} :return: """ t_codes = db['codes'] if market == 'ALL': codes = list(t_codes.find({}, {"_id": 0, "ts_code": 1, "symbol": 1, "name": 1, "industry": 1, "list_date": 1})) else: codes = list(t_codes.find({"ts_code": {"$regex": ".{}".format(market)}}, {"_id": 0, "ts_code": 1, "symbol": 1, "name": 1, "industry": 1, "list_date": 1})) return codes
|
到这里基本数据就准备完毕了,在下一个笔记就可以选股操作了。