tushare-学习笔记002-获取基本数据

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

到这里基本数据就准备完毕了,在下一个笔记就可以选股操作了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值