Ejemplo n.º 1
0
def roe():
    ''' 年度ROE(平均)
        =净利润/净资产
        =归母净利润/(期初+期末归母净资产)/2
        =每股净利润/每股净资产
        =销售净利率*总资产周转率*杠杆系数
    '''
    return MetricsMeta(
        'f_roe',
        expr.Div(
            expr.Get('n_income_attr_p'),
            expr.Div(
                expr.Sum(
                    expr.Get('total_hldr_eqy_exc_min_int'),
                    expr.Get('total_hldr_eqy_exc_min_int', period_begin=True)),
                expr.Value(2))))
Ejemplo n.º 2
0
def exp_3_ratio():
    '''三费占比'''
    return MetricsMeta('f_exp_3.r',
                       expr.Div(
                           expr.Sum(expr.Get('sell_exp'),
                                    expr.Get('admin_exp'),
                                    expr.Get('fin_exp')), expr.Get('revenue')),
                       display='三费占比')
Ejemplo n.º 3
0
def interest_bearing_liab_ratio_y():
    ''' 有息负债率 = 有息负债 / 总资产
        同行比较,越高风险越大
    '''
    return MetricsMeta('f_interest_bearing_liab_y.r',
                       expr.Div(expr.Get('f_interest_bearing_liab_y'),
                                expr.Get('f_total_assets_y')),
                       display='有息负债率')
Ejemplo n.º 4
0
def days_prepayment_y():
    '''预付账款周转天数'''
    return MetricsMeta('f_days_prepayment_y',
                       expr.Div(
                           expr.Multi(expr.Get('f_prepayment_ave_y'),
                                      expr.Value(360)),
                           expr.Get('oper_cost', period='y')),
                       display='预付账款周转天数')
Ejemplo n.º 5
0
def days_adv_receipts_y():
    '''预收账款周转天数'''
    return MetricsMeta('f_days_adv_receipts_y',
                       expr.Div(
                           expr.Multi(expr.Get('f_adv_receipts_ave_y'),
                                      expr.Value(360)),
                           expr.Get('revenue', period='y')),
                       display='预收账款周转天数')
Ejemplo n.º 6
0
def days_inventory_y():
    '''存货周转天数'''
    return MetricsMeta('f_days_inventory_y',
                       expr.Div(
                           expr.Multi(expr.Get('f_inventory_ave_y'),
                                      expr.Value(360)),
                           expr.Get('oper_cost', period='y')),
                       display='存货周转天数')
Ejemplo n.º 7
0
def gross_profit_ratio():
    '''毛利率%'''
    return MetricsMeta('f_gross_profit.r',
                       expr.Sub(
                           expr.Value(1),
                           expr.Div(expr.Get('oper_cost'),
                                    expr.Get('revenue'))),
                       display='毛利率')
Ejemplo n.º 8
0
def inventroy_ave_y():
    '''平均存货'''
    return MetricsMeta(
        'f_inventory_ave_y',
        expr.Div(
            expr.Sum(
                expr.Get('inventories', period='y'),
                expr.Before(expr.Get('inventories', period='y'), past_year=1)),
            expr.Value(2)))
Ejemplo n.º 9
0
def assets_liab_ratio_y():
    ''' 资产负债率
        >50%需小心
        同行比较,越高风险越大
    '''
    return MetricsMeta(
        'f_assets_liab_y.r',
        expr.Div(expr.Get('total_liab', period='y'),
                 expr.Get('f_total_assets_y')))
Ejemplo n.º 10
0
def days_acct_payable_y():
    '''应付账款周转天数'''
    return MetricsMeta('f_days_acct_payable_y',
                       expr.Div(
                           expr.Multi(expr.Get('f_acct_payable_ave_y'),
                                      expr.Value(360)),
                           expr.Sub(expr.Get('oper_cost', period='y'),
                                    expr.Get('inventories', period='y'))),
                       display='应付账款周转天数')
