繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

准确有效计算A股股息率

作者/adasda 2019-08-13 20:00 0 来源: FX168财经网人物频道
import datetime
import pandas as pd
from jqdata import *
from jqfactor import get_factor_values
def get_dividend_rate(code_list,date=get_trade_days(start_date=None, end_date=datetime.datetime.now().date(), count=2)[-1]):
    '''date参数需传入datetime.date,默认为最新交易日'''
    if date < datetime.datetime.now().date():
        q_date=date
    else:
        q_date=get_trade_days(start_date=None, end_date=datetime.datetime.now().date(), count=2)[0]
    if type(code_list)!=list:
        code_list=code_list.split()
    ##计算各报告期的分红
    f=finance.STK_XR_XD
    q1=query(f.code,f.company_name,f.report_date,f.bonus_amount_rmb).filter(finance.STK_XR_XD.code.in_(code_list)).order_by(finance.STK_XR_XD.report_date.desc())
    df = finance.run_query(q1)
    df=df.fillna(0)
    #df['report_date']=df['report_date'].apply(lambda x:datetime.datetime.combine(x, datetime.time(0)))
    df.set_index(pd.to_datetime(df.report_date), inplace=True)#字符串到datetime
    df=df.groupby('code').resample('Y').sum()
    df=df.reset_index()
    df.columns=['code','year','bonus_amount_rmb']
    ##计算股票分红使用的报告期
    y1=str(q_date.year-2)
    y2=str(q_date.year-1)
    q2 = query(
            balance.statDate,
            balance.code,
            balance.pubDate,
        ).filter(
            balance.code.in_(code_list)
        )
    ret=get_fundamentals(q2,statDate=y1)
    ret2=get_fundamentals(q2, statDate=y2)
    x=ret.append(ret2)
    x.pubDate=pd.to_datetime(x.pubDate)
    x.set_index(pd.to_datetime(x.pubDate), inplace=True)#
    pub_df=x.groupby('code').max()
    pub_df.drop('statDate',axis=1,inplace=True)
    pub_df['year']=pub_df.applymap(lambda x: pd.Timestamp(y1+'-12-31') if q_date<=x.date() else pd.Timestamp(y2+'-12-31'))
    pub_df=pub_df.reset_index()
    ##计算市值数据
    q3 = query(
                valuation.day,
                valuation.code,
                valuation.market_cap,
            ).filter(
                balance.code.in_(code_list)
            )
    cap=get_fundamentals(q3,q_date)
    ##连接各表并计算股息率
    mix=pd.merge(df,pub_df)
    div_df=pd.merge(mix,cap)
    div_df['dividend_rate']=div_df.bonus_amount_rmb/div_df.market_cap/10000
    div_df.set_index('code', inplace=True)
    return div_df.dividend_rate
stocks = get_index_stocks('000300.XSHG')
HS300_divid=get_dividend_rate(stocks,datetime.date(2018,4,21))
HS300_divid
code
000001.XSHE    0.011982
000002.XSHE    0.026295
000063.XSHE    0.000000
000069.XSHE    0.012774
000100.XSHE    0.022453
000157.XSHE    0.048309
000166.XSHE    0.018936
000333.XSHE    0.023346
000338.XSHE    0.049080
000402.XSHE    0.032967
000408.XSHE    0.000000
000413.XSHE    0.009211
000415.XSHE    0.008562
000423.XSHE    0.015228
000425.XSHE    0.003788
000538.XSHE    0.015890
000553.XSHE    0.004330
000568.XSHE    0.020665
000596.XSHE    0.009860
000625.XSHE    0.042395
000627.XSHE    0.002862
000629.XSHE    0.000000
000630.XSHE    0.007782
000651.XSHE    0.037618
000656.XSHE    0.046642
000661.XSHE    0.004393
000671.XSHE    0.006897
000703.XSHE    0.004822
000709.XSHE    0.030581
000725.XSHE    0.006698
                 ...   
601808.XSHG    0.005282
601818.XSHG    0.045477
601828.XSHG    0.020189
601857.XSHG    0.017016
601877.XSHG    0.017097
601878.XSHG    0.008361
601881.XSHG    0.012000
601888.XSHG    0.009335
601898.XSHG    0.011081
601899.XSHG    0.021378
601901.XSHG    0.001739
601919.XSHG    0.000000
601933.XSHG    0.016413
601939.XSHG    0.039484
601985.XSHG    0.017638
601988.XSHG    0.046561
601989.XSHG    0.000000
601992.XSHG    0.010000
601997.XSHG    0.018233
601998.XSHG    0.040909
603019.XSHG    0.001745
603156.XSHG    0.031390
603160.XSHG    0.003806
603260.XSHG    0.007064
603288.XSHG    0.014134
603799.XSHG    0.000000
603833.XSHG    0.007374
603858.XSHG    0.033886
603986.XSHG    0.001914
603993.XSHG    0.009909
Name: dividend_rate, Length: 287, dtype: float64
分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2192文章4145粉丝45

    暂无个人简介信息

  • 王启蒙现货黄金

    人气296文章3215粉丝8

    本人做分析师以来,并专注于贵金属投资市场,尤其是在现货黄金...

  • 指导老师

    人气1864文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2320文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 梁孟梵

    人气2176文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 金泰铬J

    人气2328文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4760文章8329粉丝119

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...

FX168财经

FX168财经学院

FX168财经

FX168北美