FinRobot 确定性估值引擎 / AI4Finance-Foundation

FinRobot 确定性估值引擎:32 个算子算数,LLM 只负责写

官方把 V2 的设计原则写成一句话:模型负责推理,软件负责计算,智能体负责编排,系统负责验证。落到代码上就是 26 个估值算子 + 6 个审计算子 + 7 个协调器,全部是纯 Python,模型不参与。本页不只列方法名,而是给出本站真跑这些官方算子的输出(WACC、敏感性矩阵、蒙特卡洛分位数),以及四道闸门被触发时的报错原文——算不出来的时候,它宁可不发布。

26 算子 + 6 审计 + 7 协调器本站实测:DCF / 敏感性 / 蒙特卡洛四道闸门:算不出不发布
数据层7 providers 取数
确定性算子26 个纯 Python 算子
审计算子6 个叙述对账
LLM 只写叙述13 章研报
「代码算数、LLM 写话」的四段示意;本站实测输出与报错原文见下文。
确定性计算26 算子 · 纯 Python
审计6 个算子上线前对账
协调器7 个组装算子输入
本站实测WACC 9.509% · MC 中位 23.11
方法选型

FinRobot 的估值方法该怎么选?

官方提供 DCF、DDM、LBO、可比公司、蒙特卡洛、剩余收益与分部估值等多条路径,但每条路径都有它不该用的场合。下表把「V2 里对应哪个算子、什么时候别用」并排写出来——选错方法比算错数字更常见。

方法V2 里的对应物适合什么公司通常需要哪些输入什么时候不该用
现金流折现 DCFoperators/dcf.py;CLI finrobot dcf <ticker>现金流可预测、非金融业的公司营收基数与增长率、EBITDA 利润率、资本开支与营运资本占比、税率、WACC 组件、终端增长率、股本数、净负债银行保险(现金流与净负债的定义本身不成立)、稳态现金流为负、WACC 与终端增长率利差过薄
股利折现 DDMoperators/ddm.py;CLI finrobot ddm(finrobot dcf 也会在更合理时自动切到它)分红稳定、派息政策清晰的公司每股股利与增长率序列、股权成本、派息率、净资产收益率、股本数不分红或派息政策不稳定的公司
杠杆收购 LBOoperators/lbo.py;CLI finrobot lbo现金流稳定、可承受杠杆的成熟标的交易价格与溢价、债务结构与利率、退出倍数与持有年限现金流波动大、行业周期极强的标的
可比公司与倍数operators/multiples.py、peer_screen.py、xbrl_aligned_comps.py;CLI finrobot comps <ticker> --peers …能找到同行业可比标的同业集合、口径对齐(TTM 与财年)、企业价值桥同业样本过少;给银行用 EV/EBITDA 属于类目错误(系统会直接撤下该方法)
蒙特卡洛模拟operators/monte_carlo.py想表达假设不确定性而不是一个点估计一套 DCF 输入、各参数标准差、当前价格把它当成概率保证:它只是对假设做扰动后的分布
剩余收益与分部估值operators/residual_income.py、sotp.py、sotp_scenario.py重资产、金融类、多分部公司账面价值与净资产收益,或分部数据与分部估值口径分部披露不足时无法建立可信的分部口径
组合汇总operators/valuation_aggregator.py、valuation_synthesis.py已经有多种方法结果,需要合成区间各方法的区间与置信度、当前价格、方法适用性标记方法之间分歧过大时不要强行合成单点(系统会撤回点目标)
选方法的顺序建议:先判断公司类型(是不是金融业、有没有稳定分红、有没有可比同业),再决定用哪一套;把「方法适用性」放在「参数精调」之前。FinRobot 的估值流水线会按行业做类目判断,但判断结果需要你复核。
核心原则

FinRobot 的「模型推理、软件计算」落到代码上是什么?

官方在 2026-09-28 的提交里把这条原则写成一句话:模型负责推理,软件负责计算,智能体负责编排,系统负责验证。它不是口号,四个分句各自对应仓库里可清点的东西。

