Python股票量化学习(2)——股票历史日线数据下载

        利用baostock下在股票历史数据

bs.query_history_k_data_plus(code, fields, start_date, end_date, frequency, adjustflag)

        code,股票代码;

        fields,表字段date,open,high,low,close,preclose,volume,amount,adjustflag,

turn,tradestatus,pctChg,peTTM,pbMRQ,psTTM,pcfNcfTTM,isST。也可以选取这其中一部分。

        start_date,起始日期;

        end_date,结束日期;

        frequency,该参数为'd'时,表示下载日线数据;

        adjustflag,复权类型,=’2‘为前复权

要下载全部A股数据,耗时会相当长,因此,这里可以引入多进程模块multiprocessing,但是,运行多进程的时候,又总有进程会莫名的卡死,导致程序即不报错,也不停止。于是,再引入一个超时模块func_timeout.

from multiprocessing import Pool

from func_timeout import func_set_timeout

         定义函数get_history_data()用来获取股票历史数据,用func_timeout盯着它。

import baostock as bs
from func_timeout import func_set_timeout

# 设置50秒超时
@func_set_timeout(50)
def get_history_data(code, start='1990-12-19', end=datetime.date.today().strftime('%Y-%m-%d'),
                adjustflag='2', ):
    """
    获取股票历史数据
    :param code: 股票代码
    :param start: 开始日期
    :param end: 结束日期
    :param adjustflag: 复权类型,默认为 2 ,前复权
    :return: 股票历史数据的DataFrame
    """
    # 登录baostock
    bs.login()
    print(f'正在建立{code}的下载链接......')

    df = bs.query_history_k_data_plus(code,fields=self.baostock_fields, start_date=start, end_date=end,
                                          frequency='d', adjustflag=adjustflag).get_data()
    print(f'{code} is done!')

    return d
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值