10.5.4 计算估值
(1)在本项目中,分别使用了基于股息和自由现金流的方法计算股票的估值。针对不同情景(正常和经济衰退),分别进行了计算。通过这些计算,可以帮助投资者评估股票的合理价格,并制定相应的投资策略。
dict_values_for_bi = {}
stock_value_div_ttm_fixed = dividends_valuation(EARNINGS_TTM, GROWTH_FIXED, cagr, growth_eps_5y, growth_5y,
riskfree, industry_payout, cost_of_equity,
target_cost_of_equity, growth_eps_last, eps_5y, payout_5y, ttm_eps_adj,
reinvestment_eps_last, fx_rate, survival_prob, liquidation_per_share, debug=debug, dict_values_for_bi=dict_values_for_bi)
stock_value_div_norm_fixed = dividends_valuation(EARNINGS_NORM, GROWTH_FIXED, cagr, growth_eps_5y, growth_5y,
riskfree, industry_payout, cost_of_equity,
target_cost_of_equity, growth_eps_last, eps_5y, payout_5y, ttm_eps_adj,
reinvestment_eps_last, fx_rate, survival_prob, liquidation_per_share, debug=debug, dict_values_for_bi=dict_values_for_bi)
stock_value_div_ttm_ttm = dividends_valuation(EARNINGS_TTM, GROWTH_TTM, cagr, growth_eps_5y, growth_5y, riskfree,
industry_payout, cost_of_equity, target_cost_of_equity,
growth_eps_last, eps_5y, payout_5y, ttm_eps_adj,
reinvestment_eps_last, fx_rate, survival_prob, liquidation_per_share, debug=debug, dict_values_for_bi=dict_values_for_bi)
stock_value_div_norm_norm = dividends_valuation(EARNINGS_NORM, GROWTH_NORM, cagr, growth_eps_5y, growth_5y, riskfree,
industry_payout, cost_of_equity,
target_cost_of_equity, growth_eps_last, eps_5y, payout_5y, ttm_eps_adj,
reinvestment_eps_last, fx_rate, survival_prob, liquidation_per_share, debug=debug, dict_values_for_bi=dict_values_for_bi)
stock_value_div_ttm_fixed_recession = dividends_valuation(EARNINGS_TTM, GROWTH_FIXED, cagr, growth_eps_5y, growth_5y,
riskfree, industry_payout, cost_of_equity,
target_cost_of_equity, growth_eps_last, eps_5y, payout_5y, ttm_eps_adj,
reinvestment_eps_last, fx_rate, survival_prob, liquidation_per_share, debug=debug, recession=True, dict_values_for_bi=dict_values_for_bi)
stock_value_div_norm_fixed_recession = dividends_valuation(EARNINGS_NORM, GROWTH_FIXED, cagr, growth_eps_5y, growth_5y,
riskfree, industry_payout, cost_of_equity,
target_cost_of_equity, growth_eps_last, eps_5y, payout_5y, ttm_eps_adj,
reinvestment_eps_last, fx_rate, survival_prob, liquidation_per_share, debug=debug, recession=True, dict_values_for_bi=dict_values_for_bi)
stock_value_div_ttm_ttm_recession = dividends_valuation(EARNINGS_TTM, GROWTH_TTM, cagr, growth_eps_5y, growth_5y, riskfree,
industry_payout, cost_of_equity, target_cost_of_equity,
growth_eps_last, eps_5y, payout_5y, ttm_eps_adj,
reinvestment_eps_last, fx_rate, survival_prob, liquidation_per_share, debug=debug, recession=True, dict_values_for_bi=dict_values_for_bi)
stock_value_div_norm_norm_recession = dividends_valuation(EARNINGS_NORM, GROWTH_NORM, cagr, growth_eps_5y, growth_5y, riskfree,
industry_payout, cost_of_equity,
target_cost_of_equity, growth_eps_last, eps_5y, payout_5y, ttm_eps_adj,
reinvestment_eps_last, fx_rate, survival_prob, liquidation_per_share, debug=debug, recession=True, dict_values_for_bi=dict_values_for_bi)
stock_value_fcff_ttm_fixed = fcff_valuation(EARNINGS_TTM, GROWTH_FIXED, cagr, riskfree, ttm_revenue, ttm_ebit_adj,
target_operating_margin, mr_tax_benefits, tax_rate, sales_capital_5y, target_sales_capital,
debt_equity, target_debt_equity, unlevered_beta, final_erp, cost_of_debt,
target_cost_of_debt, mr_cash, mr_securities, debt_mkt, mr_minority_interest, survival_prob, mr_shares,
liquidation_value, growth_last, growth_5y, revenue_5y, ebit_5y, fx_rate, mr_property, mr_sbc, debug=debug, dict_values_for_bi=dict_values_for_bi)
stock_value_fcff_norm_fixed = fcff_valuation(EARNINGS_NORM, GROWTH_FIXED, cagr, riskfree, ttm_revenue, ttm_ebit_adj,
target_operating_margin, mr_tax_benefits, tax_rate, sales_capital_5y, target_sales_capital,
debt_equity, target_debt_equity, unlevered_beta, final_erp, cost_of_debt,
target_cost_of_debt, mr_cash, mr_securities, debt_mkt, mr_minority_interest, survival_prob, mr_shares,
liquidation_value, growth_last, growth_5y, revenue_5y, ebit_5y, fx_rate, mr_property, mr_sbc, debug=debug, dict_values_for_bi=dict_values_for_bi)
stock_value_fcff_ttm_ttm = fcff_valuation(EARNINGS_TTM, GROWTH_TTM, cagr, riskfree, ttm_revenue, ttm_ebit_adj,
target_operating_margin, mr_tax_benefits, tax_rate, sales_capital_5y, target_sales_capital,
debt_equity, target_debt_equity, unlevered_beta, final_erp, cost_of_debt,
target_cost_of_debt, mr_cash, mr_securities, debt_mkt, mr_minority_interest, survival_prob, mr_shares,
liquidation_value, growth_last, growth_5y, revenue_5y, ebit_5y, fx_rate, mr_property, mr_sbc, debug=debug, dict_values_for_bi=dict_values_for_bi)
stock_value_fcff_norm_norm = fcff_valuation(EARNINGS_NORM, GROWTH_NORM, cagr, riskfree, ttm_revenue, ttm_ebit_adj,
target_operating_margin, mr_tax_benefits, tax_rate, sales_capital_5y, target_sales_capital,
debt_equity, target_debt_equity, unlevered_beta, final_erp, cost_of_debt,
target_cost_of_debt, mr_cash, mr_securities, debt_mkt, mr_minority_interest, survival_prob, mr_shares,
liquidation_value, growth_last, growth_5y, revenue_5y, ebit_5y, fx_rate, mr_property, mr_sbc, debug=debug, dict_values_for_bi=dict_values_for_bi)
stock_value_fcff_ttm_fixed_recession = fcff_valuation(EARNINGS_TTM, GROWTH_FIXED, cagr, riskfree, ttm_revenue, ttm_ebit_adj,
target_operating_margin, mr_tax_benefits, tax_rate, sales_capital_5y, target_sales_capital,
debt_equity, target_debt_equity, unlevered_beta, final_erp, cost_of_debt,
target_cost_of_debt, mr_cash, mr_securities, debt_mkt, mr_minority_interest, survival_prob, mr_shares,
liquidation_value, growth_last, growth_5y, revenue_5y, ebit_5y, fx_rate, mr_property, mr_sbc, debug=debug, recession=True, dict_values_for_bi=dict_values_for_bi)
stock_value_fcff_norm_fixed_recession = fcff_valuation(EARNINGS_NORM, GROWTH_FIXED, cagr, riskfree, ttm_revenue, ttm_ebit_adj,
target_operating_margin, mr_tax_benefits, tax_rate, sales_capital_5y, target_sales_capital,
debt_equity, target_debt_equity, unlevered_beta, final_erp, cost_of_debt,
target_cost_of_debt, mr_cash, mr_securities, debt_mkt, mr_minority_interest, survival_prob, mr_shares,
liquidation_value, growth_last, growth_5y, revenue_5y, ebit_5y, fx_rate, mr_property, mr_sbc, debug=debug, recession=True, dict_values_for_bi=dict_values_for_bi)
stock_value_fcff_ttm_ttm_recession = fcff_valuation(EARNINGS_TTM, GROWTH_TTM, cagr, riskfree, ttm_revenue, ttm_ebit_adj,
target_operating_margin, mr_tax_benefits, tax_rate, sales_capital_5y, target_sales_capital,
debt_equity, target_debt_equity, unlevered_beta, final_erp, cost_of_debt,
target_cost_of_debt, mr_cash, mr_securities, debt_mkt, mr_minority_interest, survival_prob, mr_shares,
liquidation_value, growth_last, growth_5y, revenue_5y, ebit_5y, fx_rate, mr_property, mr_sbc, debug=debug, recession=True, dict_values_for_bi=dict_values_for_bi)
stock_value_fcff_norm_norm_recession = fcff_valuation(EARNINGS_NORM, GROWTH_NORM, cagr, riskfree, ttm_revenue, ttm_ebit_adj,
target_operating_margin, mr_tax_benefits, tax_rate, sales_capital_5y, target_sales_capital,
debt_equity, target_debt_equity, unlevered_beta, final_erp, cost_of_debt,
target_cost_of_debt, mr_cash, mr_securities, debt_mkt, mr_minority_interest, survival_prob, mr_shares,
liquidation_value, growth_last, growth_5y, revenue_5y, ebit_5y, fx_rate, mr_property, mr_sbc, debug=debug, recession=True, dict_values_for_bi=dict_values_for_bi)
执行后会会输出:
===== Dividends Valuation - EARNINGS_TTM + GROWTH_FIXED + recession:False =====
expected_growth [0.1074 0.101 0.0946 0.0881 0.0817 0.0753 0.0689 0.0625 0.0561 0.0497
0.0433]
earnings_per_share [6.0673, 6.6799, 7.3116, 7.9561, 8.6064, 9.2546, 9.8924, 10.5106, 11.1, 11.6513, 12.1552]
payout_ratio [0.0867 0.1734 0.2601 0.3468 0.4335 0.5202 0.6069 0.6935 0.7802 0.8669
0.9536]
###省略部分输出结果
cost_of_capital [0.13007303944488582, 0.1300431538207438, 0.13001336342016462, 0.1299836677887606, 0.1299540664750306, 0.12992455903033706, 0.12989514500888305, 0.12986582396769025, 0.12983659546657647, 0.12980745906813357, 0.12977841433770582]
cumulative WACC [1.130073039444886, 1.2770313015420927, 1.4430624362484106, 1.6306369845601636, 1.8425448916483385, 2.081936724189349, 2.3523701968772435, 2.6578626907717444, 3.002950533759182, 3.3927559122537567, 3.833062394780926]
present value [25761416.44331457, 24895720.67192729, 30371497.058220774, -5626645.969449993, -19044099.093171094, -20582665.42125352, 31225188.95732479, 32235887.09764502, 32526419.718413804, 32117106.30522833, 31061573.360930156]
terminal value 1317943752.34
PV of FCFF during growth 163879825.76819995
PV of terminal value 343835715.83
Value of operating assets 507715541.60016966
Value of cash and property 110880000.0
firm value 618595541.6
debt outstanding 23519939.49
equity value 592937602.12
stock value (price curr) 43.88
stock value (fin curr) 43.88
上面的输出结果展示了股息估值模型的计算结果,其中包括了预期增长率、每股收益、股息支付比率等参数。通过计算成本资本、现金流量贴现值、终端价值等指标,最终得出了公司的股票价值。在当前和财务调整后的情况下,计算结果显示了股票的合理价格为43.88美元。
(2)下面的这段代码计算了自由现金流(FCFF)和股利的估值期望值。首先,将不同情景下的FCFF和股利估值值组成列表,并设定了衰退概率。然后,通过对不同情景下的估值值进行加权平均,得到了FCFF和股利的估值期望值,从而更全面地考虑了衰退风险。
fcff_values_list = [stock_value_fcff_ttm_fixed, stock_value_fcff_norm_fixed, stock_value_fcff_ttm_ttm,
stock_value_fcff_norm_norm]
fcff_recession_values_list = [stock_value_fcff_ttm_fixed_recession, stock_value_fcff_norm_fixed_recession,
stock_value_fcff_ttm_ttm_recession, stock_value_fcff_norm_norm_recession]
div_values_list = [stock_value_div_ttm_fixed, stock_value_div_norm_fixed, stock_value_div_ttm_ttm,
stock_value_div_norm_norm]
div_recession_values_list = [stock_value_div_ttm_fixed_recession, stock_value_div_norm_fixed_recession,
stock_value_div_ttm_ttm_recession, stock_value_div_norm_norm_recession]
recession_probability = 0.5
fcff_value = summary_valuation(fcff_values_list)
fcff_recession_value = summary_valuation(fcff_recession_values_list)
ev_fcff = fcff_value * (1 - recession_probability) + fcff_recession_value * recession_probability
div_value = summary_valuation(div_values_list)
div_recession_value = summary_valuation(div_recession_values_list)
ev_dividends = div_value * (1 - recession_probability) + div_recession_value * recession_probability
(3)计算自由现金流(FCFF)和股利的估值差异,以及股票的清算价值与当前价格之间的差异。根据不同的情况进行了条件判断,如果估值值大于0,则计算出价格与估值之间的百分比差异;如果估值值小于等于0,则将差异值设置为10,这可能表示着一种异常情况。
fcff_delta = price_per_share / ev_fcff - 1 if fcff_value > 0 else 10
div_delta = price_per_share / ev_dividends - 1 if div_value > 0 else 10
liquidation_delta = price_per_share / liquidation_per_share - 1 if liquidation_per_share > 0 else 10
(4)请看下面的的代码,用于打印输出计算的估值数据,主要包括:
- FCFF值列表,包括四个不同情景下的FCFF值。
- 带有经济衰退情景的FCFF值列表。
- 股利值列表,包括四个不同情景下的股利值。
- 带有经济衰退情景的股利值列表。
- 每股价格。
- FCFF估值结果。
- FCFF偏差。
- 股利估值结果。
- 股利偏差。
print("FCFF values")
print([round(x, 2) for x in fcff_values_list])
print("\nFCFF values w/ Recession")
print([round(x, 2) for x in fcff_recession_values_list])
print("\n\nDiv values")
print([round(x, 2) for x in div_values_list])
print("\nDiv values w/ Recession")
print([round(x, 2) for x in div_recession_values_list])
print("\n\n\n")
print("Price per Share", price_per_share)
print("FCFF Result", ev_fcff)
print("FCFF Deviation", fcff_delta)
print("Dividends Result", ev_dividends)
print("Dividends Deviation", div_delta)
执行后会输出:
FCFF values
[59.31, 54.0, 75.09, 71.83]
FCFF values w/ Recession
[42.92, 39.34, 46.93, 43.88]
Div values
[49.63, 48.94, 79.39, 82.64]
Div values w/ Recession
[35.41, 34.92, 48.82, 49.95]
Price per Share 120.97
FCFF Result 54.48574881278017
FCFF Deviation 1.2202135904503764
Dividends Result 53.31465660538761
Dividends Deviation 1.2689820717662768
通过打印这些数值,可以更好地了解不同情景下的估值结果,并评估市场价格与估值之间的差异。
标签:03,26,5y,value,growth,values,LangChain,ttm,mr From: https://blog.csdn.net/asd343442/article/details/139865871