分句谁产生落到代码上是什么怎么验证注意点
模型负责推理语言模型选方法、解释结果、写章节叙述;不产生数字看叙述里的数字能否在算子输出里找到叙述没有数字支撑时,系统只给非阻塞警告,不会替你改写
软件负责计算纯 Python 算子26 个估值与分析算子 + 6 个审计算子 + 7 个协调器,无模型参与按固定 commit 取算子直接调用,不需要模型与网络数一数 compute/operators/ 下非 __init__ 的 .py 即可核对数量
智能体负责编排Lead Agent1 个 Lead 选流程,5 个流水线角色执行,3 个辩论角色做多空与裁决看 CLI 的运行记录与制品:每一步都有类型化输出8 个角色的行为写在 markdown 指令文件里,改行为不用改 Python
系统负责验证审计算子 + 制品契约上线前拿叙述跟数字对账,并把问题放进警告通道读输出里的警告行;缺数据会留下原因而不是静默填零审计算子不改结论(方向、目标价、置信度都不动)
这一句的出处官方 README对应固定 commit 2717499(2026-09-28)在仓库 README 顶部即可读到英文原文原则属于当前生产版 V2;教学版 V0 官方明说没有确定性计算与溯源
为什么这条边界值得单独记:金融 AI 最常见的问题不是「模型算错」,而是「模型在算」。把数字与叙述分开之后,你至少能分别审计这两部分:数字错了可以复算,判断错了可以讨论。
但也要看清它的边界:这条原则解决的是「数字不被编造」,不解决「假设是否合理」与「方向性判断是否成立」——后两者仍然需要人来负责。
算子清单

FinRobot 的 32 个算子分别管什么?

数字由 32 个纯 Python 算子产生:26 个估值与分析算子、6 个审计算子;另有 7 个协调器负责把数据层的输出组装成算子输入。下面是本站按固定 commit 2717499 清点后的分组。

分组数量包含哪些作用注意点
现金流折现类7dcf、dcf_seed、ddm、ddm_seed、lbo、lbo_seed、residual_income把假设折成现值并桥接到每股价值种子算子负责从财报推导假设,是「谁选了这些假设」的答案所在
倍数与同业4multiples、peer_screen、xbrl_aligned_comps、cyclical_peers同业倍数、周期股口径修正同业样本与口径对齐方式直接决定结果可信度
情景与模拟3monte_carlo、sotp、sotp_scenario假设扰动分布、分部加总与情景蒙特卡洛输出的是假设扰动的分布,不是概率保证
前瞻与口径4forward_estimates、fx_normalize、data_processor、earnings前瞻指标、币种归一、财报口径与盈利惊喜币种与期间口径是很多「看起来对」的错误的源头
信号与催化4signal、sniper、catalyst、ownership技术信号、事件与持股结构属于研究线索,不是买卖指令
汇总与漂移4valuation_aggregator、valuation_synthesis、report_drift、wacc多方法合成、权重与漂移检测、折现率计算漂移检测专门用来发现「同一标的两次运行结果不一致」
审计算子6currency_caliber、ev_bridge、narrative_divergence、narrative_numeric_grounding、sector_sign、ttm_period拿叙述与数字对账:币种口径、企业价值桥、叙述分歧、数字绑定性、行业符号、TTM 期间只报警、不改结论;警告是「哪一段不该全信」的路标
协调器7dcf_seed、extractor、historical_extractor、market、news、segment_extractor、technical_payload把 7 个数据提供方的原始返回组装成算子输入取数时间会被记录下来(直接构造输入时该字段为空,代码注释明确不伪造当前时间)
怎么自己核对这组数字:在固定 commit 下数三个目录——finrobot_desktop/finrobot/engine/compute/operators/(去掉 __init__.py 应为 26 个)、同目录 audit/(应为 6 个)、compute/coordinators/(应为 7 个)。数量会随版本变化,方法比数量更稳定:只要「数字来自算子、叙述来自模型」这条分工不变,核对方式就成立。
估值流程

跑一次估值会经过哪几步、每步该看到什么?

