跳到主要内容

DCF 估值 API 参考

共有三种模型可用。当一次请求计算其中多个模型时,一致估值为它们的加权平均:

模型依据默认权重
fcf最近三个财年的平均自由现金流,进行预测,加上 Gordon 终值,减去净债务50 %
eps每股收益增长(历史与分析师趋势)以及终值市盈率(公司市盈率限定在 10–30 之间,未知时取 15)30 %
ddm股息贴现(Gordon)——仅适用于派发股息的公司20 %

权重在本次请求所计算的模型之间分配:仅计算 fcf 和 eps 时,一致估值按 50/30 加权并归一化。GET /dcf/{ticker} 只计算 fcf,因此其一致估值即为 FCF 估值。

输入数据仅来自数据库。 服务读取深度补全所存储的要点指标、年度报表(按财年分组,五年)、盈利趋势和分析师评级,以及主上市品种的最新日收盘价。请先运行 GET /fundamental/deep?ticker=...:从未补全过的代码会返回 404,并给出缺失数据的名称。

WACC。 股权成本按 CAPM 计算(无风险利率 + beta × 股权风险溢价),债务成本根据利息和债务计算,权重根据市值和债务确定;WACC 被限定在 5–20 % 之间。无风险利率取 FRED 提供的美国 10 年期国债收益率(参见 GET /macro/rates),否则使用 DCF_RISK_FREE_RATE。缺失的输入使用文档中规定的默认值(beta 1、税率 25 %、债务成本 = 无风险利率 + 2 个百分点),并添加一条警告。


GET /dcf/{ticker}​

仅使用 FCF 模型,采用默认假设:consensus_value 即为 FCF 估值。缓存 6 小时;force_refresh=true 会重新计算。如需三种模型请使用 /compare,或使用 POST 自行选择模型。

curl -s -H "X-API-KEY: $FONREX_API_KEY" "http://localhost:5000/dcf/AIR.PA"

响应结构:

{
"ticker": "AIR.PA",
"currency": "EUR",
"current_price": "155.42",
"shares_outstanding": "790000000",
"wacc": {
"wacc": "0.0865",
"cost_of_equity": "0.0912",
"cost_of_debt": "0.032",
"tax_rate": "0.25",
"weight_equity": "0.93",
"weight_debt": "0.07",
"beta_used": "1.1",
"cost_of_debt_source": "calculated",
"risk_free_rate_source": "fred_cached"
},
"models": {
"fcf": {
"model_name": "...",
"intrinsic_value_per_share": "168.20",
"upside_pct": "8.22",
"projected_values": ["..."],
"terminal_value": "...",
"present_values": ["..."],
"pv_terminal": "...",
"warnings": []
}
},
"solvency": { "debt_to_equity_ratio": "...", "net_debt_to_ebitda": "...", "interest_coverage_ratio": "...", "...": "..." },
"consensus_value": "168.20",
"consensus_upside_pct": "8.22",
"analyst_target": "175.00",
"computed_at": "2026-10-08T16:50:00Z"
}

以上数值仅作说明。金额和比率均为十进制数,序列化为字符串。models 以模型名(fcf、eps、ddm)为键;每个模型的 warnings 会说明何时应用了默认值或上限。risk_free_rate_source 为 fred_cached(FRED 利率)、env_fallback(DCF_RISK_FREE_RATE)或 client_override(你在 POST 中提供的假设)。


POST /dcf/{ticker}​

使用你自己的假设进行估值;从不缓存。它只做计算,因此只读密钥也可以调用。

字段类型默认值说明
modelslist["fcf"]从 fcf、eps、ddm 中选择
projection_yearsinteger53 到 10
terminal_growth_ratenumber0.025比率(0.025 = 2.5 %)
wacc_paramsobject—risk_free_rate、equity_risk_premium、beta_override、cost_of_debt_override、tax_rate_override
fcf_growth_override, eps_growth_override, dividend_growth_overridenumber—强制指定某个模型的初始增长率
model_weightsobject—一致估值的权重,例如 {"fcf": 0.6, "eps": 0.4, "ddm": 0}
curl -s -X POST -H "X-API-KEY: $FONREX_API_KEY" -H "Content-Type: application/json" \
-d '{"models": ["fcf", "eps"], "projection_years": 10, "terminal_growth_rate": 0.02,
"wacc_params": {"risk_free_rate": 0.035}}' \
http://localhost:5000/dcf/AIR.PA

终值增长率与贴现率之差在半个百分点以内时,会被限定(贴现率 − 0.5 %)并附带一条警告。对不派发股息的公司请求 ddm 会返回 404。


GET /dcf/{ticker}/compare​

并列展示三种模型及其加权一致估值。不派发股息的公司会得到一个估值为零的 DDM 条目,并附带一条警告,一致估值则由 FCF 和 EPS 计算得出。


GET /dcf/{ticker}/sensitivity​

按 WACC(行)× 终值增长率(列)网格计算的内在价值。

参数默认值
modelfcf
wacc_min, wacc_max, wacc_step0.06, 0.16, 0.02
growth_min, growth_max, growth_step0.01, 0.05, 0.01
force_refreshfalse

响应包含 ticker、model、wacc_range、growth_range 和 matrix;每个单元格给出内在价值以及相对当前价格的上涨或下跌空间。


GET /macro/rates​

估值所使用的无风险利率:

{
"risk_free_rate": {
"series_id": "DGS10",
"label": "10-Year Treasury Constant Maturity Rate",
"value": "0.0412",
"unit": "percent",
"observation_date": "2026-10-07"
}
}

value 是比率(0.0412 = 4.12 %),序列化为字符串,尽管 unit 写的是 percent。它依次取自:Redis(6 小时);macro_rates_cache 中存储的值(前提是该值在 6 小时内从 FRED 读取);FRED API(FRED_API_KEY);最后是较早存储的值。如果没有任何值,risk_free_rate 为 null,估值将使用 DCF_RISK_FREE_RATE。