Ejemplo n.º 11
0
def adv_receipts_ave_y():
    '''平均预收账款'''
    return MetricsMeta(
        'f_adv_receipts_ave_y',
        expr.Div(
            expr.Sum(
                expr.Get('adv_receipts', period='y'),
                expr.Before(expr.Get('adv_receipts', period='y'),
                            past_year=1)), expr.Value(2)))
Ejemplo n.º 12
0
def prepayment_ave_y():
    '''平均预付账款'''
    return MetricsMeta(
        'f_prepayment_ave_y',
        expr.Div(
            expr.Sum(
                expr.Get('prepayment', period='y'),
                expr.Before(expr.Get('prepayment', period='y'), past_year=1)),
            expr.Value(2)))
Ejemplo n.º 13
0
def leverage():
    ''' 杠杆倍数
        = 资产/所有者权益 = 资产/(资产-负债)
        = 1/(1-资产负债率)
    '''
    return MetricsMeta('f_leverage',
                       expr.Div(expr.Get('f_total_assets'),
                                expr.Get('total_hldr_eqy_exc_min_int')),
                       display='杠杆倍数')
Ejemplo n.º 14
0
def accounts_receiv_ave_y():
    '''平均应收账款'''
    return MetricsMeta(
        'f_accounts_receiv_ave_y',
        expr.Div(
            expr.Sum(
                expr.Get('accounts_receiv', period='y'),
                expr.Before(expr.Get('accounts_receiv', period='y'),
                            past_year=1), expr.Get('notes_receiv', period='y'),
                expr.Before(expr.Get('notes_receiv', period='y'),
                            past_year=1)), expr.Value(2)))
Ejemplo n.º 15
0
def acct_payable_ave_y():
    '''平均应付账款'''
    return MetricsMeta(
        'f_acct_payable_ave_y',
        expr.Div(
            expr.Sum(
                expr.Get('acct_payable', period='y'),
                expr.Get('notes_payable', period='y'),
                expr.Before(expr.Get('acct_payable', period='y'), past_year=1),
                expr.Before(expr.Get('notes_payable', period='y'),
                            past_year=1)), expr.Value(2)))
Ejemplo n.º 16
0
def cashflow_free_pay_10_years_ratio():
    '''10年自由现金流/10年资本开支比'''
    return MetricsMeta(
        'f_cashflow_free_pay_10_y.r',
        expr.Div(
            expr.Sum(expr.Get('f_cashflow_free_y'), [
                expr.Before(expr.Get('f_cashflow_free_y'), past_year=n)
                for n in range(1, 10)
            ]),
            expr.Sum(expr.Get('c_pay_acq_const_fiolta', period='y'), [
                expr.Before(expr.Get('c_pay_acq_const_fiolta', period='y'),
                            past_year=n) for n in range(1, 10)
            ])),
        display='10年自由现金流与资本开支比')
Ejemplo n.º 17
0
def roe_ttm():
    ''' 年度ROE(加权平均)
        根据中国证监会发布的《公开发行证券公司信息披露编报规则》第9号的通知的规定:加权平均净资产收益率(ROE)的计算公式如下:ROE= P/(E0 + NP÷2 + Ei×Mi÷M0 - Ej×Mj÷M0)
        其中:
        P为报告期利润;
        NP为报告期净利润;
        E0为期初净资产;
        Ei为报告期发行新股或债转股等新增净资产;
        Ej为报告期回购或现金分红等减少净资产;
        M0为报告期月份数;
        Mi为新增净资产下一月份起至报告期期末的月份数;
        Mj为减少净资产下一月份起至报告期期末的月份数。
    '''
    return MetricsMeta('f_roe_ttm',
                       expr.Div(
                           expr.Get('f_income_attr_p_ttm'),
                           expr.Div(
                               expr.Sum(
                                   expr.Get('total_hldr_eqy_exc_min_int'),
                                   expr.Before(
                                       expr.Get('total_hldr_eqy_exc_min_int'),
                                       past_quarter=4)), expr.Value(2))),
                       display='ROE(滚动)')