下按 V2 的实际执行顺序列出六步,并给出每一步的预期输出。把它当成「出错时定位在哪一环」的地图,而不是操作手册——具体命令以官方文档为准。

  1. 准备环境与入口

    在 finrobot_desktop/ 下执行 uv sync,再用 finrobot --help 确认命令可用。
    预期输出:列出 research / dcf / ddm / lbo / comps / earnings / ic-memo 等子命令。若这里就失败,先回到安装页确认 uv 是否已装(本机实测这一步就是缺 uv)。

  2. 配置密钥

    桌面端与浏览器模式在 Settings 页填入自己的模型密钥(写入系统钥匙串);教学版 V0 则是两个配置文件。
    预期输出:发起一次最小请求能得到模型返回。未配置时应用能打开,但分析请求会提示需要配置密钥。

  3. 取数与组装

    数据层按标的去 7 个提供方取数,再由协调器组装成算子输入。
    预期输出:输入对象里带上取数时间;某个提供方不可用时按健康状态切换。缺项会留下警告而不是静默补零。

  4. 跑确定性算子

    按流水线选择执行 DCF、DDM、倍数、蒙特卡洛等算子。
    预期输出:WACC、各年现金流、终值、企业价值、股本价值与每股价值等一串可复算的数字;不适用时抛错并说明理由。

  5. 聚合与叙述

    多方法结果聚合成区间,模型基于这些数字写章节叙述。
    预期输出:方法区间与置信度;方法分歧过大时只给区间不给单点目标。

  6. 审计与制品

    6 个审计算子对账,结果与警告一起写进制品库。
    预期输出:完整研报制品 + 警告清单。读结果时先读警告,再读结论。

与教学版的差别:V0 的流程停在「智能体调工具、模型写结果」,官方明确说明它没有确定性计算层与溯源跟踪。上面这套六步是 V2 的口径,两代不要混着理解。
前置输入

FinRobot 跑一次估值要先准备什么?

把「必需的」与「按需的」分开列,能省掉很多装完却跑不动的困惑。下表按 V2 口径给出前置项、来源与缺失后果。

要准备的东西从哪来是否必需缺了会怎样注意点
uv 包管理器Astral 官方安装方式V2 的 CLI 与浏览器模式必需一上手 uv sync 就走不下去(本机实测就卡在这里)桌面安装包不需要 uv,但它只覆盖 macOS Apple Silicon
Node 20 及以上Node 官网仅浏览器模式需要(CI 用 22/24)前端步骤 npm install 无法进行finrobot serve 只提供 JSON 接口,不提供界面
Python 3.11 及以上系统或版本管理工具V2 必需安装解析失败教学版 V0 走的是 3.10/3.11,两者不要放同一个环境
模型密钥你自己的模型账号(DeepSeek / OpenAI / Anthropic 等)必需应用能打开但分析请求返回「请配置密钥」密钥由你自己的账号承担调用费用,具体单价以各家官方定价页为准
数据源密钥FMP / Finnhub / Adanos 各自的账号部分必需对应提供方不可用,相关方法行缺失或被降级隐藏yfinance 与 SEC EDGAR 属公开数据路径,不需要商业密钥(以官方 provider 说明为准)
网络访问本机网络必需取数与模型调用都会失败运行分析需要联网;只浏览已有报告可以离线
端口 8321 与 5173本机空闲端口浏览器模式需要启动脚本会先结束占用这两个端口的进程(开着桌面应用时也会被结束)本地后端未启用鉴权,共享机器上优先用桌面应用
磁盘与时间本机按需完整研报流水线比单只标的查询耗时与占用都更高建议按「单标的查询 / 单一板块 / 完整研报」分档记录耗时与调用量
输入契约

DCF 的输入长什么样、为什么这样设计?

估值算子的输入是一个强类型对象,除了业务假设,还带了溯源与口径字段。这些字段是「数字可追溯」能成立的原因,也是官方文档里不常被讲到的部分。

