Community生產力與協作github.com

wind-alice/dcf-model

建立真實的 DCF(現金流量折現)模型進行股權估值。從 SEC 申報文件和分析師報告中擷取財務資料,建立完整的現金流量預測並進行適當的 WACC 計算,執行敏感度分析,並輸出專業的 Excel 模型與執行摘要。

dcf-model 是什麼?

此技能專為 AI 代理(如 Claude Code、Cursor、Codex)設計,可建立符合投資銀行標準的機構級 DCF 模型。它支援 Office JS(嵌入 Excel 時)或 Python/openpyxl(生成獨立 .xlsx 檔案),並能透過 MCP 伺服器或使用者提供的資料自動擷取財務數據。此技能背後的嚴格規則確保了穩健性:公式必須優於硬編碼(即所有預測、邊際、折現因子和敏感度儲存格都必須是即時的 Excel 公式,而非計算出的數值),且模型採用分步構建方式,每個階段(資料檢索、收入預測、自由現金流構建、WACC 計算、終值與權益橋樑)皆須經使用者確認。它還能產生專業的輸出,包括具備異常行數的敏感度表格以確保中心基準格、針對每個硬編碼輸入的儲存格註解、以及熊市/基準/牛市情境區塊,並透過 `recalc.py` 執行強制性的公式重新計算,以在交付前達到「成功」狀態。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wind-alice/alicemarket/tree/main/skills/dcf-model

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

DCF 模型建構器

概述

此技能可建立符合機構品質的 DCF 模型用於股權估值,遵循投資銀行標準。每次分析都會產出一個詳細的 Excel 模型(在 DCF 工作表底部包含敏感度分析)。

工具

  • 預設使用使用者提供的所有資訊以及可用的 MCP 伺服器進行資料來源擷取。

關鍵限制 - 請先閱讀

這些限制適用於所有 DCF 模型建構過程。請在開始前審閱:

環境:Office JS vs Python/openpyxl:

  • 如果在 Excel 內部執行(Office 增益集 / Office JS 環境): 請直接使用 Office JS — 不要使用 Python/openpyxl。透過 range.formulas = [["=D19*(1+$B$8)"]] 編寫公式。不需要單獨的重新計算步驟;Excel 會原生計算。使用 range.format.* 進行樣式設定。同樣適用的公式優先於硬編碼規則:對於衍生儲存格,請始終設定 .formulas,切勿設定 .values。
  • 如果產生獨立的 .xlsx 檔案(無即時 Excel 工作階段): 使用如下的 Python/openpyxl,然後在交付前執行 recalc.py。
  • 此技能的其餘部分使用 openpyxl 範例 — 在該環境中請轉換為 Office JS API 呼叫,但所有原則(公式字串、儲存格註解、區段檢查點、敏感度表格迴圈)都完全相同。

⚠️ Office JS 合併儲存格陷阱: 在建立合併儲存格的區段標題時,不要對合併範圍呼叫 .merge() 然後設定 .values — Office JS 仍會回報該範圍的原始維度,並拋出 InvalidArgument: The number of rows or columns in the input array doesn't match the size or dimensions of the range。應改為先將值寫入左上角儲存格,然後再合併並格式化整個範圍:

// 錯誤 — 會拋出 InvalidArgument:
const hdr = ws.getRange("A7:H7");
hdr.merge();
hdr.values = [["市場數據與關鍵輸入"]];  // 1×1 陣列 vs 1×8 範圍 → 失敗

// 正確 — 先在單一儲存格設定值,然後合併 + 格式化範圍:
ws.getRange("A7").values = [["市場數據與關鍵輸入"]];
const hdr = ws.getRange("A7:H7");
hdr.merge();
hdr.format.fill.color = "#1F4E79";
hdr.format.font.bold = true;
hdr.format.font.color = "#FFFFFF";

這適用於 DCF 中的每個合併區段標題(市場數據、情境區塊、現金流量預測、終值、估值摘要、敏感度表格).

公式優先於硬編碼(不可協商):

  • 每個預測、邊際、折現因子、現值 (PV) 和敏感度儲存格都必須是即時的 Excel 公式 — 絕不能是在 Python 中計算後寫入的數值
  • 使用 openpyxl 時:ws["D20"] = "=D19*(1+$B$8)" 是正確的;ws["D20"] = calculated_revenue 是錯誤的
  • 唯一允許的硬編碼數字是:(1) 原始歷史輸入,(2) 假設驅動因子(成長率、WACC 輸入、終值成長率 g),(3) 當前市場數據(股價、債務餘額)
  • 如果你發現自己在 Python 中計算某個值並將結果寫入 — 立即停止。模型必須能夠在使用者更改假設時靈活調整。

