繁簡切換您正在訪問的是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

投稿 您想發表你的觀點和看法?

更多人氣分析師

  • 張亦巧

    人氣2208文章4145粉絲45

    暫無個人簡介信息

  • 張迎妤

    人氣1912文章3305粉絲34

    個人專注於行情技術分析,消息面解讀剖析,給予您第一時間方向...

  • 指導老師

    人氣1864文章4423粉絲52

    暫無個人簡介信息

  • 李冉晴

    人氣2320文章3821粉絲34

    李冉晴,專業現貸實盤分析師。

  • 梁孟梵

    人氣2184文章3177粉絲39

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

  • 王啟蒙現貨黃金

    人氣328文章3545粉絲8

    本人做分析師以來,並專注於貴金屬投資市場,尤其是在現貨黃金...

  • 金泰鉻J

    人氣2328文章3925粉絲51

    投資問答解咨詢金泰鉻V/信tgtg67即可獲取每日的實時資訊、行情...

  • 金算盤

    人氣2696文章7761粉絲125

    高級分析師,混過名校,廝殺於股市和期貨、證券市場多年,專注...

  • 金帝財神

    人氣4760文章8329粉絲119

    本文由資深分析師金帝財神微信:934295330,指導黃金,白銀,...

FX168財經

FX168財經學院

FX168財經

FX168北美