字段含义约束或默认为什么要它注意点
revenue_base基年营收(默认取 TTM 口径)必须为有限数值基年由它推导;NaN 会被直接拒绝上游缺值若被当成 0,结果会在无提示的情况下偏低
revenue_growth_rates逐年增长率序列至少一项,且必须为有限数值显式窗口的营收投影增长率与终值假设不一致时,投影与永续段会互相矛盾
ebitda_margin预测期 EBITDA 利润率0 到 1决定经营层面的现金流能力利润率超过公司历史上限时需要能解释来源
capex_pct_revenue / nwc_pct_revenue资本开支与营运资本变动占营收比例capex 0 到 1;营运资本变动 −0.2 到 0.5把会计利润还原为自由现金流营运资本比例超出建模带会被夹紧,并留下结构化标记供报告标注
da_pct_revenue / tax_rate折旧摊销占比与税率折旧 0 到 0.5;税率 0 到 1,默认 0.21折旧带来税盾,税率影响税后经营利润折旧占比为 0 意味着没有税盾,会系统性压低估值
WACC 组件无风险利率、贝塔、股权风险溢价、债务成本、负债占比各字段都有上下界(贝塔 0 到 5 等)先算股权成本再算加权平均资本成本贝塔可用 Blume 调整(实测 1.20 调整为 1.1333)
terminal_growth_rate永续增长率0 到 0.05Gordon 永续段的增长率必须小于 WACC 且利差不少于 1.5%,否则算子拒绝计算
shares_outstanding / net_debt股本数与净负债股本数为正;净负债为有限数值(净现金为负)把企业价值桥接到每股价值净负债超过企业价值时算子拒绝输出负的每股价值
assumption_provenance假设来源映射字典,默认空记录每个假设是怎么来的这是「谁选的假设」的答案;空着等于放弃追溯
inputs_fetched_at取数时间默认空(直接构造时为 None)报告可以标注「输入截至某时刻」代码注释明确不伪造当前时间,构造输入时也不填
currency报价币种默认 USD每股价值是市场报价,需要跟随行情币种(例如台积电为 TWD)币种错了,整篇报告的数值都不可比
怎么读这张表:字段分三类——决定业务假设的、决定折现口径的、以及保证可追溯的。前两类决定结果大小,第三类决定你能不能事后复核。做审阅时优先看第三类:assumption_provenance 为空、取数时间为空,通常意味着这份输入是手工构造而非从真实财报推导的。
本站实测

真跑这套算子会得到什么?(本站实测)

下面每一行都是本站用官方代码在本机真实调用得到的结果,不是从文档转述的。环境为 Windows 10.0.26200 + Python 3.11.9 + pydantic 2.13.4 + numpy 2.4.6;输入是本站构造的合成标的(营收基数 1000、五年增长率 10%/8%/7%/6%/5%、EBITDA 利润率 25%、资本开支 6%、营运资本 2%、折旧 4%、税率 21%、无风险利率 4.2%、贝塔 1.20、股权风险溢价 5.5%、债务成本 5.5%、负债占比 20%、永续增长 2.5%、股本 100、净负债 200、美元),不含任何真实行情,不构成投资建议。

调用本站实测输出怎么读
calculate_wacc股权成本 0.108,WACC 0.09509股权成本 = 无风险利率 + 贝塔 × 股权风险溢价;WACC 再按负债占比加权债务成本
adjust_beta_blume(1.20)1.1333贝塔向 1 回归的行业惯例调整,会小幅改变折现率
calculate_dcf 每股价值23.0774(美元)企业价值 2507.74 → 减净负债 200 → 股本价值 2307.74 → 除以 100 股
五年自由现金流序列138.49 / 149.57 / 160.04 / 169.64 / 178.12由 (EBITDA − 折旧) × (1 − 税率) + 折旧 − 资本开支 − 营运资本变动得到
终值与现值稳态现金流 205.0,终值 2998.0,终值现值 1903.63终值项占比远高于显式期现值合计(604.11)——这是 DCF 的固有特征,也是它敏感的根源
mid_year=True每股价值 24.2427(较年末口径 +5.05%)年中折现假设现金流在年内均匀发生,是投行常见口径
敏感性(WACC 8%/9%/10% × 永续 2%/2.5%)[[28.05, 30.30], [23.57, 25.14], [20.21, 21.36]]折现率每升一点,估值下降幅度明显大于增长率的贡献
run_monte_carlo(2000 次、种子 42、现价 20)中位 23.11;5% 分位 15.97、25% 分位 19.80、75% 分位 27.07、95% 分位 34.21;均值 23.84,标准差 5.59当前价处于分布 26.7% 分位;2000 条路径中 1996 条有效,无效路径被丢弃而不是算进去
方差缩减方式对偶变量(antithetic variates)用镜像抽样降低估计方差,属于实现细节但影响结果稳定性
aggregate_valuation(只给 DCF)区间 18.46 / 23.08 / 27.69,置信度 0.85,方法来源自述为「占位带,不是真实分布」只有一种方法时系统会承认这条区间不是统计结果——这类自我标注值得留意
复现方式(不需要密钥、不需要联网):按固定 commit 2717499 取出 finrobot_desktop/finrobot/engine/compute/operators/ 与 models/,在本机 Python 3.11 环境里直接 import 调用即可,例如 calculate_dcf(DCFInputs(...))、calculate_sensitivity(...)、run_monte_carlo(inputs, current_price=20, n_simulations=2000, seed=42)。这些算子是纯 Python,模型与网络都不参与——这正是「软件负责计算」的证据。
四道闸门

