用于股权估值的真实DCF(现金流折现)模型创建。从国内财务报告(年报/半年报)和分析师报告中检索财务数据,构建包含适当WACC计算的全面现金流预测,进行敏感性分析,并输出带有执行摘要的专业Excel模型。当用户需要使用DCF方法对公司进行估值、请求内在价值分析,或需要包含增长预测和终值计算的详细财务建模时使用。适用于A股、港股及中概股市场。触发词包括"dcf"、"DCF"等。
本技能按照投行标准创建机构级质量的DCF模型用于股权估值。每份分析都会生成详细的Excel模型(DCF工作表底部包含敏感性分析)。
这些约束适用于所有DCF模型构建过程。开始前请仔细阅读:
敏感性分析表:
单元格批注:
模型布局规划:
公式重新计算:
python recalc.py model.xlsx 30情景区块:
=IF($B$6=1,[熊市单元格],IF($B$6=2,[基准单元格],[牛市单元格]))从MCP服务器、用户提供的数据和网络获取数据。
数据来源优先级:
验证清单:
分析并记录:
创建汇总表显示:
历史指标(LTM):
收入:X百万美元
收入增长:X% CAGR
毛利率:X%
EBIT利润率:X%
折旧摊销占收入比例:X%
资本支出占收入比例:X%
FCF利润率:X%
方法论:
增长率框架:
公式结构:
三情景方法:
熊市情景:保守增长(如8-12%)
基准情景:最可能情景(如12-16%)
牛市情景:乐观增长(如16-20%)
固定/变动成本分析:
运营费用应建模反映真实的经营杠杆:
关键原则:
利润率扩张框架:
当前状态 → 目标状态(第5年)
毛利率:X% → Y%(基于规模、效率论证)
EBIT利润率:X% → Y%(收入增长 + 运营杠杆的结果)
按正确顺序构建FCF:
EBIT
(-) 税费(EBIT × 税率)
= NOPAT(税后净营业利润)
(+) 折旧摊销(非现金费用,占收入百分比)
(-) 资本支出(占收入百分比,通常4-8%)
(-) 营运资本变动(营运资本变化)
= 无杠杆自由现金流
营运资本建模:
维护性资本支出与增长性资本支出:
股权成本的CAPM方法论:
股权成本 = 无风险利率 + Beta × 股权风险溢价
其中:
- 无风险利率 = 当前10年期国债收益率
- Beta = 相对市场指数的5年月度股票Beta
- 股权风险溢价 = 5.0-6.0%(市场标准)
债务成本计算:
税后债务成本 = 税前债务成本 × (1 - 税率)
从以下确定税前债务成本:
- 信用评级(如有)
- 公司债券当前收益率
- 财务报表中的利息费用 / 总债务
资本结构权重:
股权市场价值 = 当前股价 × 流通股数
净债务 = 总债务 - 现金及等价物
企业价值 = 市值 + 净债务
股权权重 = 市值 / 企业价值
债权权重 = 净债务 / 企业价值
WACC = (股权成本 × 股权权重) + (税后债务成本 × 债权权重)
特殊情况:
典型WACC范围:
年中惯例:
现值计算:
对于每个预测年度:
FCF现值 = 无杠杆FCF × 折现因子
示例(第1年):
FCF = 1,000美元
WACC = 10%
期数 = 0.5
折现因子 = 1 / (1.10)^0.5 = 0.9535
现值 = 1,000美元 × 0.9535 = 954美元
预测期选择:
永续增长法(首选):
终期FCF = 最后一年的FCF × (1 + 永续增长率)
终值 = 终期FCF / (WACC - 永续增长率)
关键约束:永续增长率 < WACC(否则价值无限)
永续增长率选择:
不应超过:无风险利率或长期GDP增长
退出倍数法(替代):
终值 = 最后一年EBITDA × 退出倍数
退出倍数来源:
- 行业可比交易倍数
- 先例交易倍数
- 典型范围:8-15倍EBITDA
终值现值:
终值现值 = 终值 / (1 + WACC)^最终期数
其中最终期数考虑时间因素:
5年模型使用年中惯例:期数 = 4.5
终值合理性检查:
估值汇总结构:
(+) 预测FCF现值之和 = X百万美元
(+) 终值现值 = Y百万美元
= 企业价值 = Z百万美元
(-) 净债务 [或 + 净现金(如为负)] = A百万美元
= 股权价值 = B百万美元
÷ 稀释后流通股数 = C百万股
= 隐含每股价格 = XX.XX美元
当前股价 = YY.YY美元
隐含回报率 = (隐含价格 / 当前价格) - 1 = XX%
关键调整:
估值输出格式:
估值组成部分,金额(百万美元)
预测期FCF现值,X.X
终值现值,Y.Y
企业价值,Z.Z
(-) 净债务,A.A
股权价值,B.B
,,
流通股数(百万),C.C
隐含每股价格,$XX.XX
当前股价,$YY.YY
隐含上涨/(下跌)空间,+XX%
在DCF工作表底部构建三个敏感性分析表,显示估值如何随不同假设变化:
实现方式:这些是简单的二维网格(非Excel的"数据表"功能),每个单元格包含公式。每个单元格必须包含针对该特定假设组合的完整DCF重新计算。参见关键约束部分关于使用openpyxl以编程方式填充所有75个单元格的详细要求。
<correct_patterns>
本节包含构建DCF模型时应遵循的所有正确模式。
假设按每个情景组织在独立区块中:
关键结构 - 每个部分标题三行:
熊市情景假设(部分标题,合并单元格)
假设,FY1,FY2,FY3,FY4,FY5
收入增长率(%),12%,10%,9%,8%,7%
EBIT利润率(%),45%,44%,43%,42%,41%
基准情景假设(部分标题,合并单元格)
假设,FY1,FY2,FY3,FY4,FY5
收入增长率(%),16%,14%,12%,10%,9%
EBIT利润率(%),48%,49%,50%,51%,52%
牛市情景假设(部分标题,合并单元格)
假设,FY1,FY2,FY3,FY4,FY5
收入增长率(%),20%,18%,15%,13%,11%
EBIT利润率(%),50%,51%,52%,53%,54%
每个情景区块必须有列标题行,在部分标题正下方显示预测年度(FY2025E、FY2026E等)。没有这个,用户无法知道哪个假设值对应哪一年。
如何引用假设 - 创建汇总列:
推荐的汇总列模式(使用INDEX):
=INDEX(B10:D10, 1, $B$6)
不要这样 - 在各处使用分散的IF语句:
=IF($B$6=1,[熊市区块单元格],IF($B$6=2,[基准区块单元格],[牛市区块单元格]))
汇总列方法集中了逻辑,使模型更易于审计。
创建带有INDEX公式的汇总列,然后在预测中引用它:
步骤1 - FY1增长的汇总列:
=INDEX([熊市FY1增长]:[牛市FY1增长], 1, $B$6)
步骤2 - 收入预测引用汇总列:
第1年收入:=D29*(1+$E$10)
其中:
这种方法比在每个预测公式中嵌入IF语句更清晰,使审计使用的情景假设更加容易。
使用带有INDEX公式的汇总列,然后在FCF计算中引用它们:
汇总列方法:
项目,公式,参考
折旧摊销,=E29*$E$21,$E$21 = 折旧摊销%汇总列
资本支出,=E29*$E$22,$E$22 = 资本支出%汇总列
营运资本变动,=(E29-D29)*$E$23,$E$23 = 营运资本%汇总列
无杠杆FCF,=E57+E58-E60-E62,E57=NOPAT E58=折旧摊销 E60=资本支出 E62=营运资本变动
每个汇总列单元格包含一个INDEX公式,根据情景选择器从相应的情景区块提取数据。这使预测公式清晰且可审计。
在编写公式之前,确认情景区块行位置并设置汇总列。
每个硬编码值需要此格式:
"来源:[系统/文档], [日期], [参考], [URL(如适用)]"
示例:
项目,来源批注
股价,来源:市场数据脚本 2025-10-12 收盘价
流通股数,来源:年报 FY2024 第45页 注释12
历史收入,来源:年报 FY2024 第32页 合并报表
Beta,来源:市场数据脚本 2025-10-12 5年月度Beta
一致预期,来源:管理层指引 Q3 2024 业绩电话会议
关键:每个情景区块需要三个结构元素:
结构:
熊市情景假设(部分标题 - 合并A:G列)
假设,FY1,FY2,FY3,FY4,FY5
收入增长率(%),X%,X%,X%,X%,X%
EBIT利润率(%),X%,X%,X%,X%,X%
永续增长率,X%,,,,
WACC,X%,,,,
基准情景假设(部分标题 - 合并A:G列)
假设,FY1,FY2,FY3,FY4,FY5
收入增长率(%),X%,X%,X%,X%,X%
EBIT利润率(%),X%,X%,X%,X%,X%
永续增长率,X%,,,,
WACC,X%,,,,
牛市情景假设(部分标题 - 合并A:G列)
假设,FY1,FY2,FY3,FY4,FY5
收入增长率(%),X%,X%,X%,X%,X%
EBIT利润率(%),X%,X%,X%,X%,X%
永续增长率,X%,,,,
WACC,X%,,,,
如果没有显示预测年度的列标题行(FY2025E、FY2026E等),用户无法知道哪个假设值对应哪一年。此行为强制要求。
然后创建汇总列(通常是右侧下一列),使用INDEX公式根据情景选择器从选定的情景区块提取数据。预测公式引用此汇总列。
1. 首先写入所有标题和标签:
行,内容
1,[公司名称] DCF模型
2,股票代码 | 日期 | 年末
4,情景选择器
7,关键假设
26,假设标题
27-31,增长假设
...,...
2. 写入所有部分分隔符和空行
3. 然后使用锁定的行位置写入公式
4. 创建后立即测试公式
想象一下建筑施工:
Excel版本:
重要:这些不是Excel的"数据表"功能。这些是简单的网格,使用openpyxl在其中写入常规公式。是的,这意味着总共约75个公式(3个表格 × 每个25个单元格),但这很直接且是必需的。
使用公式以编程方式填充:
每个敏感性分析表必须完全填充公式,为每个假设组合重新计算隐含股价。不要使用Excel的数据表功能(它需要手动干预,无法通过openpyxl自动化)。
实现方法 - 具体示例:
表格结构(5×5网格):
WACC vs 永续增长率,2.0%,2.5%,3.0%,3.5%,4.0%
8.0%,[B88公式],[C88公式],[D88公式],[E88公式],[F88公式]
9.0%,[B89公式],[C89公式],[D89公式],[E89公式],[F89公式]
...,...,...,...,...,...
公式模式 - 单元格B88(WACC=8.0%,永续增长率=2.0%):
B88中的公式应使用以下内容重新计算隐含价格:
$A88(8.0%)B$87(2.0%)推荐方法:引用主DCF计算但替换这些值。
公式结构示例:
=([使用$A88作为折现率的FCF现值之和] + [使用B$87作为增长率和$A88作为WACC的终值] - [净债务]) / [流通股数]
关键 - 为5×5网格中的每个单元格编写公式(每个表格25个单元格,总共75个单元格)。 使用openpyxl在循环中以编程方式编写这些公式。不要跳过此步骤或留下占位符文本。
Python实现模式:
# 填充敏感性分析表的伪代码
for row_idx, wacc_value in enumerate(wacc_range):
for col_idx, term_growth_value in enumerate(term_growth_range):
# 构建使用wacc_value和term_growth_value的公式
formula = f"=<使用{wacc_value}和{term_growth_value}的DCF重新计算>"
ws.cell(row=start_row+row_idx, column=start_col+col_idx).value = formula
敏感性分析表必须在打开模型时立即可用,无需用户进行任何手动步骤。
</correct_patterns>
<common_mistakes>
本节包含构建DCF模型时应避免的所有错误模式。
不要使用线性近似:
// 错误 - 线性近似
B97: =B88*(1+(0.096-0.116)) // 假设线性关系
// 错误 - 除法捷径
B105: =B88/(1+(E48-0.07)) // 不重新计算完整DCF
不要留下占位符文本:
// 错误 - 占位符说明
"注意:使用Excel数据表功能(数据 → 模拟分析 → 数据表)填充敏感性分析表。"
// 错误 - 空单元格
[因为"这很复杂"而留空单元格]
不要混淆术语:
为什么这些捷径是错误的:
应拒绝的常见借口: "编写75+个公式感觉很复杂,所以我留个注释让用户手动完成。"
现实:当你在Python中使用openpyxl循环时,编写75个公式很简单。每个公式遵循相同的模式 - 只需替换行/列值。这是交付物的必需部分。
正确做法:用重新计算每个特定假设组合完整DCF的公式填充每个敏感性单元格
不要这样做:
为什么这是错误的:
正确做法:在创建每个硬编码值时添加单元格批注
症状:
FCF部分引用错误的假设行:
折旧摊销:=E29*$E$34 // 应该是$E$21,但引用了错误的行
资本支出:=E29*$E$41 // 应该是$E$22,但行发生了偏移
发生原因:
正确做法:首先锁定行布局,然后编写公式
不要这样构建假设:
假设,熊市,基准,牛市
FY1收入增长,10%,13%,16%
FY2收入增长,9%,12%,15%
这种垂直布局使每个情景内的年度进展难以查看。
为什么这是错误的:
正确做法:
不要交付没有边框的模型:
为什么这是错误的:
正确做法:在所有主要部分周围添加边框
不要这样做:
为什么这是错误的:
正确做法:所有硬编码输入使用蓝色文本,所有公式使用黑色文本,工作表链接使用绿色
不要这样做:
S&M:=E33*0.15 // E33 = 毛利(错误)
为什么这是错误的:
正确做法:
S&M:=E29*0.15 // E29 = 收入(正确)
此外,请注意以下错误:
这些错误最为常见。在开始任何DCF构建之前重新阅读本节。
</common_mistakes>
本技能使用xlsx技能进行所有电子表格操作。 xlsx技能提供:
recalc.py脚本自动公式重新计算本技能创建的所有Excel文件必须遵循xlsx技能要求,包括零公式错误和适当的重新计算。
每个DCF模型必须最大化:
创建两个工作表:
关键:敏感性分析表位于DCF工作表底部(而非单独的工作表)。这使所有估值输出集中在一起。
创建或修改Excel模型后,使用xlsx技能的recalc.py脚本重新计算所有公式:
python recalc.py [excel文件路径] [超时秒数]
示例:
python recalc.py AAPL_DCF_Model_2025-10-12.xlsx 30
脚本将:
预期输出格式:
{
"status": "success", // 或"errors_found"
"total_errors": 0, // 总错误数
"total_formulas": 42, // 文件中的公式数
"error_summary": {} // 仅在发现错误时出现
}
如果发现错误,输出将包含详细信息:
{
"status": "errors_found",
"total_errors": 2,
"total_formulas": 42,
"error_summary": {
"#REF!": {
"count": 2,
"locations": ["DCF!B25", "DCF!C25"]
}
}
}
修复所有错误并重新运行recalc.py直到状态为"success",然后交付模型。
重要:遵循xlsx技能的公式构建规则和数字格式约定。DCF技能添加特定的视觉呈现标准。
配色方案 - 两层:
第1层:字体颜色(xlsx技能强制要求)
第2层:填充颜色(可选,用于增强呈现)
两层如何协同工作(如果使用填充颜色):
字体颜色告诉你它是什么。填充颜色告诉你它在哪里(如果使用)。
重要:xlsx技能的字体颜色是强制性的。填充颜色是可选的 - 默认为白色/无填充,除非用户要求增强格式或颜色。
粗边框(1.5pt)围绕主要部分:
中等边框(1pt)在子部分之间:
细边框(0.5pt)围绕数据表:
无边框:表格内的单个单元格(保持整洁、可扫描)
边框是强制性的 - 没有专业边框的模型不符合客户要求。
数字格式(遵循xlsx技能标准):
0.0%(一位小数)$#,##0;每股使用$#,##0.00 - 始终在标题中注明单位("收入(百万美元)")$#,##0;($#,##0);-)#,##0带千位分隔符(#,##0)使用括号(非减号)单元格批注(所有硬编码输入强制要求):
根据xlsx技能,所有硬编码值必须有单元格批注记录来源。格式:"来源:[系统/文档], [日期], [参考], [URL(如适用)]"
关键:在创建单元格时添加批注。不要推迟到最后。
第1部分:标题
行,内容
1,[公司名称] DCF模型
2,股票代码:[XXX] | 日期:[日期] | 年末:[FYE]
3,空白
4,情景选择器单元格(1=熊市 2=基准 3=牛市)
5,情景名称显示(公式:=IF([选择器]=1,"熊市",IF([选择器]=2,"基准","牛市")))
第2部分:市场数据(不依赖情景)
项目,数值
当前股价,$XX.XX
流通股数(百万),XX.X
市值(百万美元),[公式]
净债务(百万美元),XXX [或净现金(如为负)]
第3部分:DCF情景假设
为每个情景创建独立假设区块(熊市、基准、牛市),包含DCF特定假设(收入增长率%、EBIT利润率%、税率%、折旧摊销占收入%、资本支出占收入%、营运资本变动占收入增量%、永续增长率、WACC)横向排列在预测年度中。每个区块必须包含部分标题、显示预测年度的列标题行(FY1、FY2等)和数据行。参见<correct_patterns>部分的"正确假设表结构"获取确切布局。
第4部分:历史与预测财务数据
引用汇总列(如"已选情景"),从情景区块提取数据,而非在每个预测行中使用分散的IF公式。
利润表(百万美元),2020A,2021A,2022A,2023A,2024E,2025E,2026E
收入,XXX,XXX,XXX,XXX,[=E29*(1+$E$10)],[=F29*(1+$E$11)],[=G29*(1+$E$12)]
增长率,XX%,XX%,XX%,XX%,[=E29/D29-1],[=F29/E29-1],[=G29/F29-1]
,,,,,,
毛利,XXX,XXX,XXX,XXX,[=E29*E33],[=F29*F33],[=G29*G33]
毛利率,XX%,XX%,XX%,XX%,[=E33/E29],[=F33/F29],[=G33/G29]
,,,,,,
运营费用:,,,,,,,
S&M,XXX,XXX,XXX,XXX,[=E29*0.15],[=F29*0.14],[=G29*0.13]
R&D,XXX,XXX,XXX,XXX,[=E29*0.12],[=F29*0.11],[=G29*0.10]
G&A,XXX,XXX,XXX,XXX,[=E29*0.08],[=F29*0.07],[=G29*0.07]
总运营费用,XXX,XXX,XXX,XXX,[=E36+E37+E38],[=F36+F37+F38],[=G36+G37+G38]
,,,,,,
EBIT,XXX,XXX,XXX,XXX,[=E33-E39],[=F33-F39],[=G33-G39]
利润率,XX%,XX%,XX%,XX%,[=E41/E29],[=F41/F29],[=G41/G29]
,,,,,,
税费,(XX),(XX),(XX),(XX),[=E41*$E$24],[=F41*$E$24],[=G41*$E$24]
税率,XX%,XX%,XX%,XX%,[=E43/E41],[=F43/F41],[=G43/G41]
,,,,,,
NOPAT,XXX,XXX,XXX,XXX,[=E41-E43],[=F41-F43],[=G41-G43]
关键公式模式:
=E29*(1+$E$10),其中$E$10是第1年增长的汇总列=E29*(1+IF($B$6=1,$B$10,IF($B$6=2,$C$10,$D$10)))这种方法更清晰、更易于审计,通过集中情景逻辑防止公式错误。
第5部分:自由现金流构建
关键:验证行引用指向正确的假设行。创建后立即测试公式。
现金流(百万美元),2020A,2021A,2022A,2023A,2024E,2025E,2026E
NOPAT,XXX,XXX,XXX,XXX,[=E45],[=F45],[=G45]
(+) 折旧摊销,XXX,XXX,XXX,XXX,[=E29*$E$21],[=F29*$E$21],[=G29*$E$21]
占收入比例,XX%,XX%,XX%,XX%,[=E58/E29],[=F58/F29],[=G58/G29]
(-) 资本支出,(XX),(XX),(XX),(XX),[=E29*$E$22],[=F29*$E$22],[=G29*$E$22]
占收入比例,XX%,XX%,XX%,XX%,[=E60/E29],[=F60/F29],[=G60/G29]
(-) 营运资本变动,(XX),(XX),(XX),(XX),[=(E29-D29)*$E$23],[=(F29-E29)*$E$23],[=(G29-F29)*$E$23]
占收入增量比例,XX%,XX%,XX%,XX%,[=E62/(E29-D29)],[=F62/(F29-E29)],[=G62/(G29-F29)]
,,,,,,
无杠杆FCF,XXX,XXX,XXX,XXX,[=E57+E58-E60-E62],[=F57+F58-F60-F62],[=G57+G58-G60-G62]
行引用示例(基于布局规划):
编写公式前:确认这些行号与实际布局匹配。测试一列,然后复制到其他列。
第6部分:折现与估值
DCF估值,2024E,2025E,2026E,2027E,2028E,终值
无杠杆FCF(百万美元),XXX,XXX,XXX,XXX,XXX,
期数,0.5,1.5,2.5,3.5,4.5,
折现因子,0.XX,0.XX,0.XX,0.XX,0.XX,
FCF现值(百万美元),XXX,XXX,XXX,XXX,XXX,
,,,,,,
终期FCF(百万美元),,,,,,,XXX
终值(百万美元),,,,,,,XXX
终值现值(百万美元),,,,,,,XXX
,,,,,,
估值汇总(百万美元),,,,,,
FCF现值之和,XXX,,,,,
终值现值,XXX,,,,,
企业价值,XXX,,,,,
(-) 净债务,(XX),,,,,
股权价值,XXX,,,,,
,,,,,,
流通股数(百万),XX.X,,,,,
隐含每股价格,$XX.XX,,,,,
当前股价,$XX.XX,,,,,
隐含上涨/(下跌)空间,XX%,,,,,
股权成本计算,,
无风险利率(10年期国债),X.XX%,[黄色输入]
Beta(5年月度),X.XX,[黄色输入]
股权风险溢价,X.XX%,[黄色输入]
股权成本,X.XX%,[蓝色计算]
,,
债务成本计算,,
信用评级,AA-,[黄色输入]
税前债务成本,X.XX%,[黄色输入]
税率,XX.X%,[链接到DCF工作表]
税后债务成本,X.XX%,[蓝色计算]
,,
资本结构,,
当前股价,$XX.XX,[链接到DCF]
流通股数(百万),XX.X,[链接到DCF]
市值(百万美元),X,XXX,[计算]
,,
总债务(百万美元),XXX,[黄色输入]
现金及等价物(百万美元),XXX,[黄色输入]
净债务(百万美元),XXX,[计算]
,,
企业价值(百万美元),X,XXX,[计算]
,,
WACC计算,权重,成本,贡献
股权,XX.X%,X.X%,X.XX%
债权,XX.X%,X.X%,X.XX%
,,
加权平均资本成本,X.XX%,[绿色输出]
关键WACC公式:
市值 = 股价 × 流通股数
净债务 = 总债务 - 现金
企业价值 = 市值 + 净债务
股权权重 = 市值 / EV
债权权重 = 净债务 / EV
WACC = (股权成本 × 股权权重) + (税后债务成本 × 债权权重)
术语提醒:"敏感性分析表" = 带有行标题、列标题和每个数据单元格中公式的简单二维网格。不是Excel的"数据表"功能(数据 → 模拟分析 → 数据表)。您将使用openpyxl在每个单元格中写入常规Excel公式。
位置:DCF工作表第87行及以后(非单独工作表)
三个敏感性分析表,垂直堆叠:
需编写的公式总数:75个(这是必需的,非可选)
关键:所有敏感性分析表单元格必须使用openpyxl以编程方式填充公式。不要使用线性近似捷径。不要留下占位符文本或关于手动步骤的注释。不要因为"这很复杂"而合理化留空单元格 - 使用Python循环生成公式。
表格设置:
无需手动干预 - 敏感性分析表必须在用户打开文件时完全可用。
三情景框架:
公式实现:
不要使用分散在各处的嵌套IF公式。 相反,创建一个汇总列,使用INDEX或OFFSET公式从相应的情景区块提取数据。
推荐模式(使用INDEX):
=INDEX(B10:D10, 1, $B$6),其中B10:D10 = 熊市/基准/牛市值,1 = 行偏移,$B$6 = 情景选择器单元格(1、2或3)
然后在所有预测中引用汇总列:
第1年收入:=D29*(1+$E$10),其中$E$10是第1年增长的汇总列值。
这种方法集中了情景逻辑,使模型更易于审计和维护。
文件命名:[股票代码]_DCF_Model_[日期].xlsx
两个工作表:
关键特性:情景选择器(1/2/3)、带有INDEX/OFFSET公式的汇总列、颜色编码单元格、所有输入的单元格批注、专业边框
如果遇到错误或不合理结果,请阅读TROUBLESHOOTING.md获取详细的调试指导。
收集市场数据:
收集历史财务数据:
开始模型构建,使用本技能详述的DCF方法论
验证结构:
重新计算公式:运行 python recalc.py model.xlsx 30
检查输出:
status为"success" → 继续第4步status为"errors_found" → 检查error_summary并阅读TROUBLESHOOTING.md获取调试指导修复错误并重新运行recalc.py直到状态为"success"
抽查公式:
交付模型
交付DCF模型前:
必需:
python recalc.py model.xlsx 30直到状态为"success"(零公式错误)验证:
[股票代码]_DCF_Model_[日期].xlsx