與使用者逐步驗證(不要一口氣從頭做到尾):

  • 資料檢索後 → 向使用者顯示原始輸入區塊(營收、利潤率、股數、淨債務),確認後再進行預測
  • 營收預測後 → 顯示預測的營收和成長率,確認後再建立利潤率結構
  • 自由現金流 (FCF) 建立後 → 顯示完整的 FCF 時間表,確認邏輯後再計算 WACC
  • WACC 計算後 → 顯示計算過程和輸入,確認後再進行折現
  • 終值 + 現值 (PV) 計算後 → 顯示權益橋樑(企業價值 EV → 權益價值 → 每股價值),確認後再建立敏感度表格
  • 在每個階段捕捉錯誤 — 如果在敏感度表格建立後才發現錯誤的利潤率假設,則需要重建下游所有內容。

敏感度表格:

  • 使用奇數行和奇數列(標準為 5×5,有時為 7×7)— 這可確保有一個真正的中心儲存格
  • 中心儲存格 = 基準情境。 建構軸值,使中間的行標題和中間的欄標題與模型的實際假設完全相等(例如,如果基準 WACC = 9.0%,則中間行就是 9.0%;如果終值成長率 g = 3.0%,則中間欄就是 3.0%)。因此,中心儲存格的輸出必須等於模型實際的隱含股價 — 這是驗證表格建構是否正確的完整性檢查。
  • 高亮中心儲存格,使用中藍色填滿 (#BDD7EE) + 粗體字型,以便立即識別哪個儲存格是基準情境。
  • 填滿所有儲存格(通常為 3 個表格 × 25 個儲存格 = 75 個)並使用完整的 DCF 重新計算公式
  • 使用 openpyxl 迴圈(或 Office JS 迴圈)以程式化方式編寫公式
  • 沒有預留位置文字,沒有線性近似,不需要手動步驟
  • 每個儲存格必須針對該假設組合重新計算完整的 DCF

儲存格註解:

  • 在建立每個硬編碼值時立即加入儲存格註解
  • 格式:「來源:[系統/文件],[日期],[參考],[URL 若適用]」
  • 在進入下一個區段之前,每個藍色輸入都必須有註解
  • 不要延遲到最後才做,也不要寫「待辦:加入來源」

模型版面規劃:

  • 在編寫任何公式之前,先定義所有區段的列位置
  • 先編寫所有標題和標籤
  • 其次編寫所有區段分隔線和空白列
  • 然後使用固定的列位置編寫公式
  • 建立後立即測試公式

公式重新計算:

  • 在交付前執行 python recalc.py model.xlsx 30
  • 修復所有錯誤,直到狀態為「success」
  • 要求零公式錯誤(#REF!、#DIV/0!、#VALUE! 等)

情境區塊:

  • 為熊市/基準/牛市案例建立單獨的區塊
  • 在每個區塊中,將假設水平顯示在預測年份中
  • 使用 IF 公式:=IF($B$6=1,[熊市儲存格],IF($B$6=2,[基準儲存格],[牛市儲存格]))
  • 驗證公式是否參考了正確的情境區塊儲存格

DCF 處理流程

步驟 1:資料檢索與驗證

從 MCP 伺服器、使用者提供的資料以及網際網路擷取資料。

資料來源優先順序:

  1. MCP 伺服器(若已設定)— 來自 Daloopa 等提供者的結構化財務資料
  2. 使用者提供的資料 — 使用者研究中的歷史財務資料
  3. 網路搜尋/擷取 — 需要時的當前價格、Beta、債務和現金

驗證檢查清單:

  • 驗證淨債務與淨現金(對估值至關重要)
  • 確認稀釋後流通在外股數(檢查近期庫藏股買回/增發)
  • 驗證歷史利潤率與商業模式一致
  • 交叉比對營收成長率與行業基準
  • 驗證稅率是否合理(通常為 21-28%)

步驟 2:歷史分析(3-5 年)

分析並記錄:

  • 營收成長趨勢:計算年複合成長率 (CAGR),找出驅動因素
  • 利潤率演變:追蹤毛利率、EBIT 利潤率、FCF 利潤率
  • 資本密集度:折舊攤銷 (D&A) 和資本支出 (CapEx) 佔營收百分比
  • 營運資金效率:淨營運資金 (NWC) 變動佔營收成長百分比
  • 回報指標:ROIC、ROE 趨勢

建立摘要表格,顯示如下:

歷史指標(LTM):
營收:X 百萬美元
營收成長:X% CAGR
毛利率:X%
EBIT 利潤率:X%
D&A 佔營收百分比:X%
CapEx 佔營收百分比:X%
FCF 利潤率:X%

步驟 3:建立營收預測

方法論:

  1. 從最新實際營收開始(LTM 或最近會計年度)
  2. 為每個預測年度應用成長率
  3. 同時顯示金額和計算出的成長率百分比

成長率架構:

  • 第 1-2 年:較高成長,反映近期能見度
  • 第 3-4 年:逐步趨緩,朝行業平均水準邁進
  • 第 5 年以後:接近終值成長率

公式結構:

  • 營收(第 Y 年) = 營收(第 Y-1 年) × (1 + 成長率(第 Y 年))
  • 成長率 = 使用者提供的或根據指導原則計算的百分比值

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

wind-alice/add_to_winner_decision_skill

判断盈利仓是否适合继续加仓,并给出加仓前提、节奏安排、保护规则与停止扩张边界。适用于趋势延续、核心持仓滚动放大与强势股二次进攻场景。

wind-alice/after_close_watchlist_recap_skill

在收盘后总结自选股当日表现、驱动因素、强弱分化与次日观察点。适用于每日收盘复盘、维护自选股观察节奏、为次日盘前准备提供输入等场景。

wind-alice/a-share-primary-theme-identification

用于A股市场主线识别,聚焦市场结构 / 题材周期 / 资金行为。本skill主要用户问题回答、撰写报告、撰写金融类文章等场景。本报告输出内容较多,不适合简单对话场景。各类信息与数据的获取,可以使用wind.financial.data工具,以合理的关键字或关键字组合进行获取。每天开盘后、午盘、收盘后,用户都需要快速知道: 今天市场到底在交易什么,真正的主线是什么,情绪在什么位置,明天应该盯哪里。

wind-alice/avatar-charlie-munger-thinking

使用查理·芒格式的逆向思考、激励分析、认知偏误叠加和多学科模型检验复杂决策。用于评估商业与投资判断、组织行为、政策效果、重大选择、全民共识、失败风险,或识别论证中的单一视角和心理盲区。

wind-alice/avatar-nassim-taleb-risk

使用纳西姆·塔勒布式的尾部风险、利益共担、减法、林迪效应和杠铃策略分析不确定性。用于投资、商业、政策、职业、产品或个人决策中的出局风险、不可逆损失、脆弱性、代理问题、新旧方案比较和资源配置。

wind-alice/avatar-naval-ravikant-thinking

使用纳瓦尔·拉维坎特式的重新定义、欲望审计、特定知识和杠杆框架澄清职业、创业、财富、幸福、自由与人生选择。用于识别错误问题、冲突欲望、独特竞争力、AI替代风险、许可依赖、边际成本和长期复利方向。

wind-alice/avatar-warren-buffett-investing

使用沃伦·巴菲特式的能力圈、护城河、管理层诚信、所有者收益和资本配置框架分析企业与长期投资。用于研究公司商业模式、竞争优势、现金质量、管理层、估值、安全边际,或判断一项投资应继续研究、等待还是放弃。

wind-alice/backtest-expert

Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.

wind-alice/breakout_candidate_finder_skill

批量识别突破形态成熟、量价结构健康、催化配合较好的候选股,并输出优先级、触发条件与失效边界。适用于短中线选股、盘前候选池整理、板块轮动中筛选领涨预备股等场景。

wind-alice/breakout_trade_execution_skill

围绕突破交易制定从观察、触发、跟进到失效处理的落地执行方案,兼顾量价确认、环境配合与失败撤退。适用于盘前预案、盘中突破跟踪与强势股首日执行场景。

wind-alice/bull_bear_case_builder_skill

同时搭建看多与看空逻辑,比较证据强弱、关键变量与情景路径,帮助识别核心分歧。适用于防止确认偏误、研究前辩论、投资观点校验等场景。

wind-alice/business_model_decoder_skill

把公司如何获客、交付、定价、赚钱和扩张的逻辑拆解清楚,帮助快速理解业务运转方式。适用于看不懂公司业务、研究前补基础、业务结构梳理等场景。

wind-alice/buyback_program_reviewer_skill

判断回购计划的规模、动机、执行约束与真实利好程度。适用于公司宣布回购、估值争议期、资本配置分析等场景。

wind-alice/canslim_growth_scan_skill

依据成长股框架批量筛选业绩、预期、相对强度与供需结构共振的强势标的,并输出候选分层与跟踪重点。适用于成长股猎手、趋势成长选股、候选池批量扫描等场景。

wind-alice/conference_call_takeaway_skill

提炼业绩会中的新信息、管理层语气变化、问答焦点与潜在警讯。适用于听完业绩会、阅读纪要后快速更新观点等场景。

wind-alice/daily_watchlist_morning_brief_skill

为自选股生成盘前简报,汇总隔夜公告、新闻、价格变化、事件日程与今日观察重点。适用于开盘前快速浏览重点、晨会准备、盘前设定观察顺序等场景。

wind-alice/dip_buy_decision_skill

判断下跌或回调中的个股是否值得承接,并给出观察区、试错条件、分批节奏与放弃标准。适用于趋势回踩、事件后回落、震荡低吸与左侧谨慎试错场景。

wind-alice/dividend_change_explainer_skill

解读分红提升、削减、暂停或恢复背后的原因、持续性与投资含义。适用于收益型投资判断、公告复盘、长期现金流跟踪等场景。

wind-alice/dividend_growth_entry_skill

寻找股息持续增长、经营质量稳定且估值回落到合理区间的候选股,并输出入场观察区、成长支撑与失效边界。适用于收益成长双目标选股、长期配置、回调布局等场景。

相關技能