算不出来的时候,FinRobot 会怎么处理?

估值算子里有四道前置判断,触发时不是给一个近似值,而是拒绝计算并说明理由,由上层流水线回落到相对估值。下面六条报错文本来自本站对官方算子的真实调用(合成输入)。

触发条件实际输出(原文要点)根因系统给的解法残余风险
永续增长率 ≥ WACCTerminal growth rate 0.05 must be less than WACC 0.0(永续式无定义)Gordon 模型在增长率不低于折现率时数学上不成立拒绝计算,提示改用相对估值回落后你拿到的是倍数区间,不是内在价值
WACC 与永续增长率利差低于 1.5%WACC−terminal growth spread 0.34% is below the 1.5% minimum — 并直接算出 1/(wacc−tg) = 294×乘数被利差急剧放大,低利率高杠杆标的容易触发以 1.5% 为下限拒绝计算利差在 1.5% 到 3% 之间时区间仍然很宽,需要人工收窄
稳态自由现金流 ≤ 0Steady-state terminal FCF is non-positive (-5.94) …a negative implied price负现金流被资本化成永续负值,会得到负的每股价值拒绝计算并跳过 DCF 章节真实处于衰退期的公司本就该换框架,这里只是避免输出无意义的负价格
股本价值 ≤ 0Equity value is non-positive (-9.75e+04): net debt (1e+05) exceeds the enterprise value (2.51e+03)净负债超过企业价值;股本价值在经济上没有负值含义拒绝计算,提示改用相对估值或困境与信用分析高杠杆标的仍需人工判断是否已处于困境
输入含 NaNValidationError: must be finite — NaN/Inf is not a number, it's missing dataNaN 与任何数值比较都为假,会绕过算子里所有区间判断在输入校验层拒绝上游数据源若返回空值而非 NaN,仍可能被当成 0
营运资本比例越界ValidationError: nwc_pct_revenue / Input should be less than or equal to 0.5假设超出建模带,属于口径错误字段级边界拒绝并给出允许区间区间内的坏假设仍会通过,需要你自己把关
这类「拒绝」是设计,不是缺陷:金融模型的失败方式往往不是算错,而是在不适用的情况下照样给出数字。把不适用的情况显式化成一条可读的错误,调用方才有机会换方法;这也是本站把「失败案例」单独做成一页的原因。
聚合与撤回

多个方法的结果矛盾时,目标价还发不发?

估值引擎会把多个方法的结果合成为区间与置信度,并在分歧过大时撤回单点目标。这一节讲的是「它什么时候选择不说」。

情形系统行为证据你该怎么读
只有一种方法可用给出区间,但把区间自述为占位带,不是真实分布本站实测的方法来源字段原文:placeholder band, not a real distribution不要把这个区间当统计结果;补第二种方法再判断
多种方法分歧过大撤回单点目标,只发布方向判断与区间官方 README 的示例说明三种方法相差约 2.6 倍时不发布单点目标分歧本身是信息:说明这家公司的估值高度依赖方法选择
缺少同业数据对应方法行不出现,并留下警告说明需要先跑完整研报流程本站实测的警告原文:no peer_analysis artifact先补数据再评估区间,不要把缺行误读成方法不适用
缺少历史估值带或前瞻指标方法行被降级隐藏(degraded and hidden)本站实测的三条聚合警告缺项来自数据而非模型;确认数据源覆盖后再看
金融业标的现金流类方法整类撤下,目标价与置信度均为空本站实测:方法数 0、目标价与置信度为空,并附带类目错误的警告原文这是正确的拒绝:银行应该用市净率、市盈率与股利折现
目标价字段为空方向判断仍然给出,但目标价诚实地留空官方模型注释说明:此时能拿到的数字只能是编造的,所以只发布方向与区间把「没有目标价」当作结论的一部分,而不是缺陷
一个反直觉的判据:如果一套工具在任何情况下都能给出漂亮的目标价数字,它多半没有做这层判断。撤回目标价、标注占位带、把方法降级隐藏——这些行为看起来「结果不够完整」,其实是可信度的来源。
研报结构

