栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

中国A股市场都有哪些股票分过红

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

中国A股市场都有哪些股票分过红

数据来源于 baostock(www.baostock.com),baostock提供了完整的数据接口,暂时不支持事实数据,但对于A股市场的量化分析是够用了。baostock的具体API使用,感兴趣的同学可以自行参考,处于统计需要,本分基于baostock的数据,实现了一段统计并列表一段年份周期内A股市场有过分红派息的股票。

def get_dividend_list(start_year, end_year):
    # 获取截止前一天的所有股票代码
    stk_code = get_all_stock()

    #### baostock 登陆系统 ####
    lg = bs.login(user_id="anonymous", password="123456")
    
    # 显示登陆返回信息
    print('login respond error_code:'+lg.error_code)
    print('login respond  error_msg:'+lg.error_msg)

    dividend_list = []
    dividend_compony_list = []
    dividend_count_list = []
    dividend_compony_count = 0
    
    if start_year < 1990:
        print('开始年份不能小于1990年')
        return False
    if start_year > end_year:
        print('开始年份不能大于结束年份')
        return False

    for bk in stk_code:
        stock_type = check_code_is_stock(bk)
        if stock_type != 1:
            print(bk+'不是股票类型额代码!')
            continue

        dividend_count = 0
        for year in range(start_year, end_year+1):
                year_str = str(year)
                print(year_str)
                rs_dividend = bs.query_dividend_data(code=bk, year=year_str, yearType="report")
                while (rs_dividend.error_code == '0') & rs_dividend.next():
                    dividend_list.append(rs_dividend.get_row_data())
                    dividend_count += 1
                    
        if dividend_count > 0:
            dividend_compony_count += 1
            rs = bs.query_stock_basic(code=bk)
            while (rs.error_code == '0') & rs.next():
                # 获取一条记录,将记录合并在一起
                dividend_compony_list.append(rs.get_row_data())
                dividend_count_list.append(dividend_count)


    result_dividend = pd.Dataframe(dividend_list, columns=rs_dividend.fields)
    result_dividend_compony = pd.Dataframe(dividend_compony_list, columns=rs.fields)
    result_dividend_compony['dividend count'] = dividend_count_list
    # 打印输出
    print(result_dividend)
    print(result_dividend_compony)

    #### 结果集输出到csv文件 ####   
    result_dividend.to_csv("C:/history_Dividend_data.csv", encoding="gbk",index=False)
    result_dividend_compony.to_csv("C:/history_Dividend_compony.csv", encoding="gbk",index=False)

    #### 登出系统 ####
    bs.logout()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/280474.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号