Ejemplo n.º 18
0
def net_profit_growth_pay_10_years_ratio():
    '''10年净利润增长/10年资本开支比'''
    return MetricsMeta(
        'f_n_income_attr_p_pay_10_y.r',
        expr.Div(
            expr.Sub(
                expr.Get('n_income_attr_p', period='y'),
                expr.Before(expr.Get('n_income_attr_p', period='y'),
                            past_year=9)),
            expr.Sum(expr.Get('c_pay_acq_const_fiolta', period='y'), [
                expr.Before(expr.Get('c_pay_acq_const_fiolta', period='y'),
                            past_year=n) for n in range(1, 10)
            ])),
        display='10年净利润增长与资本开支比')
Ejemplo n.º 19
0
def price_share(market_cap: expr.Expr):
    '''估算单价'''
    return expr.Div(market_cap,
                    expr.Get('total_share'))
Ejemplo n.º 20
0
def sale_cash_ratio():
    '''营销:销售收现率%'''
    return MetricsMeta('f_sale_cash.r',
                       expr.Div(expr.Get('c_fr_sale_sg'), expr.Get('revenue')),
                       display='销售收现率')
Ejemplo n.º 21
0
def adv_receipt_ratio():
    '''营销:预收率%'''
    return MetricsMeta('f_adv_receipt.r',
                       expr.Div(expr.Get('adv_receipts'), expr.Get('revenue')),
                       display='预收率')
Ejemplo n.º 22
0
def fin_exp_revenue_ratio():
    '''财务费用占比'''
    return MetricsMeta('f_fin_exp_revenue.r',
                       expr.Div(expr.Get('fin_exp'), expr.Get('revenue')),
                       display='财务费用占比')
Ejemplo n.º 23
0
def sale_credit_ratio():
    '''营销:赊销率(白条率)'''
    return MetricsMeta('f_sale_credit.r',
                       expr.Div(expr.Get('f_receivables'),
                                expr.Get('revenue')),
                       display='赊销率')
Ejemplo n.º 24
0
def admin_revenue_ratio():
    '''管理费用占比'''
    return MetricsMeta('f_admin_revenue.r',
                       expr.Div(expr.Get('admin_exp'), expr.Get('revenue')),
                       display='管理费用占比')
Ejemplo n.º 25
0
def fin_exp_revenue_ratio_y():
    '''财务费用占比'''
    return MetricsMeta('f_fin_exp_revenue_y.r',
                       expr.Div(expr.Get('fin_exp', period='y'),
                                expr.Get('revenue', period='y')),
                       display='财务费用占比')
Ejemplo n.º 26
0
def admin_revenue_ratio_y():
    '''管理费用占比'''
    return MetricsMeta('f_admin_revenue_y.r',
                       expr.Div(expr.Get('admin_exp', period='y'),
                                expr.Get('revenue', period='y')),
                       display='管理费用占比')
Ejemplo n.º 27
0
def sell_revenue_ratio():
    '''销售费用占比'''
    return MetricsMeta('f_sell_revenue.r',
                       expr.Div(expr.Get('sell_exp'), expr.Get('revenue')),
                       display='销售费用占比')
Ejemplo n.º 28
0
def sell_revenue_ratio_y():
    '''销售费用占比'''
    return MetricsMeta('f_sell_revenue_y.r',
                       expr.Div(expr.Get('sell_exp', period='y'),
                                expr.Get('revenue', period='y')),
                       display='销售费用占比')
Ejemplo n.º 29
0
def income_tax_ratio():
    '''所得税占比'''
    return MetricsMeta('f_income_tax.r',
                       expr.Div(expr.Get('income_tax'), expr.Get('revenue')),
                       display='所得税占比')
Ejemplo n.º 30
0
def income_tax_ratio_y():
    '''所得税占比'''
    return MetricsMeta('f_income_tax_y.r',
                       expr.Div(expr.Get('income_tax', period='y'),
                                expr.Get('revenue', period='y')),
                       display='所得税占比')