FinRobot 研报由哪些部分组成、哪些章的数字来自算子?

V2 的完整研究制品是 13 章。下面按章列出内容,并标注数字来源——这是读报告时最省时间的索引:先看哪几章,后看哪几章。

章内容数字主要来源读的时候注意
1 封面标的、评级、目标价与区间算子(区间来自聚合)目标价为空时先看聚合一节的撤回理由
2 投资论点多空逻辑与关键支撑模型叙述 + 算子数字混合逐段检查数字能否回溯到算子输出
3 公司概览业务与行业描述模型叙述为主事实性描述需要与官方披露核对
4 财务分析利润级联、利润率与增长算子(来自三大报表口径)注意报告期与币种口径是否统一
5 估值DCF、DDM、倍数等方法与假设算子先看假设表,再看结果;假设错了结果没有意义
6 近期新闻新闻与事件摘要模型叙述 + 数据层新闻源新闻类内容容易出现时间错位或引用不准
7 敏感性折现率与增长率对估值的影响算子(敏感性矩阵)看斜率而不只看单点:哪一侧更敏感
8 催化剂潜在上行驱动模型叙述没有日期与量级的条目要打折扣
9 技术与进阶技术面与派生指标算子(技术载荷)技术指标属于线索,不构成买卖依据
10 竞争格局同业对比算子(同业倍数)+ 叙述同业集合的选取方式决定这一章的说服力
11 财务数据原始财务数据表数据层这一章是其他章节的可核对底稿
12 持股与治理股权结构与治理信息数据层 + 叙述披露日期可能滞后于行情
13 免责声明使用边界固定文本读一遍:它本身也是内容的一部分
快速读法:先读第 5 章的假设表与第 7 章的敏感性,再读第 2 章的论点是否符合那些假设,最后看第 8 章的催化剂有没有量级。这样读,能把「模型写得流畅」与「结论站得住」区分开。
结果审计

拿到输出后,怎么判断哪些能信、哪些只是观点?

把输出里的每一项分进三个桶,再对每个桶采取不同的信任策略。下面的自查清单可以逐条过,也能直接用来审阅其它金融 AI 工具的输出。

内容怎么识别信任策略
代码算出来的能对应到具体算子与入参;改一个假设,数字会按确定规则变化可以复核:按同样输入重算应得同样结果
模型写出来的段落、观点、定性与因果解释,回溯不到任何函数当观点:可作线索,不作结论
两者混合数字来自算子、结论来自模型(例如目标价与上行空间)拆开看:数字复核,判断打折
你或种子算子选的假设输入对象里的假设字段与它们的来源映射问责源头:假设错了,后面的计算再准也没有意义
审计产生的警告与降级标记警告通道里的文字、被隐藏的方法行、撤回的目标价优先读:它直接告诉你哪一部分不该全信
自查项合格的样子不合格的信号为什么重要
数字能否回溯每个关键数字都能在算子输出里找到出现无来源的精确数字这是区分「算出来」与「写出来」的硬判据
币种与单位全篇币种一致、单位统一同一指标前后币种漂移币种错了,全篇数值不可比
期间口径财务期与 TTM 口径写明并一致混用财年与滚动期口径混用会让增长率与倍数同时失真
方法适用性方法选择与公司类型匹配给银行套现金流折现用错方法比算错数字更常见;系统会撤下类目错误的方法
缺数据是否留痕缺项带警告或降级标记缺数据静默填零或省略静默缺失会让整份结论看起来比实际更完整
区间性质说明区间是分布结果还是占位带把占位带当统计分布引用区间被误用会让「不确定性」变成虚假的确定感
一条不必依赖工具的检查:读任何一段叙述时,回问一句「这句话里的数字在计算输出里能找到吗」。找不到,就当它是观点。系统会为这件事给出警告,但最终判断仍然在你这里。
适用判断

什么情况下值得用 FinRobot 的估值、什么时候不必上?

确定性与可追溯是有代价的:要装环境、配密钥、管理依赖。下表按你的情况给判断,并写明先做哪一步验证更省时间。

你的情况是否值得用原因先做哪一步验证注意点
需要可复算、可追溯的估值过程值得每个数字都能回到算子与输入按固定 commit 直接调用一次 DCF 算子,确认能复算输入假设仍需你负责
要一次内部研报流水线(多标的)值得13 章制品与警告通道适合批量复核先跑单只标的的完整流程,评估耗时与调用量批量运行的成本与数据源限流需另算
只想查一个估值参考不必装环境配密钥的成本高于收益先用免部署路线拿到参考结果两条路线彼此独立,无已证实集成
公司是银行或保险换方法现金流折现与净负债口径不成立,系统会撤下该类方法确认行业识别结果,改用市净率、市盈率与股利折现类目判断可能误伤金融控股等边缘情形
公司现金流为负或高度不稳定谨慎稳态终值可能被判为不适用,系统会拒绝计算先跑一次看是否触发闸门被拒绝不是失败,而是提示改用相对估值
必须用 A 股数据需自行接入官方数据链路以美股为主,7 个提供方里没有 A 股数据源先确认你有可用的 A 股数据源与口径处理方案代码层接受 A 股后缀不等于数据层可得
FAQ

FinRobot 估值与研报常见问题

FinRobot 的估值数字可信吗?

分两层看:数字本身由纯 Python 算子计算、可复算、可追溯,这一层比「模型直接说一个价格」可靠;但假设是否合理、方法是否适用仍取决于输入与类目判断。本站的做法是把这两层分开写:算子输出见「本站实测」,假设与边界见「输入契约」与「适用判断」。具体实现与参数以官方仓库为准。

为什么它有时候不给目标价?

因为多方法分歧过大时,单点目标价只能是编造的。官方在模型注释里写明了这个取舍:当各方法无法互相印证时,只发布方向判断与区间,而不是把不同方法的结果平均成一个假的确定值。看到目标价为空,应该去找聚合那一节的撤回理由,而不是当成缺陷。

蒙特卡洛跑出来的分布能当概率用吗?

不能当概率保证。它做的是对假设施加扰动后重新计算,得到的是「假设不确定性传导后的分布」。本站实测 2000 条路径中 1996 条有效,其余被丢弃;分布的分位数会随标准差设置而变。把它当作敏感性的另一种表达更合适,官方也没有承诺它是概率预测。

算子和模型的分工,怎么自己验证?

取固定 commit 的 compute/operators/ 直接调用即可:这些算子不依赖模型与网络,同样的输入会得到同样的数字。反过来,如果你怀疑某个数字是模型写的,就去制品里找对应的算子输出;找不到,就说明它属于叙述而非计算。

研报能导出成文件或 PDF 吗?

研报作为制品存进本地制品库,桌面与浏览器界面可浏览与导出;具体导出格式与是否包含 PDF 以官方当前版本为准,本站未实测这条路径(本机缺 uv,未跑起 V2 完整流程)。教学版 V0 另有 PDF 生成相关的功能模块,但那属于另一代。

能分析 A 股公司吗?

要分开看两层:代码层的标的校验接受 A 股与港股后缀(本机实测 600519.SS、123456.SZ、0700.HK 都通过),但数据层的 7 个提供方以美股为主、没有 A 股数据源。要用 A 股,得自己接数据源并处理币种、单位、报告期与复权口径。详见数据源页。

跑一次估值要花多少钱?

库本体是 Apache-2.0 许可、不收费;花钱的地方是模型调用与部分数据源。官方没有给出统一成本表,因为它取决于模型选择、数据源档位与任务规模。可行的做法是按「单标的查询 / 单一板块 / 完整研报」分档记录调用量与耗时。具体单价以各家官方定价页为准。

和免部署的金融研究路线有什么区别?

准备成本与产物形态不同:FinRobot 这条路线要装环境、配密钥、自己维护版本,换来的是可复算的算子输出与可审计的制品;免部署路线装好客户端就能提问,省掉环境成本。两者是彼此独立的路线,FinRobot 与 EasyClaw 无已证实集成,本站不做能力等同的暗示。

估值看懂了,怎么决定自建还是免部署?

FinRobot 的确定性估值适合要「可复算、可溯源」的场景,但需要 conda 环境、多个 API key 与 notebook 自建;如果只是想要一个快速估值参考,可以先看两条路线的差异再决定。