网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Stock Evaluator

2026-03-28 新闻来源:网淘吧 围观:6
电脑广告
手机广告

股票评估器(增强版)

⚠️ 关键:必交成果清单

每份分析报告必须包含以下所有内容:

  • 技术分析(价格行为、技术指标、关键价位、一目均衡表)
  • 基本面分析(业务、财务状况、竞争地位)
  • 高级财务指标(F分数、Z分数、M分数、最大回撤、价值陷阱评分)
  • 投资者画像评分(8位传奇投资者的分析框架)
  • 估值评估(多种方法结合安全边际)
  • 看涨与看跌论点(双方论点及平衡性评估)
  • 明确建议(买入/持有/卖出,附带确信度评级)
  • 备选标的(若选择"卖出":请提供3-5个更优的替代选项)
  • 增强型量化风格仪表盘(包含60多项指标、一目均衡表、投资者画像、头条新闻和关键说明的React仪表盘)

如果您无法完成任何一项,请立即停止并请求澄清。


⚠️ 关键:数据完整性规则

零编造政策

严禁编造、估算或臆测任何数值数据点。仪表盘中的每个指标必须来自:

  1. 附有引用来源的网络搜索结果
  2. 公司文件(10-K年报、10-Q季报、财报)
  3. 官方金融数据提供商

如果无法找到数据 → 使用"N/A"或"--"

强制性网络搜索(每次分析最低要求)

在填充仪表盘数据前,您必须执行以下搜索:

搜索 #查询模板检索到的数据
1"[股票代码] 股价 市值 市盈率"价格、市值、市盈率
2"[股票代码] 净资产收益率 总资产收益率 利润率 2024年年度报告"财务比率
3"[股票代码] 收入增长 盈利增长 2024财年"增长率(已报告)
4"[股票代码] 皮奥特洛斯基F分数"F分数(或计算得出)
5"[股票代码] 内幕交易 美国证券交易委员会表格4 2025年"内部买入/卖出
6"[股票代码] 空头权益 百分比 流通股"空头权益
7"[股票代码] 相对强弱指数 平滑异同移动平均线 50日 200日移动平均线 贝塔系数 波动率"技术指标
8"[股票代码]分析师目标价共识"分析师目标

数据源层级

请按此优先级顺序使用数据源:

  1. 公司官方申报文件(美国证券交易委员会EDGAR数据库,公司投资者关系网站)
  2. 交易所数据(纽约证券交易所、纳斯达克、伦敦证券交易所官方数据)
  3. 已验证的金融数据(雅虎财经、谷歌财经、市场观察)
  4. 美国证券交易委员会表格4(仅用于内幕交易信息)
  5. 美国金融业监管局/交易所(仅用于卖空头寸信息)

禁止事项

  • 使用训练知识获取任何具体的当前数据
  • 分析师报告(根据用户偏好)
  • 无来源依据的估算
  • "常识性"假设

处理不可用数据

情况行动显示
搜索后未找到指标显示 "N/A"数值: "N/A"
数据已过时(超过1年)注明日期数值: "15.2% (2023)"
来源冲突使用最权威的来源在分析中注明
计算指标(F-Score)显示计算过程在文本中解释
内部数据不可用显示 "N/A"内部买入: "N/A"

关键:零值表示"确实为零" - 切勿用零值替代缺失数据。


标准化指标标签

在仪表板中使用这些确切标签(与参考截图匹配):

第1行:价格与估值 | 财务表现

标签备注
价格:XX.XX美元或XX.XX欧元
市值:XXB美元或XXB欧元
追踪市盈率:XX.XX
预期市盈率:XX.XX
子行业市盈率:XX.XX 或 不适用
市盈增长比率(1年):X.XX,基准(<1)
净资产收益率:XX.XX%,基准(>20%)
总资产收益率:XX.XX%,基准(>10%)
净利率:XX.XX%,基准(>20%)
营业利润率:XX.XX%,基准(>20%) - 注:此处为“营业”利润率,非“经营”利润率
毛利率:XX.XX%,基准(>40%)
投入资本回报率:XX.X%,基准(>15%)

第2行:增长指标 | 风险指标

标签备注
营收(同比):XX.XX%,基准(>10%) - 仅限已报告数据
盈利(同比):XX.XX%,基准(>0%) - 仅限已报告数据
每股收益(TTM):$X.XX
预期每股收益:$X.XX
增长率:封顶:X.X% / 未封顶:X.X%
分析师目标价:$XX.XX
CRS(0-1):X.XX,基准(中等)
债务权益比(最近季度):X.XX,基准(0.5-1)
皮奥特洛斯基F分数:X,基准(≥7)
奥特曼Z分数:X.XX,基准(>3)
贝尼什M分数:X.XX,基准值 (<-1.78)
价值陷阱:XX(标签)

第3行:流动性 & 自由现金流 | 内部人士交易 & 市场情绪 & 分类

标签备注
流动比率:X.XX,基准值 (1-2)
现金:$X.XB
债务:$X.XB 或 不适用
自由现金流5年增长率:XX.X%,基准值 (>5%)
自由现金流收益率:X.XX%,基准值 (>4%)
自由现金流利润率:XX.XX%,基准值 (>15%)
派息比率:XX.XX%,基准值 (<50%)
买入(过去12个月):X - 源自SEC Form 4表格 或 不适用
卖出(过去12个月):X - 源自SEC Form 4表格 或 不适用
净股份数 (12个月):+/-XX千股 - 来自SEC表格4或不适用
做空比例 (%):X.X%
市场情绪 / 文章数:+X.XXX / XX (积极/消极)
股票类型 + 股息收益率:合并:“股票类型:增长型” + “股息收益率:X.XX%”
板块/行业:合并:“板块 / 行业”

第4行:质量评分 | 护城河与其他

标签备注
CQVS:XX.XX 附基准范围
标签:强/中/弱
估值:XX.XX
质量:XX.XX
强度:XX.XX
诚信度:XX.XX
巴菲特护城河:与基准比较 (4-7)
格林布拉特(神奇公式):盈利率:X.X% / 资本回报率:X.X% 或 不适用
贝塔值:+ 1年波动率:组合显示:"贝塔值:X.XX" + "1年波动率:XX.X%"
盈利预测:XX.X% 与基准比较 (>80%)
最大回撤 (5年):-XX.X% 带标签 (低/中/高)
数据完整性:+ 数据质量:组合显示:"XX.X%" + "高/中/低"

标准化基准 (单一事实来源)

使用以下确切阈值进行颜色编码:

指标绿色 (良好)黄色 (中性)红色 (警告)
净资产收益率>20%10-20%<10%
总资产收益率>10%5-10%<5%
利润率>20%10-20%<10%
营业利润率>20%10-20%<10%
毛利率>40%25-40%<25%
投资资本回报率>15%8-15%<8%
负债权益比<11-2>2
流动比率1-20.5-1 或 2-3<0.5 或 >3
皮奥特洛斯基F值≥74-6≤3
奥特曼Z值>2.991.81-2.99<1.81
贝尼什M值<-2.22-2.22 至 -1.78>-1.78
市盈率相对盈利增长比率 (1年)<11-2>2
相对强弱指数 (14)30-5050-70>70 或 <30
空头头寸 / 卖空比例<5%5-10%>10%
自由现金流收益率>5%2-5%<2%
自由现金流利润率>15%10-15%<10%
股息收益率>2%1-2%<1% 或 >8%
价值陷阱0-3940-5960-100
最大回撤>-30%-30% 至 -50%<-50%
营收增长率>10%0-10%<0%
盈利增长率>0%-10% 至 0%<-10%

概述

此功能提供机构级别的潜在股票投资评估。与审查现有持仓的投资组合分析不同,此功能评估您正在考虑买入的股票。决定是否购买

评估回答:

  • 我是否应该买入这支股票?
  • 我应该在什么价位进场?
  • 我应该分配多少资金?
  • 我的上行和下行空间分别是多少?
  • 我应该在何时卖出?

默认货币:€(欧元)

仪表板中的所有货币值都应显示为欧元(€)作为默认货币:

  • 价格:€42.13
  • 市值:€783亿
  • 分析师目标价:€56.45
  • 入场/止损/目标价位:€38,€35,€56
  • 每股收益值:€1.39,€1.91

重要提示:使用报告的增长速率

对于仪表板指标"收入增长率""收益增长率":

  • 使用报告增长率- 而非基础、调整或有机增长率
  • 报告数据反映了包括汇率变动、收购、剥离在内的实际GAAP/IFRS数据
  • 这能更准确地反映投资者实际获得的情况
  • 示例:如果基础增长率为7%但报告增长率为2.2%,则使用2.2%
  • 盈利同理:使用报告每股收益增长率,而非调整后的每股收益增长率

核心用途

股票评估器适用于:

  • ✅ 在购买前评估潜在投资
  • ✅ 分析观察列表中的候选股票
  • ✅ 获取带有具体价格的买入/持有/卖出建议
  • ✅ 比较多个投资机会
  • ✅ 为当前考虑的投资寻找更好的替代方案

不适用于:

  • ❌ 审查现有投资组合持仓(请使用投资组合分析器功能)
  • ❌ 一般性股票市场问题
  • ❌ 股票筛选或从零开始发现
  • ❌ 期权、衍生品或加密货币分析

评估框架

股票评估的五大支柱

1. 估值评估

  • 股票是被低估、估值合理还是被高估?
  • 多种估值方法(DCF、相对估值、彼得·林奇法、资产基础法)
  • 安全边际要求(15-30%)
  • 包含置信区间的公允价值估算

2. 质量分析

  • 商业模式强度与竞争护城河
  • 财务健康状况与趋势(5-10年视角)
  • 管理层质量与资本配置
  • 行业地位与竞争优势

3. 时机评估

  • 技术面设置与入场点
  • 近期催化剂与事件
  • 市场情绪与仓位
  • 最佳入场价格区间

4. 仓位规模

  • 投资组合配置建议(占比)
  • 基于信心、风险与分散化考量
  • 最大配置上限
  • 风险调整后的仓位规模

5. 投资信心评级

  • 强烈买入:信心度高,估值明显偏低,风险较低
  • 买入:机会良好,估值合理,风险适中
  • 持有:估值公允,当前无明显买入理由
  • 回避:估值过高,存在显著风险,或有更优替代选择

价值陷阱指标

定义说明

价值陷阱指股票看似估值偏低(低市盈率、低市净率),实则因基本面问题而廉价。这类股票在看似"便宜"的情况下持续下跌。

价值陷阱评分计算(0-100分,分数越低越真实,越高越可能是陷阱)

评估维度(出现陷阱特征时累加分数):

1. 价格动能(最高25分)

  • 6个月股价变动对比市场:若跑输超过20%,则加15-25分
  • 12个月股价变动:持续下跌则加10-20分
  • 若价格动能呈积极态势:加0分

2. 盈利质量(上限25分)

  • 每股收益趋势(3年期):下降则加10-25分
  • 营收趋势:下降则加5-15分
  • 利润率趋势:收窄则加5-10分
  • 若盈利质量强劲:加0分

3. 资产负债表健康状况(上限25分)

  • 债务水平是否上升?是则加5-15分
  • 现金流为负或下降?是则加10-20分
  • 营运资本是否恶化?是则加5-10分
  • 若资产负债表健康:加0分

4. 估值背景(上限25分)

  • 低估值倍数是否由基本面恶化所导致?是则加10-25分
  • 将当前基本面与估值倍数较高时期进行对比
  • 若基本面支撑当前估值:加0分

评分公式

Value Trap Score = Momentum Penalty + Quality Penalty + Balance Sheet Penalty + Valuation Penalty

(分数范围从0到100,其中0 = 明确真实价值,100 = 明确价值陷阱)

分数解读

  • 0-19:真实价值(可能被低估,基本面完好)- 绿色
  • 20-39:可能真实(轻微担忧,需监控)- 浅绿色
  • 40-59:谨慎区域(信号混杂,需谨慎行事)- 黄色
  • 60-79:可能陷阱(多个危险信号)- 橙色
  • 80-100:强烈陷阱信号(避免)- 红色

展示格式

Value Trap: 21 (Genuine)

颜色编码:绿色 <40,黄色 40-60,红色 >60


投资者类型评分

根据8位著名投资大师的理念对每只股票进行评分(0-10分制)。这有助于用户了解该股票适合哪种类型的投资者。

1. 沃伦·巴菲特评分

基于《巴菲特之道》——寻求持久的竞争优势

关键指标权重:

  • 净资产收益率(>20%):2分
  • 利润率(>15%):2分
  • 自由现金流为正且增长:2分
  • 护城河强度(品牌、定价能力):2分
  • 可预测的收益:2分

巴菲特青睐:业务可预测、有定价能力、资本支出需求低、盈利持续稳定

2. 查理·芒格评分

基于《穷查理宝典》——思维格栅模型,逆向思考

重点关注:可能出错的环节(逆向原则)

评分方式:从10分起,扣除扣分项:

  • 高负债(负债权益比 > 2):扣3分
  • 收益波动大:扣2分
  • 管理层历史表现不佳:扣2分
  • 无竞争优势护城河:扣2分
  • 会计预警信号:扣3分

3. 瑞·达利欧评分

基于《原则》——全天候投资组合,经济机器理解

关键指标:

  • 负债权益比 < 1:2分
  • 贝塔系数 < 1:2分
  • 周期内利润率稳定:2分
  • 收益波动率低:2分
  • 具备抗衰退历史:2分

达利欧偏好:去杠杆化操作、运营效率、周期韧性

4. 彼得·林奇评分

基于《彼得·林奇的成功投资》——GARP(合理价格增长策略)

主要指标:市盈率相对盈利增长比率(市盈率 ÷ 增长率)

  • 市盈率相对盈利增长比率 < 0.5:10分
  • 市盈率相对盈利增长比率 0.5-1.0:8分
  • 市盈率相对盈利增长比率 1.0-1.5:6分
  • 市盈率相对盈利增长比率 1.5-2.0:4分
  • 市盈率相对盈利增长比率 > 2.0:2分

调整因素:

  • 若收益持续增长:+1分
  • 若业务易于理解:+1分
  • 若处于衰退行业:-1分

5. 本杰明·格雷厄姆评分

基于《聪明的投资者》——安全边际

格雷厄姆标准(每项2分,最高10分):

  • 市盈率 < 15
  • 市净率 < 1.5
  • 流动比率 > 2
  • 连续10年盈利
  • 连续20年以上派发股息

6. 乔尔·格林布拉特得分

基于《打败市场的小书》——神奇公式

结合两项排名:

  • 收益率(息税前利润/企业价值):越高越好
  • 资本回报率(息税前利润/净固定资产+营运资本):越高越好

评分方法:综合排名前10% = 10分,按比例递减

7. 约翰·邓普顿得分

基于逆向投资、全球价值投资理念

关键因素:

  • 交易价格处于多年低点:+3分
  • 不受分析师青睐:+2分
  • 尽管市场悲观但基本面强劲:+3分
  • 全球视野(非美国机会):+2分

8. 乔治·索罗斯评分

基于《金融炼金术》——反身性

关键因素:

  • 动量与趋势强度:3分
  • 宏观顺风:3分
  • 市场认知转变:2分
  • 拐点催化剂:2分

索罗斯偏好:宏观博弈、反身性情境、趋势参与

展示格式

在雷达图周围显示8个带有分数和颜色编码的徽章:

  • 绿色(7-10分):高度匹配
  • 黄色(4-6.9分):中度匹配
  • 红色(0-3.9分):匹配度低

增强技术分析

一目均衡表分析

需计算的组成部分:

  • 转换线(Tenkan-sen):(9周期高点 + 9周期低点)/ 2
  • 基准线(Kijun-sen):(26期最高价 + 26期最低价)/ 2
  • 先行带A:(转换线 + 基准线)/ 2,绘制于26期前方
  • 先行带B:(52期最高价 + 52期最低价)/ 2,绘制于26期前方
  • 迟行带:当前收盘价绘制于26期后方

云图:先行带A与先行带B之间的区域

需识别并显示的信号:

  • TK金叉:转换线上穿基准线(看涨信号) - 用◆标记
  • TK死叉:转换线下穿基准线(看跌信号) - 用◆标记
  • 云图扭转看涨:云图由红转绿 - 用◆标记
  • 云图扭转看跌:云图由绿转红 - 用◆标记
  • 价格与云图关系:云图之上(看涨),云图之下(看跌),云图之中(中性)

双重市盈率与增长率比值(PEG)

  • 一年期PEG:市盈率 ÷ 一年期预期增长率
  • 五年期PEG:市盈率 ÷ 五年历史增长率
  • 两者为增长估值提供了不同的视角

自由现金流利润率

  • 公式:自由现金流 / 营收 × 100
  • 基准:>15%为优秀,>10%为良好
  • 显示相对于销售额的现金生成效率

新闻情绪与空头净额

  • 新闻情绪:基于近期文章情绪的-1至+1标度
  • 空头净额:流通股中卖空的比例(>10% = 高,<5% = 低)
  • 两者均指示市场情绪及潜在的轧空/反转可能性

基本面分析流程

1. 业务理解(始终第一步)

分析内容:

  • 这家公司是做什么的?(产品、服务、商业模式)
  • 收入来源与构成
  • 目标客户与市场
  • 竞争优势(护城河来源)
  • 市场地位与份额
  • 行业动态与趋势

管理层评估:

  • CEO背景、任期、业绩记录
  • CFO及核心高管
  • 资本配置决策(分红、回购、收购、研发)
  • 管理层薪酬与利益一致性
  • 内部人交易模式(买入是看涨信号)
  • 从财报电话会议和股东信看领导力质量

竞争地位:

  • 市场份额与趋势
  • 主要竞争对手(识别3-5家直接同行)
  • 这家公司的差异化是什么?
  • 可持续的竞争优势?

2. 财务分析(5-10年视角)

研究流程顺序:

  1. 首先查看最新的10-K年报- 了解当前业务状况与近期业绩
  2. 回溯5-10年的历史10-K年报- 理解业务演变过程
  3. 审阅近2-3年的10-Q季报- 把握当前发展趋势
  4. 查阅委托声明书- 公司治理与薪酬结构

核心分析指标:

质量基准线:

  • 净资产收益率 > 15%
  • 净利润率 > 15%
  • 毛利率 > 30%
  • 负债 < 年度营收
  • 正向增长的自由现金流
  • 经通胀调整的5年营收增长率

需评估的趋势:

  • 营收增长轨迹(加速/稳定/减速?)
  • 利润率扩张或收缩(原因?)
  • 现金流稳定性与质量
  • 资产负债表健康度(负债水平、流动性)
  • 投入资本回报率(ROIC)
  • 营运资本管理

警示信号:

  • 收入增长但利润率下降
  • 自由现金流为负或不稳定
  • 债务增速快于现金生成速度
  • 市场份额流失
  • 长期业绩指引未达标
  • 会计违规行为

3. 竞争护城河评估

护城河强度:宽广 / 狭窄 / 无

评估来源:

  • 网络效应:产品是否随用户增加而改善?
  • 品牌忠诚度:品牌实力是否带来定价权?
  • 转换成本:转换是否困难/昂贵?
  • 监管壁垒:许可证、专利、法规?
  • 成本优势:规模、技术、地理位置?
  • 无形资产:专利、商标、专有数据?

护城河持久性:

  • 竞争优势能维持多久?
  • 什么因素可能侵蚀护城河?
  • 护城河是在加强还是在削弱?

同业比较:比较该公司与3-5家直接竞争对手的护城河:

  • 市场份额趋势
  • 盈利能力指标(利润率、净资产收益率)
  • 增长率
  • 财务实力

4. 高级财务健康状况指标

除了基本的质量指标外,计算这些高级评分以获得更深入的洞察:

皮奥特罗斯基F分数(财务实力)

目的:一个9分制评分,从盈利能力、杠杆率和运营效率方面衡量财务实力。

评分(0-9分,越高越好):

盈利能力(4分):

  • 资产收益率 > 0:+1
  • 经营活动现金流量 > 0:+1分
  • 资产收益率同比改善:+1分
  • 经营活动现金流量 > 净利润(盈利质量):+1分

杠杆/流动性(3分):

  • 长期债务同比减少:+1分
  • 流动比率同比改善:+1分
  • 过去一年未发行新股:+1分

运营效率(2分):

  • 毛利率同比改善:+1分
  • 资产周转率同比改善:+1分

解读:

  • 8-9分:财务状况极佳
  • 6-7分:财务状况良好
  • 4-5分:财务状况尚可
  • 0-3分:财务状况薄弱

奥特曼Z值(破产风险)

用途:预测两年内破产概率

公式(适用于公开上市的制造业公司):Z = 1.2(A) + 1.4(B) + 3.3(C) + 0.6(D) + 1.0(E)

其中:

  • A = 营运资本 / 总资产
  • B = 留存收益 / 总资产
  • C = 息税前利润 / 总资产
  • D = 市值 / 总负债
  • E = 销售额 / 总资产

解读:

  • Z > 2.99:安全区(破产风险低)
  • Z 1.81-2.99:灰色区(风险中等)
  • Z < 1.81:困境区(破产风险高)

注意:对于非制造业公司需调整系数。

贝尼什M值(盈余操纵检测模型)

目的:识别盈余操纵的可能性。

关键指标(简化版):

  • 应收账款天数指数(上升=预警)
  • 毛利率指数(下降=预警)
  • 资产质量指数(上升=预警)
  • 销售增长指数(过度增长=预警)
  • 折旧指数(下降=预警)
  • 销售及管理费用指数(不成比例的变化=预警)
  • 杠杆指数(上升=预警)
  • 总应计利润与总资产比率(高=预警)

解读:

  • M-Score > -1.78:可能存在财务操纵(危险信号)
  • M-Score < -1.78:不太可能存在财务操纵(清白)

实用检查(如果无法获取完整的M-Score):

  • 应计利润相对于现金流是否持续偏高?
  • 应收账款天数是否比营收增长得更快?
  • 营收增长时,利润率是否在下降?
  • 是否有会计重述或审计师变更?

最大回撤(5年期)

目的衡量最大峰谷价格跌幅。

计算方法:

  • 识别过去5年内的最高价格
  • 找出复苏前的最低后续价格
  • 最大回撤率 % = (最低价 - 最高价) / 最高价 × 100

解读:

  • 0-20%:低波动性(防御性股票)
  • 20-40%:中等波动性(典型股票)
  • 40-60%:高波动性(周期性/成长型股票)
  • >60%:极端波动性(投机性股票)

综合评分

实力评分 (0-100):综合以下因素:

  • 财务指标(F分数贡献)
  • 盈利能力(净资产收益率,利润率)
  • 增长率
  • 市场地位

诚信评分 (0-100):综合以下因素:

  • M分数(盈利质量)
  • 现金流与盈利的匹配度
  • 会计实务
  • 管理层透明度

可预测性分数(0-100):综合指标:

  • 收入一致性(低波动性)
  • 盈利一致性
  • 商业模式稳定性
  • 周期性评估

数据质量分数(0-100):

  • 财务数据完整性
  • 财报时效性
  • 审计师质量
  • 信息披露透明度

5. 风险分析

公司特有风险:

  • 执行风险(管理层能否达成目标?)
  • 竞争风险(市场份额流失、新进入者)
  • 产品集中度(单一产品依赖)
  • 客户集中度(少数大客户)
  • 关键人员风险(CEO依赖)
  • 财务困境风险(Z值评估)
  • 盈利质量风险(M值评估)

行业风险:

  • 颠覆性风险(技术或商业模式)
  • 周期性风险(经济敏感性)
  • 监管风险(政策变化)
  • 商品化风险(定价能力弱化)
  • 结构性衰退风险(长期不利因素)

宏观风险:

  • 经济风险(衰退、通胀、利率)
  • 地缘政治风险(贸易战、冲突)
  • 货币风险(外汇敞口)
  • 市场风险(估值水平、市场情绪)

总体风险水平:低/中/高

综合风险评分:(0-1分制,分值越低越好)

  • 包含:Z值、波动性、杠杆率、盈利质量
  • <0.30:低风险
  • 0.30-0.60:中等风险
  • >0.60:高风险


估值评估

使用多种估值方法- 综合得出公允价值估计。

所需估值方法

1. DCF分析(现金流折现法)

  • 预测自由现金流(5-10年)
  • 应用适当的折现率(加权平均资本成本)
  • 计算终值
  • 包含安全边际:15-30%
  • 基于不同假设的敏感性分析

2. 相对估值法

  • 与3-5家直接可比公司进行比较
  • 关键乘数:市盈率、企业价值倍数、市销率、市净率
  • 针对增长差异进行调整
  • 考虑行业特定乘数
  • 使用当前和历史的可比公司平均值

3. 彼得·林奇公允价值法

  • 合理价格增长框架
  • 比较市盈率与增长率(市盈率相对盈利增长比率)
  • 当市盈率 ≈ 增长率时即为公允价值
  • 根据质量因素进行调整

4. 资产基础法(如适用)

  • 适用于房地产投资信托基金、金融机构、重资产公司
  • 账面价值或重置成本
  • 净资产价值计算

估值综合

公允价值估算:€X.XX

对各方法进行适当加权:

  • 贴现现金流法:40%(若现金流可靠)
  • 相对估值法:30%(同业比较)
  • 彼得·林奇法:30%(经增长调整)

安全边际:

  • 当前价格 vs. 公允价值:折价/溢价 X%
  • 必要标准:最低15%安全边际
  • 充足标准:15-30%安全边际
  • 优秀标准:>30%安全边际

估值结论:

  • 价值低估低于公允价值15%以上(买入机会)
  • 估值合理在公允价值±15%范围内(持有)
  • 估值偏高高于公允价值15%以上(规避/卖出)

技术分析(入场时机)

关注寻找最佳入场点,而非完整技术分析

关键技术要素

1. 价格走势(过去30-60天)

  • 当前趋势:上升趋势 / 下降趋势 / 区间震荡
  • 近期价格形态
  • 成交量趋势(上涨时是否放量?)
  • 动量评估

2. 关键价位

  • 支撑位:买盘兴趣显现的位置
    • 主要支撑位:€X.XX
    • 次要支撑位:€X.XX
  • 阻力位:卖压增强的位置
    • 主要阻力位:€X.XX
    • 次要阻力位:€X.XX

3. 技术指标

  • RSI(相对强弱指数):
    • 70 = 超买(可能回调)

    • <30 = 超卖(可能反弹)
    • 40-60 = 中性
  • MACD(移动平均收敛散度):
    • 看涨交叉 / 看跌交叉 / 中性
    • 动量在加速还是减速?
  • 移动平均线
    • 50日移动平均线:€X.XX(价格在其之上/之下?)
    • 200日移动平均线:€X.XX(趋势指标)

4. 入场评估

  • 技术形态:看涨 / 中性 / 看跌
  • 最佳入场点:等待回调至支撑位 / 市价买入 / 等待突破
  • 入场价格范围:€X.XX - €X.XX
  • 避免高于:€X.XX(风险/回报比不佳)

看涨与看跌案例分析

必备条件:每项分析都必须公平地呈现双方观点。

看涨情景(乐观预期)

潜在上涨空间:+X% 至 €X.XX

  1. [关键看涨论据1,附具体证据]
  2. [关键看涨论据2,附具体证据]
  3. [关键看涨论据3,附具体证据]

实现条件:

  • [必要条件1]
  • [必要条件2]

看跌情景(悲观预期)

潜在下跌空间:-X% 至 €X.XX

  1. [关键看跌论据1,附具体证据]
  2. [关键看跌论据2,附具体证据]
  3. [关键看跌论据3,附具体证据]

触发条件:

  • [风险触发因素1]
  • [风险触发因素2]

平衡性评估

哪种情况更有可能发生:[牛市 / 熊市 / 平衡市]

[解释为何某一情况更有可能,需考虑:

  • 各方证据的质量
  • 历史先例
  • 管理层过往记录
  • 行业动态
  • 当前估值]

投资建议结构

买入建议标准

  • 公允价值高于当前价格15%以上(具备足够安全边际)
  • 基本面强劲或持续改善
  • 技术面呈现合理或看涨态势
  • 存在可识别的催化因素
  • 风险水平可接受
  • 推荐力度:强力买入或买入

持有建议标准

  • 公允价值在当前价格±15%范围内
  • 基本面稳定,缺乏显著催化因素
  • 可能存在更佳投资机会
  • 等待更好的入场价格
  • 确信度:持有

卖出/避免推荐标准

  • 公允价值低于当前价格超过15%(估值过高)
  • 基本面恶化
  • 存在重大风险
  • 有更好的替代选择
  • 必须提供3-5个备选标的
  • 确信度:避免

仓位规模框架

基于以下因素进行配置推荐:

确信度 + 风险 = 仓位规模

强力买入(高确信度,低风险):

  • 仓位规模:投资组合的5-8%
  • 最高:10%

买入(中等确信度,中等风险):

  • 仓位规模:投资组合的3-5%
  • 最高:7%

投机性/高风险:

  • 仓位规模:投资组合的1-3%
  • 最高:5%

注意事项:

  • 多样化需求(避免行业集中度风险)
  • 与现有持仓的相关性
  • 整体投资组合风险
  • 流动性要求
  • 用户的风险承受能力(基于项目背景)

入场与退出策略

入场策略

不采用分批建仓策略- 建议采用单次入场方式:

若买入:

  • 理想入场价格:€X.XX - €X.XX(最优区间)
  • 最高买入价格:€X.XX(高于此价位,风险/回报比不佳)
  • 操作方式:
    • "按当前市价立即买入"(若当前价位合适)
    • "等待回调至€X.XX支撑位买入"(若价格已大幅上涨)
    • "突破€X.XX后买入"(若呈突破形态)
    • "€X.XX以上不买入"(若估值过高)

退出策略

目标价位(12个月):€X.XX (+X% 上涨空间)

  • 保守估计:€X.XX
  • 基本情形:€X.XX
  • 乐观估计:€X.XX

止损点:€X.XX (-X% 最大损失)

  • 技术性止损:关键支撑位下方
  • 基本面止损:若投资逻辑失效

卖出条件(逻辑失效情形):

  1. [具体基本面恶化情况]
  2. [具体竞争威胁]
  3. [具体估值门槛]

持有期限:

  • 预期时间:[6-12个月 / 1-3年 / 3-5年以上]
  • 基于投资类型(波段交易 vs 长期持有)

催化剂识别

识别可能推动股价表现的具体事件。

短期(0-6个月):

  • 即将发布的财报:[日期]
  • 产品发布:[事件]
  • 监管决定:[预期时间]
  • 行业活动:[会议、数据发布]

中期(6-18个月):

  • 市场扩张计划
  • 新产品周期
  • 利润率提升举措
  • 战略合作伙伴关系

长期(18个月以上):

  • 结构性行业趋势
  • 市场份额增长
  • 技术领导力
  • 商业模式演进

关键分析约束

核心原则:

  1. 基本面分析不使用新闻/媒体报道

    • 仅使用公司申报文件(10-K、10-Q、8-K、股东委托书)
    • 使用财报电话会议记录
    • 不依赖新闻报道或新闻稿
    • 例外:近期动态可参考新闻,但需通过申报文件核实
  2. 把握幅度而非追求精确

    • 专注于具有良好安全边际(>15%)的股票
    • 无需完美预测
    • 大致的正确胜过精确的错误
    • 保守的假设优于乐观的假设
  3. 长期视角

    • 分析5-10年的趋势,而不仅仅是最近几个季度
    • 暂时的挫折与结构性问题
    • 可持续的竞争优势最为重要
    • 短期噪音与长期信号
  4. 进行同类比较

    • 以3-5个直接竞争对手为基准
    • 不仅仅是广泛的市场指数
    • 行业特定的指标和规范
    • 根据公司规模和成熟度进行调整
  5. 知识诚实

    • 承认局限性和未知因素
    • 公平地呈现看涨和看跌的观点
    • 在适当的时候说“我不知道”
    • 当证据发生变化时更新观点

输出模板

# [SYMBOL] - [Company Name] Evaluation

## ⚠️ DELIVERABLES CHECKLIST ✓
☑ Technical Analysis Complete
☑ Fundamental Analysis Complete
☑ Valuation Assessment Complete
☑ Bull vs. Bear Case Complete
☑ Clear Recommendation: **[BUY / HOLD / SELL]**
☑ Alternative Candidates: [If SELL, list 3-5 alternatives below]

---

## 📊 Executive Summary

[2-3 sentence bottom-line assessment with key reasoning]

**Recommendation: [BUY / HOLD / SELL]**
**Conviction: [Strong Buy / Buy / Hold / Avoid]**

---

## 💰 Valuation Assessment

**Fair Value Estimate: €X.XX** (Current: €X.XX)
- **Margin of Safety: X%** [Adequate >15% / Insufficient <15%]
- **Valuation: [UNDERVALUED / FAIRLY VALUED / OVERVALUED]**

| Valuation Method | Fair Value | vs. Current | Weight |
|-----------------|-----------|-------------|--------|
| DCF Analysis | €X.XX | +X% | 40% |
| Peer Relative | €X.XX | +X% | 30% |
| Peter Lynch | €X.XX | +X% | 30% |
| **Weighted Average** | **€X.XX** | **+X%** | **100%** |

**Assumptions:**
- DCF: [Key assumptions - growth rate, margins, discount rate]
- Margin of safety applied: X%

---

## 🏢 Business & Competitive Analysis

### What They Do
[2-3 paragraph business model summary:
- Core products/services
- Revenue breakdown
- Target markets
- Business model]

### Competitive Advantages
**Moat Strength: [Wide / Narrow / None]**

1. **[Advantage 1]**: [Detailed explanation with evidence]
2. **[Advantage 2]**: [Detailed explanation with evidence]
3. **[Advantage 3]**: [Detailed explanation with evidence]

**Moat Durability:** [How sustainable are these advantages? 3-5 years? 10+ years?]

### Management Quality Assessment
**Overall Rating: [Excellent / Good / Adequate / Concerning]**

- **CEO**: [Name] - [Background, tenure]
  - Track record: [Achievements/concerns]
  - Capital allocation: [Shareholder-friendly? Smart acquisitions?]
- **CFO**: [Name] - [Financial stewardship]
- **Insider Trading**: [Recent buying/selling activity]
- **Key Insight**: [Overall management assessment]

### Competitive Position

**Market Position:**
- Market share: X% (#X in industry)
- Share trend: [Gaining / Stable / Losing]

**Key Competitors:** [List 3-5 direct peers]

**Peer Comparison:**
| Company | Mkt Cap | Revenue Growth | Profit Margin | ROE | P/E | Moat |
|---------|---------|---------------|---------------|-----|-----|------|
| [Target] | €XB | X% | X% | X% | X.X | [Rating] |
| [Peer 1] | €XB | X% | X% | X% | X.X | [Rating] |
| [Peer 2] | €XB | X% | X% | X.X | X.X | [Rating] |
| [Peer 3] | €XB | X% | X% | X% | X.X | [Rating] |

**Competitive Assessment:** [Is this the best company in the sector?]

---

## 📈 Financial Health Analysis

### Quality Metrics vs. Benchmarks

| Metric | Current | 1Y Ago | 3Y Ago | 5Y Ago | Target | Status |
|--------|---------|--------|--------|--------|--------|--------|
| ROE | X% | X% | X% | X% | >15% | [✓/✗] |
| Profit Margin | X% | X% | X% | X% | >15% | [✓/✗] |
| Gross Margin | X% | X% | X% | X% | >30% | [✓/✗] |
| Revenue Growth | X% | X% | X% | X% | >0% | [✓/✗] |
| Debt/Revenue | X.X | X.X | X.X | X.X | <1.0 | [✓/✗] |
| FCF | €XM | €XM | €XM | €XM | Positive | [✓/✗] |

### Advanced Financial Health Scores

**Piotroski F-Score: X/9** [Excellent 8-9 / Good 6-7 / Adequate 4-5 / Weak 0-3]

*Profitability:* X/4
- ROA positive: [✓/✗]
- Operating CF positive: [✓/✗]
- ROA improving: [✓/✗]
- CF > Net Income: [✓/✗]

*Leverage:* X/3
- Debt decreasing: [✓/✗]
- Current ratio improving: [✓/✗]
- No dilution: [✓/✗]

*Efficiency:* X/2
- Margin improving: [✓/✗]
- Turnover improving: [✓/✗]

**Assessment:** [Detailed interpretation of F-Score]

**Altman Z-Score: X.XX** [Safe >2.99 / Grey 1.81-2.99 / Distress <1.81]
- **Bankruptcy Risk:** [Low / Moderate / High]
- **Interpretation:** [Explanation of Z-Score and financial stability]

**Beneish M-Score: X.XX** [Clean <-1.78 / Warning >-1.78]
- **Earnings Quality:** [High / Moderate / Questionable]
- **Red Flags:** [List any concerning indicators or state "None"]

**Max Drawdown (5Y): -X%** [Low <20% / Moderate 20-40% / High 40-60% / Extreme >60%]
- **Volatility Assessment:** [Low/Moderate/High volatility explanation]
- **Peak price:** €X.XX ([Date])
- **Trough price:** €X.XX ([Date])

### Consolidated Scores

**Strength Score: X/100** (Financial power and market position)
**Integrity Score: X/100** (Earnings quality and transparency)
**Predictability Score: X/100** (Business consistency)
**Data Quality Score: X/100** (Information completeness)

**Overall Quality Rating: [Elite / Strong / Good / Adequate / Weak]**

### Financial Trends (5-10 Year View)

**Revenue:**
- [Trend description: growth rate, consistency, drivers]
- [Any concerning patterns?]

**Margins:**
- Gross margin: [Expanding / Stable / Declining]
- Operating margin: [Trend]
- Net margin: [Trend]
- Drivers: [Why are margins moving this way?]

**Cash Flow:**
- Operating cash flow: [Trend and quality]
- Free cash flow: [Consistency, conversion]
- Capital allocation: [Dividends, buybacks, capex, acquisitions]

**Balance Sheet:**
- Debt levels: [Conservative / Moderate / High]
- Liquidity: [Strong / Adequate / Concerning]
- Trend: [Strengthening / Stable / Weakening]

### 🚩 Red Flags
[List any concerning trends or issues, or state "None identified"]

---

## 📉 Technical Analysis & Entry Timing

### Price Action (Last 30-60 Days)
- **Current Price**: €X.XX
- **52-Week Range**: €X.XX - €X.XX
- **30-day Change**: [+/-X%]
- **Trend**: [Uptrend / Downtrend / Range-bound]
- **Volume**: [Increasing / Decreasing / Normal]

### Key Technical Levels

**Support Levels:**
- **Primary Support: €X.XX** - [Significance/reason]
- **Secondary Support: €X.XX** - [Significance/reason]

**Resistance Levels:**
- **Primary Resistance: €X.XX** - [Significance/reason]
- **Secondary Resistance: €X.XX** - [Significance/reason]

### Technical Indicators

**RSI**: X.X [Overbought >70 / Neutral 30-70 / Oversold <30]
**MACD**: [Bullish crossover / Bearish crossover / Neutral]
- Interpretation: [Momentum assessment]

**Moving Averages:**
- 50-day MA: €X.XX - Price is [above/below]
- 200-day MA: €X.XX - Price is [above/below]
- Golden/Death Cross: [Any recent crossovers?]

### Entry Assessment

**Technical Setup: [Bullish / Neutral / Bearish]**

**Optimal Entry Strategy:**
- [Buy now at market / Wait for pullback to €X.XX / Buy on breakout above €X.XX]
- **Ideal Entry Range: €X.XX - €X.XX**
- **Maximum Buy Price: €X.XX** (avoid above this)

**Momentum: [Strong Bullish / Bullish / Neutral / Bearish / Strong Bearish]**

---

## ⚖️ Bull vs. Bear Case

### 🐂 Bull Case
**Potential Upside: €X.XX (+X%)**

1. **[Bull Argument 1]**: [Specific evidence and reasoning]
2. **[Bull Argument 2]**: [Specific evidence and reasoning]
3. **[Bull Argument 3]**: [Specific evidence and reasoning]

**For this to play out:**
- [Required condition 1]
- [Required condition 2]

**Probability: [High / Moderate / Low]**

### 🐻 Bear Case
**Potential Downside: €X.XX (-X%)**

1. **[Bear Argument 1]**: [Specific risk and reasoning]
2. **[Bear Argument 2]**: [Specific risk and reasoning]
3. **[Bear Argument 3]**: [Specific risk and reasoning]

**This happens if:**
- [Risk trigger 1]
- [Risk trigger 2]

**Probability: [High / Moderate / Low]**

### ⚖️ Balance Assessment

**Which case is more probable: [Bull / Bear / Balanced]**

[2-3 paragraph explanation of:
- Weight of evidence for each side
- Historical precedent
- Management track record
- Industry dynamics
- Current valuation
- Risk/reward assessment]

---

## ⚠️ Risk Analysis

**Overall Risk Level: [Low / Moderate / High]**

### Key Risks

**1. [Risk Category - e.g., Competition Risk]**: 
[Specific risk and potential impact. Probability: High/Medium/Low]

**2. [Risk Category - e.g., Execution Risk]**: 
[Specific risk and potential impact. Probability: High/Medium/Low]

**3. [Risk Category - e.g., Valuation Risk]**: 
[Specific risk and potential impact. Probability: High/Medium/Low]

**4. [Risk Category - e.g., Macro Risk]**: 
[Specific risk and potential impact. Probability: High/Medium/Low]

### Risk Mitigation
[How does the company/investment address these risks?]
[What reduces the risk in this investment?]

---

## 🎯 Catalysts & Timeline

### Near-Term (0-6 months)
- **[Date]**: [Specific catalyst - earnings, product launch, etc.]
- **[Date]**: [Specific catalyst]

### Medium-Term (6-18 months)
- [Expected development 1]
- [Expected development 2]

### Long-Term (18+ months)
- [Structural trend 1]
- [Structural trend 2]

**Expected Timeline to Target**: [6-12 months / 1-3 years / 3-5+ years]

---

## 💡 Investment Recommendation

### **RECOMMENDATION: [BUY / HOLD / SELL]**
### **Conviction: [Strong Buy / Buy / Hold / Avoid]**

### Rationale
[2-3 paragraph synthesis of entire analysis:
- Why this recommendation?
- What makes it compelling (or not)?
- How does valuation + fundamentals + technicals + catalysts = this conclusion?
- What's the risk/reward?]

---

## 📍 Entry Strategy (if BUY)

**Ideal Entry Price: €X.XX - €X.XX**
- Reasoning: [Why this range?]

**Maximum Acceptable Price: €X.XX**
- Above this: Risk/reward unfavorable

**Approach:**
- [Buy now at market / Wait for pullback to €X.XX / Buy on breakout above €X.XX]
- Reasoning: [Current technical setup justification]

**DO NOT BUY IF:**
- Price exceeds €X.XX without fundamental improvement
- [Other specific condition]

---

## 🎯 Exit Strategy

### Price Targets (12-Month Horizon)
- **Conservative**: €X.XX (+X%)
- **Base Case**: €X.XX (+X%)
- **Optimistic**: €X.XX (+X%)

### Stop Loss
**Stop Loss: €X.XX (-X% maximum loss)**
- Technical: Below €X.XX support
- Fundamental: If [thesis-breaking condition]

### Sell Conditions (Thesis-Breaking)
Exit position if any of these occur:
1. [Specific fundamental deterioration - e.g., "ROE drops below 10% for 2 consecutive quarters"]
2. [Specific competitive threat - e.g., "Loses >5% market share to competitor"]
3. [Specific valuation threshold - e.g., "Reaches €X.XX (>50% above fair value)"]

### Hold Duration
**Expected Timeframe**: [6-12 months / 1-3 years / 3-5+ years]
- Based on: [Investment type - swing trade vs. long-term hold]

---

## 📏 Position Sizing

### Recommended Allocation: X-X% of portfolio
**Specific Recommendation: X%**

**Rationale:**
- Conviction level: [Strong Buy / Buy → drives size]
- Risk level: [Low / Moderate / High → constrains size]
- Diversification: [Sector exposure, correlation with existing holdings]
- Liquidity: [Can exit position easily?]

**Maximum Allocation: X%**
- Risk management limit
- Don't exceed even if highly convicted

### Sizing Guidelines Applied:
- Strong Buy + Low Risk = 5-8% (max 10%)
- Buy + Moderate Risk = 3-5% (max 7%)
- Speculative + High Risk = 1-3% (max 5%)

---

## 🔑 Key Takeaways

### Top 3 Reasons to Invest
1. [Most compelling positive factor]
2. [Second most compelling positive factor]
3. [Third most compelling positive factor]

### Top 3 Concerns
1. [Biggest risk or concern]
2. [Second biggest risk or concern]
3. [Third biggest risk or concern]

### One-Sentence Investment Thesis
[Single sentence capturing the complete investment case - why buy or avoid]

---

## 📚 Research Documentation

**Sources Consulted:**
- 10-K filings: [Fiscal years reviewed - e.g., FY2020-2024]
- 10-Q filings: [Recent quarters - e.g., Q1-Q3 2025]
- Earnings calls: [Dates reviewed]
- Proxy statements: [Years reviewed]
- Management letters: [Years reviewed]
- Competitor analysis: [Companies benchmarked]

**Analysis Depth:**
- Historical period analyzed: [X years]
- Peer companies compared: [Number and names]
- Valuation methods used: [DCF, Relative, Peter Lynch, Asset-based]

**Confidence Level: [High / Medium / Low]**
- **Based on**: [Quality and completeness of available data]
- **Gaps**: [Any areas where information is limited or unavailable]
- **Limitations**: [Any constraints in the analysis]

---

## 🔄 Alternative Candidates (Required if SELL/AVOID)

[If recommending SELL or AVOID, provide 3-5 better investment alternatives with brief rationale for each]

### Alternative 1: [Symbol] - [Company Name]
**Why it's better**: [1-2 paragraph comparison]
**Quick metrics**: [Valuation, growth, margins]

### Alternative 2: [Symbol] - [Company Name]
**Why it's better**: [1-2 paragraph comparison]
**Quick metrics**: [Valuation, growth, margins]

### Alternative 3: [Symbol] - [Company Name]
**Why it's better**: [1-2 paragraph comparison]
**Quick metrics**: [Valuation, growth, margins]

[Continue for 4-5 alternatives if SELL recommendation]

---

**Analysis Date**: [Current Date]
**Next Review**: [Suggested review date based on catalysts or timeline]
**Analyst**: Claude Stock Evaluator

---

## 📊 Quant-Style Dashboard

**FINAL MANDATORY STEP**: Create a React artifact using the standardized quant-style dashboard template with:

**Required Data to Populate:**
- ✅ All 48 metrics across 8 sections (calculated above)
- ✅ Historical price data (5 years, 6-12 points)
- ✅ 1-year price + 6-month forecast (4-6 points)
- ✅ MACD data (3-5 recent points)
- ✅ RSI data (3-5 recent points)
- ✅ Radar chart (12 metrics, normalized 0-100)
- ✅ Bull case (target + 5 points)
- ✅ Bear case (target + 5 points)
- ✅ Entry/exit strategy (5 values)

**Use the EXACT template code provided in the skill instructions above.**
**DO NOT use placeholder values - populate with actual calculated data from this analysis.**

[Create the React artifact here using the quant-style template]

量化风格仪表盘产物

强制性的完成全文分析后,使用标准化的量化风格模板格式创建一个React仪表板制品。

仪表板模板结构

该仪表板采用特定的机构级格式,包含:

1. 页眉部分(橙色背景)

  • 格式:股票代码 - 公司名称

2. 八个指标模块(两列网格布局)

左侧列右侧列
价格与估值(蓝色)财务表现(绿色)
增长指标(翠绿色)风险指标(红色)
流动性与自由现金流(青色)内幕交易与市场情绪(紫色)
质量评分(橙色)护城河及其他(灰色)

每个模块:6个包含数值、标签、基准线和颜色编码的指标框

3. 图表部分(三栏网格)

  • 左侧:线性价格图 + MACD

    • 价格、内在价值、市场价值线
    • 五年历史数据
    • 下方为MACD指标
  • 中央:雷达图 + 一年期预测

    • 12点雷达图(标准化至0-100)
    • 综合建议徽章
    • 一年期价格 + 六个月预测
  • 右侧:对数价格图 + RSI

    • 对数刻度价格历史
    • 内在价值比较
    • 下方为RSI(14)指标

4. 关键说明部分(可展开的手风琴式面板)

  • 三栏布局:看涨理由 | 看跌理由 | 入场/出场策略
  • 点击展开/折叠

5. 页脚

  • 分析日期、数据来源、推荐建议

各板块所需指标

价格与估值(6项指标):

  • 价格、市值、历史市盈率、预期市盈率、细分行业典型市盈率、市盈率相对盈利增长比率

财务表现(6项指标):

  • 净资产收益率、总资产收益率、净利润率、营业利润率、毛利率、投入资本回报率

增长指标(6项指标):

  • 营收增长率(5年)、盈利增长率、每股收益(最近十二个月)、预期每股收益、分析师推荐、目标价格

风险指标(6项指标):

  • 负债权益比、综合风险、F值、Z值、M值、最大回撤(5年)

流动性与自由现金流(6项指标):

  • 流动比率、现金总额、负债总额、自由现金流增长率(5年)、自由现金流收益率、派息率

内幕交易与市场情绪(6项指标):

  • 内幕买入(12个月)、内幕卖出(12个月)、净持股数(12个月)、相对强弱指数(14日)、股票类型、行业板块

质量评分(6项指标):

  • CQVS、标签、估值分数、质量分数、实力分数、完整性分数

护城河及其他(6项指标):

  • 护城河分数(0-10)、贝塔值、可预测性、数据质量、完整性、股息收益率

雷达图指标(12个指标点,标准化为0-100分)

  1. 营收增长率(标准化:X%增长率 → 20%以上对应100分)
  2. 营业利润率(标准化:X% → 30%以上对应100分)
  3. 毛利率(标准化:X% → 60%以上对应100分)
  4. 净利润率(标准化:X% → 25%以上对应100分)
  5. 净资产收益率(标准化:X% → 30%以上对应100分)
  6. 风险分数(综合风险的逆向指标:100 - 风险值*100)
  7. 贝塔分数(逆向指标:贝塔值=0.5对应100分,贝塔值=1.5对应50分,贝塔值=2.5以上对应0分)
  8. 价格/市场折扣(100分=深度低估,50分=估值合理,0分=估值过高)
  9. 护城河分数(护城河评级 * 10)
  10. 自由现金流收益率(X% → 8%以上对应100分)
  11. 总资产收益率(X% → 20%以上对应100分)
  12. 盈利增长率(X% → 25%以上对应100分)

颜色编码规则

// Green (isGood: true) - Positive indicators
ROE > 20%, ROA > 10%, Margins > 20%, ROIC > 15%
Revenue Growth > 10%, Current Ratio 1-2, Z-Score > 3
M-Score < -1.78, FCF Growth > 0%, Payout < 50%
F-Score >= 7, Quality >= 70, Strength >= 70

// Red (isGood: false) - Warning indicators  
Max Drawdown < -50%, Beta > 2, Consolidated Risk > 0.6
Predictability < 50%, F-Score <= 3, Z-Score < 1.81
M-Score > -1.78, Quality < 50

// Yellow (isGood: 'neutral') - Monitor
F-Score 4-6, RSI 30-70, Moat 5-7, Quality 50-70
Beta 1.5-2.0, Predictability 50-70%

完成模板代码

使用以下确切的模板结构:

import React, { useState } from 'react';
import { 
  LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, 
  ResponsiveContainer, RadarChart, PolarGrid, PolarAngleAxis, 
  PolarRadiusAxis, Radar, ReferenceLine, Area, ComposedChart, Scatter
} from 'recharts';

const QuantDashboard = () => {
  const [showKeyNotes, setShowKeyNotes] = useState(false);

  // ============================================================
  // POPULATE WITH STOCK-SPECIFIC DATA FROM ANALYSIS
  // ============================================================
  
  const ticker = "TICKER";  // Replace
  const companyName = "Company Name";  // Replace
  const recommendation = "BUY";  // BUY, HOLD, SELL, SPECULATIVE BUY
  const analysisDate = "December 6, 2025";  // Current date

  const metrics = {
    // Price & Valuation - from analysis
    price: 100.00,
    marketCap: '€10B',
    trailingPE: 20.0,
    forwardPE: 18.0,
    subsectorTypicalPE: 25.0,
    peg1Y: 1.2,           // NEW: 1-Year Forward PEG
    peg5Y: 2.5,           // NEW: 5-Year PEG
    
    // Financial Performance - from 5-10 year analysis
    roe: 25.0,
    roa: 12.0,
    profitMargin: 20.0,
    opMargin: 25.0,
    grossMargin: 50.0,
    roic: 18.0,
    
    // Growth Metrics - from historical trends (USE REPORTED, not underlying)
    revGrowth: 15.0,      // REPORTED revenue growth YoY
    earnGrowth: 20.0,     // REPORTED earnings growth YoY
    epsTTM: 5.00,
    forwardEPS: 5.50,
    growthCapped: 10.0,   // NEW: Capped sustainable growth estimate
    growthUncapped: 22.0, // NEW: Headline analyst growth estimate
    analystTarget: 120.00,
    
    // Risk Indicators - from advanced metrics section
    crs: 0.40,            // Consolidated Risk Score (0-1 scale)
    debtEquity: 0.50,
    fScore: 7,            // Piotroski F-Score
    zScore: 4.0,          // Altman Z-Score
    mScore: -2.5,         // Beneish M-Score
    valueTrapScore: 25,   // NEW: 0-100, LOWER = genuine, HIGHER = trap
    valueTrapLabel: 'Genuine', // NEW: Genuine/Caution/Trap
    maxDrawdown: -30.0,   // 5-year max drawdown %
    
    // Liquidity & FCF - from cash flow analysis
    currentRatio: 1.5,
    totalCash: '€2B',
    totalDebt: '€1B',
    fcfGrowth5Y: 12.0,    // 5-year smoothed growth
    fcfYield: 5.0,
    fcfMargin: 18.5,      // NEW: FCF / Revenue %
    payoutRatio: 30.0,
    
    // Insider & Sentiment - from SEC Form 4 or use "N/A" if unavailable
    insBuys: 0,           // From SEC Form 4 - use actual count or "N/A"
    insSells: 0,          // From SEC Form 4 - use actual count or "N/A"
    netShares: 'N/A',     // From SEC Form 4 - use actual or "N/A"
    shortInterest: 2.5,   // From FINRA/exchange - use actual or "N/A"
    newsSentiment: 0.25,  // -1 to +1 scale
    newsArticleCount: 15, // Recent article count
    
    // Beta & Volatility
    beta: 1.0,            // Stock beta
    vol1Y: 25.0,          // 1-Year volatility %
    
    // Quality Scores - from consolidated scoring
    cqvs: 75.0,           // Consolidated Quality & Valuation Score
    label: 'Quality Growth', // Elite/Compounder/Quality Growth/etc
    valuation: 70.0,      // 0-100
    quality: 80.0,        // 0-100
    strength: 75.0,       // 0-100
    integrity: 85.0,      // 0-100
    
    // Moat & Other
    buffettMoat: 8,       // 0-10 scale (renamed from moat)
    greenblattEY: 6.5,    // NEW: Earnings Yield %
    greenblattROC: 22.0,  // NEW: Return on Capital %
    earningsPredict: 70,  // Earnings Predictability 0-100
    completeness: 85,     // Data completeness 0-100
    dataQuality: 'High',  // High/Medium/Low
    divYield: 1.5,
    stockType: 'Growth',  // Growth/Value/Cyclical/Defensive
    sector: 'Technology',
    industry: 'Software',
    
    // NEW: Investor Persona Scores (0-10 scale each)
    buffettScore: 7.5,    // Durable competitive advantage seeker
    mungerScore: 6.8,     // Inversion thinker, risk avoider
    dalioScore: 7.2,      // All-weather, cycle resilient
    lynchScore: 8.0,      // GARP - Growth at Reasonable Price
    grahamScore: 5.5,     // Deep value, margin of safety
    greenblattScore: 6.0, // Magic Formula (EY + ROC)
    templetonScore: 4.5,  // Contrarian, global value
    sorosScore: 3.0,      // Reflexivity, macro trends
    
    // NEW: Valuation Lines for Charts
    marketValueCurrent: 95.00,
    intrinsicValueCurrent: 110.00,
    marketValueNextYear: 105.00,
    intrinsicValueNextYear: 120.00,
    unrestrictedMarketValueCurrent: 125.00,
    unrestrictedMarketValueNextYear: 140.00,
    
    // Valuation Assessment (for indicator below forecast)
    valuationPercent: 15,       // Positive = undervalued, negative = overvalued
    valuationLabel: 'Undervalued', // Undervalued/Fairly Valued/Overvalued
  };

  // TOP NEWS Headlines - Format: pipe-separated with dates at END in brackets
  const topNews = [
    { headline: 'Company announces Q4 guidance above expectations', date: '05 Dec 2025' },
    { headline: 'New product launch receives positive analyst coverage', date: '28 Nov 2025' },
    { headline: 'Strategic partnership announced with major cloud provider', date: '15 Nov 2025' },
    { headline: 'Q3 earnings beat estimates, revenue up 18% YoY', date: '02 Nov 2025' },
    { headline: 'Management presents at investor conference, reaffirms outlook', date: '20 Oct 2025' },
  ];
  
  // Format TOP NEWS as pipe-separated string with dates at END
  const topNewsString = topNews.map(n => `${n.headline} [${n.date}]`).join(' | ');

  // Historical Price Data (10 years with multiple valuation lines)
  const priceHistory = [
    { date: '2016', price: 25, totalReturn: 28, marketValueCurrent: 27, intrinsicValueCurrent: 30, marketValueNextYear: 29, intrinsicValueNextYear: 32, analystTarget: 30, unrestrictedCurrent: 28, unrestrictedNextYear: 31 },
    { date: '2017', price: 35, totalReturn: 40, marketValueCurrent: 38, intrinsicValueCurrent: 42, marketValueNextYear: 40, intrinsicValueNextYear: 45, analystTarget: 42, unrestrictedCurrent: 40, unrestrictedNextYear: 44 },
    { date: '2018', price: 45, totalReturn: 52, marketValueCurrent: 48, intrinsicValueCurrent: 55, marketValueNextYear: 52, intrinsicValueNextYear: 60, analystTarget: 55, unrestrictedCurrent: 52, unrestrictedNextYear: 58 },
    { date: '2019', price: 55, totalReturn: 65, marketValueCurrent: 58, intrinsicValueCurrent: 68, marketValueNextYear: 62, intrinsicValueNextYear: 72, analystTarget: 65, unrestrictedCurrent: 65, unrestrictedNextYear: 72 },
    { date: '2020', price: 50, totalReturn: 62, marketValueCurrent: 55, intrinsicValueCurrent: 65, marketValueNextYear: 60, intrinsicValueNextYear: 70, analystTarget: 62, unrestrictedCurrent: 62, unrestrictedNextYear: 70 },
    { date: '2021', price: 75, totalReturn: 95, marketValueCurrent: 80, intrinsicValueCurrent: 90, marketValueNextYear: 85, intrinsicValueNextYear: 98, analystTarget: 90, unrestrictedCurrent: 92, unrestrictedNextYear: 105 },
    { date: '2022', price: 65, totalReturn: 85, marketValueCurrent: 72, intrinsicValueCurrent: 85, marketValueNextYear: 78, intrinsicValueNextYear: 92, analystTarget: 82, unrestrictedCurrent: 85, unrestrictedNextYear: 95 },
    { date: '2023', price: 80, totalReturn: 105, marketValueCurrent: 85, intrinsicValueCurrent: 100, marketValueNextYear: 92, intrinsicValueNextYear: 108, analystTarget: 98, unrestrictedCurrent: 100, unrestrictedNextYear: 115 },
    { date: '2024', price: 95, totalReturn: 125, marketValueCurrent: 100, intrinsicValueCurrent: 115, marketValueNextYear: 108, intrinsicValueNextYear: 125, analystTarget: 115, unrestrictedCurrent: 120, unrestrictedNextYear: 135 },
    { date: '2025', price: 100, totalReturn: 135, marketValueCurrent: 105, intrinsicValueCurrent: 120, marketValueNextYear: 115, intrinsicValueNextYear: 132, analystTarget: 125, unrestrictedCurrent: 130, unrestrictedNextYear: 145 },
  ];

  // 1 Year Price with 6-Month Forecast, MAs, and Bollinger Bands
  const oneYearData = [
    { date: "Jan'25", price: 90, ma50: 88, ma200: 85, upperBand: 98, lowerBand: 82, forecast: null, ci95Upper: null, ci95Lower: null },
    { date: "Mar'25", price: 88, ma50: 89, ma200: 86, upperBand: 96, lowerBand: 80, forecast: null, ci95Upper: null, ci95Lower: null },
    { date: "May'25", price: 95, ma50: 91, ma200: 87, upperBand: 102, lowerBand: 84, forecast: null, ci95Upper: null, ci95Lower: null },
    { date: "Jul'25", price: 92, ma50: 92, ma200: 88, upperBand: 100, lowerBand: 84, forecast: null, ci95Upper: null, ci95Lower: null },
    { date: "Sep'25", price: 98, ma50: 94, ma200: 90, upperBand: 106, lowerBand: 86, forecast: null, ci95Upper: null, ci95Lower: null },
    { date: "Nov'25", price: 100, ma50: 96, ma200: 92, upperBand: 108, lowerBand: 88, forecast: 100, ci95Upper: 108, ci95Lower: 92 },
    { date: "Jan'26", price: null, ma50: null, ma200: null, upperBand: null, lowerBand: null, forecast: 108, ci95Upper: 120, ci95Lower: 96 },
    { date: "Mar'26", price: null, ma50: null, ma200: null, upperBand: null, lowerBand: null, forecast: 115, ci95Upper: 130, ci95Lower: 100 },
  ];

  // NEW: Ichimoku Cloud Data (6-month view with signal markers)
  const ichimokuData = [
    { date: 'Jun', price: 88, tenkan: 87, kijun: 85, senkouA: 84, senkouB: 82, chikou: 85, tkCrossMarker: null, kumoTwistMarker: null },
    { date: 'Jul', price: 92, tenkan: 90, kijun: 87, senkouA: 86, senkouB: 84, chikou: 90, tkCrossMarker: 92, kumoTwistMarker: null }, // TK Bullish Cross
    { date: 'Aug', price: 95, tenkan: 93, kijun: 90, senkouA: 89, senkouB: 86, chikou: 93, tkCrossMarker: null, kumoTwistMarker: null },
    { date: 'Sep', price: 98, tenkan: 96, kijun: 93, senkouA: 92, senkouB: 88, chikou: 96, tkCrossMarker: null, kumoTwistMarker: 92 }, // Kumo Twist Bullish
    { date: 'Oct', price: 96, tenkan: 97, kijun: 95, senkouA: 94, senkouB: 90, chikou: 94, tkCrossMarker: null, kumoTwistMarker: null },
    { date: 'Nov', price: 100, tenkan: 98, kijun: 96, senkouA: 95, senkouB: 92, chikou: 98, tkCrossMarker: null, kumoTwistMarker: null },
  ];

  // NEW: Ichimoku Signals Summary
  const ichimokuSignals = {
    tkCross: 'TK Bullish Cross',
    kumoTwist: 'Kumo Twist Bullish',
    priceVsCloud: 'Above Cloud (Bullish)',
  };

  // MACD Data (recent 6 months)
  const macdData = [
    { date: 'Jun', macd: 0.5, signal: 0.3, histogram: 0.2 },
    { date: 'Jul', macd: 1.2, signal: 0.6, histogram: 0.6 },
    { date: 'Aug', macd: 1.5, signal: 1.0, histogram: 0.5 },
    { date: 'Sep', macd: 1.8, signal: 1.3, histogram: 0.5 },
    { date: 'Oct', macd: 1.2, signal: 1.4, histogram: -0.2 },
    { date: 'Nov', macd: 0.8, signal: 1.2, histogram: -0.4 },
  ];

  // RSI Data (recent 6 months)
  const rsiData = [
    { date: 'Jun', rsi: 45 },
    { date: 'Jul', rsi: 55 },
    { date: 'Aug', rsi: 62 },
    { date: 'Sep', rsi: 68 },
    { date: 'Oct', rsi: 58 },
    { date: 'Nov', rsi: 55 },
  ];

  // Radar Chart Data (normalize all to 0-100 scale)
  const radarData = [
    { metric: 'Rev Growth', value: 70, fullMark: 100 },
    { metric: 'Op Margin', value: 75, fullMark: 100 },
    { metric: 'Gross Margin', value: 65, fullMark: 100 },
    { metric: 'Profit Margin', value: 60, fullMark: 100 },
    { metric: 'ROE', value: 70, fullMark: 100 },
    { metric: 'Risk (CRS)', value: 60, fullMark: 100 },
    { metric: 'Beta Score', value: 70, fullMark: 100 },
    { metric: 'P/Market Disc', value: 50, fullMark: 100 },
    { metric: 'Moat', value: 80, fullMark: 100 },
    { metric: 'FCF Growth', value: 55, fullMark: 100 },
    { metric: 'ROA', value: 65, fullMark: 100 },
    { metric: 'Earn Growth', value: 75, fullMark: 100 },
  ];

  // Key Notes Content - from Bull/Bear case analysis
  const bullCase = {
    target: "€130-150",  // Bull case price target
    points: [
      "Strong revenue growth momentum",
      "Expanding margins",
      "Market leadership position",
      "Favorable industry tailwinds",
      "Strong balance sheet"
    ]
  };

  const bearCase = {
    target: "€70-80",  // Bear case price target
    points: [
      "Valuation compression risk",
      "Competitive pressures",
      "Macro sensitivity",
      "Execution risks",
      "Key person dependency"
    ]
  };

  const entryStrategy = {
    idealEntry: "€90-95",  // From Entry Strategy section
    currentEntry: "€100 acceptable",
    target: "€120 (+20%)",  // 12-month target
    stopLoss: "€85 (-15%)",  // Stop loss
    positionSize: "2-3%"  // Recommended allocation
  };

  // ============================================================
  // COMPONENT CODE (Standard - use as-is)
  // ============================================================

  // Helper: Value Trap color (LOWER = genuine = green, HIGHER = trap = red)
  const getValueTrapColor = (score) => {
    if (score < 40) return 'bg-green-100 border-green-400 text-green-800';
    if (score < 60) return 'bg-yellow-100 border-yellow-400 text-yellow-800';
    return 'bg-red-100 border-red-400 text-red-800';
  };

  // Helper: Get label for Value Trap score
  const getValueTrapLabel = (score) => {
    if (score < 20) return 'Genuine';
    if (score < 40) return 'Probably Genuine';
    if (score < 60) return 'Caution';
    if (score < 80) return 'Likely Trap';
    return 'Strong Trap';
  };

  // Helper: Persona score color
  const getPersonaColor = (score) => {
    if (score >= 7) return 'bg-green-500';
    if (score >= 4) return 'bg-yellow-500';
    return 'bg-red-500';
  };

  // Helper: News sentiment color
  const getSentimentColor = (sentiment) => {
    if (sentiment > 0.3) return 'text-green-600';
    if (sentiment > 0) return 'text-green-500';
    if (sentiment > -0.3) return 'text-yellow-600';
    return 'text-red-600';
  };

  // Persona Badge Component
  const PersonaBadge = ({ name, score, position }) => (
    <div className={`absolute ${position} flex flex-col items-center`}>
      <div className={`w-6 h-6 rounded-full ${getPersonaColor(score)} flex items-center justify-center text-white text-[8px] font-bold`}>
        {score.toFixed(1)}
      </div>
      <div className="text-[7px] text-gray-600 mt-0.5">{name}</div>
    </div>
  );

  const MetricBox = ({ label, value, benchmark, isGood, size = 'normal' }) => {
    let bgColor = 'bg-gray-50';
    if (isGood === true) bgColor = 'bg-green-50 border-green-200';
    if (isGood === false) bgColor = 'bg-red-50 border-red-200';
    if (isGood === 'neutral') bgColor = 'bg-yellow-50 border-yellow-200';
    
    return (
      <div className={`${bgColor} border p-1.5 flex flex-col justify-center items-center`}>
        <div className="text-base font-bold text-gray-900">{value}</div>
        <div className="text-[9px] text-gray-600 text-center leading-tight">{label}</div>
        {benchmark && <div className="text-[8px] text-gray-400">{benchmark}</div>}
      </div>
    );
  };

  const SectionHeader = ({ title, bgColor }) => (
    <div className={`${bgColor} px-2 py-1 text-[10px] font-bold text-gray-700`}>
      {title}
    </div>
  );

  return (
    <div className="w-full max-w-7xl mx-auto p-3 bg-white text-xs">
      {/* Header */}
      <div className="bg-orange-500 text-white px-3 py-2 mb-1 text-lg font-bold text-center">
        {ticker} - {companyName}
      </div>

      {/* TOP NEWS - Pipe separated with dates at END */}
      <div className="border border-gray-300 rounded p-2 mb-3 bg-gray-50">
        <span className="font-bold text-[10px]">TOP NEWS:</span>
        <div className="text-[9px] mt-1">{topNewsString}</div>
      </div>

      {/* Top 4 sections */}
      <div className="grid grid-cols-2 gap-2 mb-3">
        {/* Price & Valuation - Updated with dual PEG */}
        <div className="border border-gray-300 rounded overflow-hidden">
          <SectionHeader title="PRICE & VALUATION" bgColor="bg-blue-100" />
          <div className="grid grid-cols-7 gap-px bg-gray-200">
            <MetricBox label="Price:" value={`€${metrics.price}`} />
            <MetricBox label="Market Cap:" value={metrics.marketCap} />
            <MetricBox label="Trailing P/E:" value={metrics.trailingPE} />
            <MetricBox label="Forward P/E:" value={metrics.forwardPE} benchmark={`(${metrics.subsectorTypicalPE})`} isGood={metrics.forwardPE < metrics.subsectorTypicalPE} />
            <MetricBox label="Subsector P/E:" value={metrics.subsectorTypicalPE} />
            <MetricBox label="PEG (1Y):" value={metrics.peg1Y} benchmark="(<1.5)" isGood={metrics.peg1Y < 1.5 ? true : metrics.peg1Y < 2 ? 'neutral' : false} />
            <MetricBox label="PEG (5Y):" value={metrics.peg5Y} benchmark="(<2)" isGood={metrics.peg5Y < 2 ? true : metrics.peg5Y < 3 ? 'neutral' : false} />
          </div>
        </div>

        {/* Financial Performance */}
        <div className="border border-gray-300 rounded overflow-hidden">
          <SectionHeader title="FINANCIAL PERFORMANCE" bgColor="bg-green-100" />
          <div className="grid grid-cols-6 gap-px bg-gray-200">
            <MetricBox label="ROE:" value={`${metrics.roe}%`} benchmark="(>20%)" isGood={metrics.roe >= 20 ? true : metrics.roe >= 10 ? 'neutral' : false} />
            <MetricBox label="ROA:" value={`${metrics.roa}%`} benchmark="(>10%)" isGood={metrics.roa >= 10} />
            <MetricBox label="Profit Margin:" value={`${metrics.profitMargin}%`} benchmark="(>20%)" isGood={metrics.profitMargin >= 20 ? true : metrics.profitMargin >= 10 ? 'neutral' : false} />
            <MetricBox label="Operative Margin:" value={`${metrics.opMargin}%`} benchmark="(>20%)" isGood={metrics.opMargin >= 20} />
            <MetricBox label="Gross Margin:" value={`${metrics.grossMargin}%`} benchmark="(>40%)" isGood={metrics.grossMargin >= 40} />
            <MetricBox label="ROIC:" value={`${metrics.roic}%`} benchmark="(>15%)" isGood={metrics.roic >= 15} />
          </div>
        </div>
      </div>

      {/* Next 4 sections */}
      <div className="grid grid-cols-2 gap-2 mb-3">
        {/* Growth Metrics */}
        <div className="border border-gray-300 rounded overflow-hidden">
          <SectionHeader title="GROWTH METRICS" bgColor="bg-emerald-100" />
          <div className="grid grid-cols-7 gap-px bg-gray-200">
            <MetricBox label="Revenue (YoY):" value={`${metrics.revGrowth}%`} benchmark="(>10%)" isGood={metrics.revGrowth >= 10} />
            <MetricBox label="Earning (YoY):" value={`${metrics.earnGrowth}%`} benchmark="(>0%)" isGood={metrics.earnGrowth >= 0} />
            <MetricBox label="EPS (TTM):" value={`€${metrics.epsTTM}`} />
            <MetricBox label="Forward EPS:" value={`€${metrics.forwardEPS}`} isGood={metrics.forwardEPS > metrics.epsTTM} />
            <MetricBox label="Growth Rates:" value={`Capped: ${metrics.growthCapped}%`} benchmark={`Uncapped: ${metrics.growthUncapped}%`} />
            <MetricBox label="Analyst Target:" value={`€${metrics.analystTarget}`} />
          </div>
        </div>

        {/* Risk Indicators */}
        <div className="border border-gray-300 rounded overflow-hidden">
          <SectionHeader title="RISK INDICATORS" bgColor="bg-red-100" />
          <div className="grid grid-cols-6 gap-px bg-gray-200">
            <MetricBox label="CRS (0-1):" value={metrics.crs.toFixed(2)} benchmark="(Medium)" isGood={metrics.crs < 0.4 ? true : metrics.crs < 0.6 ? 'neutral' : false} />
            <MetricBox label="Debt/Equity (mrq):" value={metrics.debtEquity} benchmark="(0.5-1)" isGood={metrics.debtEquity < 1 ? true : metrics.debtEquity < 2 ? 'neutral' : false} />
            <MetricBox label="Piotroski F:" value={metrics.fScore} benchmark="(≥7)" isGood={metrics.fScore >= 7 ? true : metrics.fScore >= 4 ? 'neutral' : false} />
            <MetricBox label="Altman Z:" value={metrics.zScore.toFixed(2)} benchmark="(>3)" isGood={metrics.zScore >= 2.99 ? true : metrics.zScore >= 1.81 ? 'neutral' : false} />
            <MetricBox label="Beneish M:" value={metrics.mScore.toFixed(2)} benchmark="(<-1.78)" isGood={metrics.mScore < -1.78} />
            <MetricBox label="Value Trap:" value={`${metrics.valueTrapScore} (${metrics.valueTrapLabel})`} isGood={metrics.valueTrapScore < 40 ? true : metrics.valueTrapScore < 60 ? 'neutral' : false} />
          </div>
        </div>
      </div>

      {/* Next 4 sections */}
      <div className="grid grid-cols-2 gap-2 mb-3">
        {/* Liquidity & Free Cash Flow */}
        <div className="border border-gray-300 rounded overflow-hidden">
          <SectionHeader title="LIQUIDITY & FREE CASH FLOW" bgColor="bg-cyan-100" />
          <div className="grid grid-cols-7 gap-px bg-gray-200">
            <MetricBox label="Current Ratio:" value={metrics.currentRatio.toFixed(2)} benchmark="(1-2)" isGood={metrics.currentRatio >= 1 && metrics.currentRatio <= 2 ? true : 'neutral'} />
            <MetricBox label="Cash:" value={metrics.totalCash} />
            <MetricBox label="Debt:" value={metrics.totalDebt} />
            <MetricBox label="FCF Growth 5Y:" value={`${metrics.fcfGrowth5Y}%`} benchmark="(>5%)" isGood={metrics.fcfGrowth5Y >= 5} />
            <MetricBox label="FCF Yield:" value={`${metrics.fcfYield}%`} benchmark="(>4%)" isGood={metrics.fcfYield >= 4} />
            <MetricBox label="FCF Margin:" value={`${metrics.fcfMargin}%`} benchmark="(>15%)" isGood={metrics.fcfMargin >= 15 ? true : metrics.fcfMargin >= 10 ? 'neutral' : false} />
            <MetricBox label="Payout Ratio:" value={`${metrics.payoutRatio}%`} benchmark="(<50%)" isGood={metrics.payoutRatio < 50} />
          </div>
        </div>

        {/* Insider & Sentiment & Class */}
        <div className="border border-gray-300 rounded overflow-hidden">
          <SectionHeader title="INSIDER & SENTIMENT & CLASS" bgColor="bg-purple-100" />
          <div className="grid grid-cols-7 gap-px bg-gray-200">
            <MetricBox label="Buys (12M):" value={metrics.insBuys} isGood={metrics.insBuys > metrics.insSells} />
            <MetricBox label="Sells (12M):" value={metrics.insSells} />
            <MetricBox label="Net Shares (12M):" value={metrics.netShares} />
            <MetricBox label="Short Int (%):" value={`${metrics.shortInterest}%`} isGood={metrics.shortInterest < 5 ? true : metrics.shortInterest < 10 ? 'neutral' : false} />
            <MetricBox label="Sentiment / Articles:" value={`${metrics.newsSentiment > 0 ? '+' : ''}${metrics.newsSentiment.toFixed(3)} / ${metrics.newsArticleCount}`} benchmark={metrics.newsSentiment > 0 ? '(Positive)' : '(Negative)'} isGood={metrics.newsSentiment > 0} />
            <MetricBox label={`Stock: ${metrics.stockType}`} value={`Div Yield: ${metrics.divYield}%`} />
            <MetricBox label="Sector/Industry:" value={`${metrics.sector} /`} benchmark={metrics.industry} />
          </div>
        </div>
      </div>

      {/* Last 2 sections */}
      <div className="grid grid-cols-2 gap-2 mb-3">
        {/* Quality Scores */}
        <div className="border border-gray-300 rounded overflow-hidden">
          <SectionHeader title="QUALITY SCORES" bgColor="bg-orange-100" />
          <div className="grid grid-cols-6 gap-px bg-gray-200">
            <MetricBox label="CQVS:" value={metrics.cqvs.toFixed(1)} benchmark="(>70)" isGood={metrics.cqvs >= 70 ? true : metrics.cqvs >= 50 ? 'neutral' : false} />
            <MetricBox label="Label:" value={metrics.label} />
            <MetricBox label="Valuation:" value={metrics.valuation} isGood={metrics.valuation >= 70} />
            <MetricBox label="Quality:" value={metrics.quality} isGood={metrics.quality >= 70 ? true : metrics.quality >= 50 ? 'neutral' : false} />
            <MetricBox label="Strength:" value={metrics.strength} isGood={metrics.strength >= 70} />
            <MetricBox label="Integrity:" value={metrics.integrity} isGood={metrics.integrity >= 70 ? true : metrics.integrity >= 50 ? 'neutral' : false} />
          </div>
        </div>

        {/* Moat & Other */}
        <div className="border border-gray-300 rounded overflow-hidden">
          <SectionHeader title="MOAT & OTHER" bgColor="bg-gray-200" />
          <div className="grid grid-cols-6 gap-px bg-gray-200">
            <MetricBox label="Buffett Moat:" value={metrics.buffettMoat} benchmark="(4-7)" isGood={metrics.buffettMoat >= 7 ? true : metrics.buffettMoat >= 4 ? 'neutral' : false} />
            <MetricBox label="Greenblatt (MF):" value={`EY: ${metrics.greenblattEY}%`} benchmark={metrics.greenblattROC ? `ROC: ${metrics.greenblattROC}%` : 'ROC: N/A'} isGood={metrics.greenblattEY >= 8 ? true : metrics.greenblattEY >= 4 ? 'neutral' : false} />
            <MetricBox label={`Beta: ${metrics.beta}`} value={`Vol 1Y: ${metrics.vol1Y}%`} isGood={metrics.beta < 1 ? true : metrics.beta < 1.5 ? 'neutral' : false} />
            <MetricBox label="Earnings Predict.:" value={`${metrics.earningsPredict}%`} benchmark="(>80%)" isGood={metrics.earningsPredict >= 80 ? true : metrics.earningsPredict >= 60 ? 'neutral' : false} />
            <MetricBox label="Drawdown (5Y):" value={`${metrics.maxDrawdown}%`} benchmark={metrics.maxDrawdown > -30 ? '(Low)' : metrics.maxDrawdown > -50 ? '(Mid)' : '(High)'} isGood={metrics.maxDrawdown > -30 ? true : metrics.maxDrawdown > -50 ? 'neutral' : false} />
            <MetricBox label={`Completeness: ${metrics.completeness}%`} value={`Data Quality: ${metrics.dataQuality}`} isGood={metrics.dataQuality === 'High' ? true : metrics.dataQuality === 'Medium' ? 'neutral' : false} />
          </div>
        </div>
      </div>

      {/* Charts Section - Enhanced with Legends */}
      <div className="grid grid-cols-3 gap-2 mb-3">
        {/* Linear Price Chart + MACD */}
        <div className="border border-gray-300 rounded p-2">
          <div className="text-sm font-bold mb-1 text-center">LINEAR PRICE CHART (10Y)</div>
          <div className="text-[7px] text-gray-500 mb-1 pl-1">
            — Close Price — Total Return<br/>
            - - Market Value (Current): €{metrics.marketValueCurrent}<br/>
            - - Intrinsic Value (Current): €{metrics.intrinsicValueCurrent}<br/>
            - - Analyst Target: €{metrics.analystTarget}
          </div>
          <ResponsiveContainer width="100%" height={130}>
            <LineChart data={priceHistory}>
              <CartesianGrid strokeDasharray="3 3" stroke="#e0e0e0" />
              <XAxis dataKey="date" tick={{ fontSize: 7 }} />
              <YAxis tick={{ fontSize: 7 }} />
              <Tooltip contentStyle={{ fontSize: 8 }} />
              <Line type="monotone" dataKey="price" stroke="#1f2937" strokeWidth={1.5} dot={false} name="Close" />
              <Line type="monotone" dataKey="totalReturn" stroke="#6b7280" strokeWidth={1} strokeDasharray="2 2" dot={false} name="Total Return" />
              <Line type="monotone" dataKey="intrinsicValueCurrent" stroke="#16a34a" strokeWidth={1} strokeDasharray="5 5" dot={false} name="IV Current" />
              <Line type="monotone" dataKey="analystTarget" stroke="#3b82f6" strokeWidth={1} strokeDasharray="3 3" dot={false} name="Target" />
            </LineChart>
          </ResponsiveContainer>
          <div className="text-xs font-bold mt-1 mb-1 text-center">MACD</div>
          <ResponsiveContainer width="100%" height={55}>
            <LineChart data={macdData}>
              <CartesianGrid strokeDasharray="3 3" stroke="#e0e0e0" />
              <XAxis dataKey="date" tick={{ fontSize: 6 }} />
              <YAxis tick={{ fontSize: 6 }} />
              <ReferenceLine y={0} stroke="#666" />
              <Tooltip contentStyle={{ fontSize: 7 }} />
              <Line type="monotone" dataKey="macd" stroke="#2563eb" strokeWidth={1} dot={false} name="MACD" />
              <Line type="monotone" dataKey="signal" stroke="#dc2626" strokeWidth={1} dot={false} name="Signal" />
            </LineChart>
          </ResponsiveContainer>
        </div>

        {/* Radar + Investor Personas + Forecast */}
        <div className="border border-gray-300 rounded p-2">
          <div className="relative">
            <ResponsiveContainer width="100%" height={140}>
              <RadarChart data={radarData}>
                <PolarGrid />
                <PolarAngleAxis dataKey="metric" tick={{ fontSize: 6 }} />
                <PolarRadiusAxis angle={30} domain={[0, 100]} tick={{ fontSize: 6 }} />
                <Radar name={ticker} dataKey="value" stroke="#2563eb" fill="#3b82f6" fillOpacity={0.3} />
              </RadarChart>
            </ResponsiveContainer>
            {/* Investor Persona Badges */}
            <PersonaBadge name="Buffett" score={metrics.buffettScore} position="top-0 left-1/4" />
            <PersonaBadge name="Lynch" score={metrics.lynchScore} position="top-0 right-1/4" />
            <PersonaBadge name="Munger" score={metrics.mungerScore} position="top-1/4 -left-2" />
            <PersonaBadge name="Greenblatt" score={metrics.greenblattScore} position="top-1/4 -right-2" />
            <PersonaBadge name="Dalio" score={metrics.dalioScore} position="bottom-1/4 -left-2" />
            <PersonaBadge name="Graham" score={metrics.grahamScore} position="bottom-1/4 -right-2" />
            <PersonaBadge name="Templeton" score={metrics.templetonScore} position="bottom-0 left-1/4" />
            <PersonaBadge name="Soros" score={metrics.sorosScore} position="bottom-0 right-1/4" />
          </div>
          <div className="text-center my-1">
            <span className="bg-green-200 px-2 py-0.5 text-[10px] font-bold rounded border border-green-400">
              Advice: {recommendation} (CQVS: {metrics.cqvs.toFixed(1)})
            </span>
          </div>
          <div className="text-[8px] font-bold mb-0.5 text-center">1Y PRICE + 6-MONTH FORECAST</div>
          <div className="text-[6px] text-gray-500 mb-0.5 text-center">— Close — 50-Day MA — 200-Day MA ▒ Bollinger Bands - - Forecast</div>
          <ResponsiveContainer width="100%" height={70}>
            <ComposedChart data={oneYearData}>
              <CartesianGrid strokeDasharray="3 3" stroke="#e0e0e0" />
              <XAxis dataKey="date" tick={{ fontSize: 6 }} />
              <YAxis tick={{ fontSize: 6 }} />
              <Tooltip contentStyle={{ fontSize: 7 }} />
              <Area type="monotone" dataKey="upperBand" stroke="none" fill="#e0e0e0" fillOpacity={0.5} />
              <Area type="monotone" dataKey="ci95Upper" stroke="none" fill="#dbeafe" fillOpacity={0.5} />
              <Line type="monotone" dataKey="price" stroke="#1f2937" strokeWidth={1.5} dot={false} />
              <Line type="monotone" dataKey="ma50" stroke="#f59e0b" strokeWidth={1} dot={false} />
              <Line type="monotone" dataKey="ma200" stroke="#ef4444" strokeWidth={1} dot={false} />
              <Line type="monotone" dataKey="forecast" stroke="#16a34a" strokeWidth={1.5} strokeDasharray="5 5" dot={false} />
            </ComposedChart>
          </ResponsiveContainer>
          {/* Valuation Indicator */}
          <div className={`text-center text-[10px] font-bold mt-1 ${metrics.valuationPercent > 10 ? 'text-green-600' : metrics.valuationPercent < -10 ? 'text-red-600' : 'text-yellow-600'}`}>
            {metrics.valuationLabel} ({metrics.valuationPercent > 0 ? '+' : ''}{metrics.valuationPercent}%)
          </div>
        </div>

        {/* Log Price + RSI */}
        <div className="border border-gray-300 rounded p-2">
          <div className="text-sm font-bold mb-1 text-center">LOG PRICE CHART (10Y)</div>
          <div className="text-[7px] text-gray-500 mb-1 pl-1">
            — Close Price — Total Return<br/>
            - - Unrestr. Market Value (Current): €{metrics.unrestrictedMarketValueCurrent}<br/>
            - - Unrestr. Market Value (Next Year): €{metrics.unrestrictedMarketValueNextYear}
          </div>
          <ResponsiveContainer width="100%" height={130}>
            <LineChart data={priceHistory}>
              <CartesianGrid strokeDasharray="3 3" stroke="#e0e0e0" />
              <XAxis dataKey="date" tick={{ fontSize: 7 }} />
              <YAxis tick={{ fontSize: 7 }} scale="log" domain={['auto', 'auto']} />
              <Tooltip contentStyle={{ fontSize: 8 }} />
              <Line type="monotone" dataKey="price" stroke="#1f2937" strokeWidth={1.5} dot={false} name="Close" />
              <Line type="monotone" dataKey="totalReturn" stroke="#6b7280" strokeWidth={1} strokeDasharray="2 2" dot={false} name="Total Return" />
              <Line type="monotone" dataKey="unrestrictedCurrent" stroke="#dc2626" strokeWidth={1} strokeDasharray="5 5" dot={false} name="Unrestr Current" />
              <Line type="monotone" dataKey="unrestrictedNextYear" stroke="#f97316" strokeWidth={1} strokeDasharray="5 5" dot={false} name="Unrestr Next" />
            </LineChart>
          </ResponsiveContainer>
          <div className="text-xs font-bold mt-1 mb-1 text-center">RSI (14) = {rsiData[rsiData.length - 1].rsi}</div>
          <ResponsiveContainer width="100%" height={55}>
            <LineChart data={rsiData}>
              <CartesianGrid strokeDasharray="3 3" stroke="#e0e0e0" />
              <XAxis dataKey="date" tick={{ fontSize: 6 }} />
              <YAxis tick={{ fontSize: 6 }} domain={[0, 100]} />
              <Tooltip contentStyle={{ fontSize: 7 }} />
              <ReferenceLine y={70} stroke="#ef4444" strokeDasharray="2 2" />
              <ReferenceLine y={30} stroke="#22c55e" strokeDasharray="2 2" />
              <Line type="monotone" dataKey="rsi" stroke="#f59e0b" strokeWidth={1.5} dot={false} />
            </LineChart>
          </ResponsiveContainer>
        </div>
      </div>

      {/* NEW: Ichimoku Cloud Chart */}
      <div className="border border-gray-300 rounded p-2 mb-3">
        <div className="text-sm font-bold mb-1 text-center">ICHIMOKU CLOUD</div>
        <div className="flex gap-4 text-[7px] justify-center mb-1">
          <span>— Close Price</span>
          <span className="text-blue-500">— Tenkan-sen (9)</span>
          <span className="text-red-500">— Kijun-sen (26)</span>
          <span className="text-gray-400">— Chikou Span</span>
          <span className="text-green-500">▒ Senkou Span A/B (Cloud)</span>
          <span className="ml-2 font-bold text-yellow-600">◆ TK Cross</span>
          <span className="text-purple-600">◆ Kumo Twist</span>
        </div>
        <ResponsiveContainer width="100%" height={100}>
          <ComposedChart data={ichimokuData}>
            <CartesianGrid strokeDasharray="3 3" stroke="#e0e0e0" />
            <XAxis dataKey="date" tick={{ fontSize: 7 }} />
            <YAxis tick={{ fontSize: 7 }} domain={['auto', 'auto']} />
            <Tooltip contentStyle={{ fontSize: 8 }} />
            <Area type="monotone" dataKey="senkouA" stroke="none" fill="#86efac" fillOpacity={0.3} />
            <Area type="monotone" dataKey="senkouB" stroke="none" fill="#fca5a5" fillOpacity={0.3} />
            <Line type="monotone" dataKey="price" stroke="#1f2937" strokeWidth={2} dot={false} name="Price" />
            <Line type="monotone" dataKey="tenkan" stroke="#3b82f6" strokeWidth={1} dot={false} name="Tenkan" />
            <Line type="monotone" dataKey="kijun" stroke="#dc2626" strokeWidth={1} dot={false} name="Kijun" />
            <Line type="monotone" dataKey="chikou" stroke="#9ca3af" strokeWidth={1} strokeDasharray="3 3" dot={false} name="Chikou" />
            <Scatter dataKey="tkCrossMarker" fill="#9333ea" shape="diamond" name="TK Cross" />
            <Scatter dataKey="kumoTwistMarker" fill="#dc2626" shape="diamond" name="Kumo Twist" />
          </ComposedChart>
        </ResponsiveContainer>
        <div className="flex gap-4 text-[8px] justify-center mt-1">
          <span className="bg-green-100 px-2 rounded">{ichimokuSignals.tkCross}</span>
          <span className="bg-green-100 px-2 rounded">{ichimokuSignals.kumoTwist}</span>
          <span className="bg-green-100 px-2 rounded">{ichimokuSignals.priceVsCloud}</span>
        </div>
      </div>

      {/* Key Notes (Expandable) */}
      <div className="border border-gray-300 rounded overflow-hidden">
        <button 
          onClick={() => setShowKeyNotes(!showKeyNotes)}
          className="w-full bg-gray-100 px-3 py-2 text-left text-sm font-bold flex items-center hover:bg-gray-200"
        >
          <span className="mr-2">{showKeyNotes ? '▼' : '▶'}</span> Key Notes (Click to Expand)
        </button>
        {showKeyNotes && (
          <div className="p-3 bg-gray-50">
            <div className="grid grid-cols-3 gap-4 text-xs">
              {/* Bull Case */}
              <div>
                <div className="font-bold text-green-700 mb-2 text-sm">BULL CASE ({bullCase.target})</div>
                <ul className="list-disc list-inside space-y-1">
                  {bullCase.points.map((point, i) => <li key={i}>{point}</li>)}
                </ul>
              </div>
              {/* Bear Case */}
              <div>
                <div className="font-bold text-red-700 mb-2 text-sm">BEAR CASE ({bearCase.target})</div>
                <ul className="list-disc list-inside space-y-1">
                  {bearCase.points.map((point, i) => <li key={i}>{point}</li>)}
                </ul>
              </div>
              {/* Entry/Exit Strategy */}
              <div>
                <div className="font-bold text-blue-700 mb-2 text-sm">ENTRY/EXIT STRATEGY</div>
                <ul className="list-disc list-inside space-y-1">
                  <li><strong>Ideal Entry:</strong> {entryStrategy.idealEntry}</li>
                  <li><strong>Current:</strong> {entryStrategy.currentEntry}</li>
                  <li><strong>Target:</strong> {entryStrategy.target}</li>
                  <li><strong>Stop Loss:</strong> {entryStrategy.stopLoss}</li>
                  <li><strong>Position Size:</strong> {entryStrategy.positionSize}</li>
                </ul>
              </div>
            </div>
          </div>
        )}
      </div>

      {/* Footer */}
      <div className="text-xs text-gray-500 text-center mt-3">
        Analysis Date: {analysisDate} | Sources: SEC Filings, Company Reports | 
        <span className="font-bold text-blue-600 ml-1">{recommendation}</span>
      </div>
    </div>
  );
};

export default QuantDashboard;

实施说明

关键步骤:

  1. 计算所有指标在全面的文本分析过程中

  2. 将指标存储在变量中在计算时进行存储

  3. 完成完整的文本分析后,创建React构件

  4. 替换所有占位符值在模板中使用实际计算的数据

  5. 使用确切的模板结构- 不要修改组件代码

  6. 填充这些特定的数据数组

    • 指标对象(包含投资者画像评分的60多个值)
    • topNews数组(5条带日期的近期新闻标题)
    • priceHistory数组(包含多条估值线的10年数据)
    • 一年期数据数组(含移动平均线、布林带、预测)
    • 一目均衡表数据数组(6个月期,含信号标记)
    • 一目均衡表信号对象(转换线与基准线交叉、云层扭转、价格与云层关系)
    • MACD数据数组(最近6个数据点,含柱状图)
    • RSI数据数组(最近6个数据点)
    • 雷达图数据数组(12项指标,标准化至0-100范围)
    • 看涨案例要点(基于看涨分析的5个要点)
    • 看跌案例要点(基于看跌分析的5个要点)
    • 入场策略(入场/出场策略的5个参数值)
  7. 标准化雷达图数值规范要求:

    • 每项指标均采用0-100标度
    • 数值越高始终代表更优(风险/贝塔值等逆向指标需进行反转处理)
    • 使用上面提供的缩放公式
  8. 正确格式化数值

    • 货币:"€100.00"(欧元为默认货币 - 使用 € 而非 $)
    • 大额数字:"€10B""€2.5M"
    • 百分比:15.0(数字,而非带 % 的字符串)
    • 比率:1.25(数字)
    • 分数:7(整数)或75.0(浮点数)
  9. 增长指标

    • 使用报告的收入增长(而非基础/有机增长)
    • 使用报告的盈利增长(而非调整后每股收益增长)
  10. 不要

    • 保留占位符值
    • 修改组件结构
    • 跳过任何部分
    • 使用估算/猜测的数据

这是唯一被接受的仪表板格式。所有其他仪表板样式均已弃用。


与项目背景的整合

投资组合意识

  • 从项目知识中访问投资组合数据
  • 检查股票是否已被持有(若是,建议使用投资组合分析师)
  • 评估与现有持仓的契合度(行业暴露、相关性)
  • 在当前配置背景下考虑头寸规模

投资画像

  • 项目说明中用户设定的投资时间线、风险承受能力、偏好
  • 根据用户画像定制推荐
  • 考虑用户背景下的税务影响
  • 根据投资组合规模和风险承受能力调整头寸规模

避免重复

如果股票已在投资组合中:

  • 提示确认:“您已持有[股票代码]。如需分析现有持仓,请使用投资组合分析技能。”
  • 若用户要求重新评估仍可提供分析
  • 将评估框架调整为“是否应增持?”而非首次购买建议

使用场景说明

在以下情况使用股票评估技能:

  • 用户询问“我应该买入[股票]吗?”
  • 用户需要评估观察清单中的候选股票
  • 用户请求股票推荐
  • 用户询问“[股票]是否值得投资?”
  • 用户需要比较多个潜在投资标的
  • 用户询问所考虑股票的替代选项
  • 用户需要入场价格和仓位规模指导
  • 用户请求“量化风格仪表盘”或“股票可视化分析”

以下情况请勿使用本技能:

  • 用户需要检视现有投资组合持仓 → 请使用投资组合分析技能
  • 用户需要通用市场评论 → 使用常规知识库
  • 用户需要股票筛选/发现 → 不同工作流程
  • 用户询问期权、衍生品、加密货币 → 超出范围

输出内容包括:

  • 全面的文本分析(以上所有部分)
  • 量化风格的React仪表板成果(标准化视觉格式)

最佳实践

研究方法

  1. 从公司文件入手(10-K,10-Q)- 而非新闻报道
  2. 回溯5-10年- 理解演变过程,而不仅仅是当前状态
  3. 与3-5家同行比较- 进行同类比较
  4. 多种估值方法- 不要依赖单一方法
  5. 呈现正反两面- 公平陈述看涨与看跌的理由
  6. 具体化- 使用实际数据,而非泛泛而谈

估值纪律

  • 始终要求至少15%的安全边际
  • 在DCF中使用保守假设
  • 权衡多种估值方法
  • 考虑行业特定规范
  • 不要为增长支付过高溢价

风险意识

  • 明确识别并量化风险
  • 考虑概率和影响
  • 诚实地承认未知因素
  • 不要只关注上行空间

沟通

  • 以明确的建议开头
  • 用证据支持每一个主张
  • 使用具体的数字和日期
  • 解释推理过程,而非仅陈述结论
  • 使建议清晰无误

需要识别的常见模式

优质公司

  • 在整个周期(5-10年)内保持持续盈利能力
  • 强劲的资产负债表(低负债、高现金)
  • 竞争护城河(宽阔或狭窄)
  • 对股东友好的资本配置
  • 可预测的商业模式

价值陷阱(需避免)

  • 低价有因(业务衰退)
  • 高负债且现金流薄弱
  • 市场份额持续流失
  • 缺乏竞争优势
  • 管理层资本配置能力差

以合理价格增长(GARP)

  • 强劲的收入增长(15-25%以上)
  • 利润率扩张
  • 广阔的可及市场
  • 具备竞争优势
  • 估值合理(市盈增长比率 < 1.5)

转型潜力股

  • 拥有成功履历的新管理层
  • 关键指标季度环比改善
  • 变革催化剂
  • 深度价值且具备安全边际
  • 债务减少或现金流改善

最终确认前的质量检查

在呈现分析前,请核实:

数据完整性检查(关键 - 优先检查)

  1. ✅ 每个数字指标是否都有来自网络搜索的引用来源?
  2. ✅ 是否未捏造内部交易活动?(SEC表格4或N/A)
  3. ✅ 是否未捏造卖空数据?(FINRA/交易所数据或N/A)
  4. ✅ 净资产收益率基准是否正确?(>20% = 绿色,10-20% = 黄色,<10% = 红色)
  5. ✅ 是否使用了标准化指标标签?(例如,使用"营业利润率",而非"经营")
  6. ✅ 所有不可用数据是否均显示为"N/A"?(切勿使用零或估算值)
  7. ✅ 头条新闻格式是否正确?(竖线分隔,日期在末尾方括号内)
  8. ✅ 估值指标是否显示在预测下方?(低估/估值合理/高估 +/- %)
  9. ✅ Beta值与1年波动率是否合并于同一单元格?
  10. ✅ 行业板块是否合并于同一单元格?

分析完整性检查

  1. ✅ 是否完成所有必交项目?
  2. ✅ 是否采用了多种估值方法?
  3. ✅ 是否同时呈现了看涨和看跌观点?
  4. ✅ 是否有明确的买入/持有/卖出建议?
  5. ✅ 是否有具体的入场价格和头寸规模?
  6. ✅ 对比了3-5家同行业公司吗?
  7. ✅ 分析了5-10年的财务趋势吗?
  8. ✅ 研究基于公司申报文件,而非新闻报道?
  9. ✅ 计算了安全边际吗?
  10. ✅ 评估了风险水平吗?
  11. ✅ 如果建议卖出:是否提供了3-5个替代选择?
  12. ✅ 识别了技术性入场点吗?
  13. ✅ 计算了高级指标(皮奥特罗斯基F分数、阿尔特曼Z值、贝尼什M值、最大回撤)吗?
  14. ✅ 所有货币价值均以欧元(€)计?
  15. ✅ 收入/收益增长使用的是报告数据(而非基础/调整后数据)?
  16. ✅ 计算了价值陷阱分数(0-100,分数越低越真实)吗?
  17. ✅ 计算了全部8项投资者画像分数(0-10)吗?
  18. ✅ 计算了市盈增长比率吗?
  19. ✅ 计算了自由现金流利润率吗?
  20. ✅ 格林布拉特神奇公式指标(收益率、资本回报率)?
  21. ✅ 研究了新闻情绪和空头头寸情况吗?
  22. ✅ 收集了一目均衡表数据并带有信号标记吗?
  23. ✅ 填充了“头条新闻”部分(5条近期标题)吗?
  24. ✅ 提供10年价格历史及估值线吗?
  25. ✅ 已创建包含所有60多个指标的增强版仪表板吗?

最终验证问题

  • 仪表板中的每个数字都能提供来源引用吗?
  • 是否有任何指标仅来自培训知识?(如果是,请重新搜索或使用N/A)
  • 内部人士买卖数据是否明确来自SEC表格4?(如果未找到,请使用N/A)

如果任何检查项未完成:停止并收集更多信息。 如果搜索后数据确实无法获取:使用"N/A" - 切勿捏造


示例评估结构

[详细步骤请参见EVALUATION-WORKFLOWS.md中的完整示例]


持续改进

每次评估后:

  • 追踪推荐结果
  • 从有效/无效的经验中学习
  • 完善估值假设
  • 提升模式识别能力
  • 更新行业知识

目标是发掘真正具有吸引力的投资机会,这些机会需符合用户的风险承受能力,并具备足够的安全边际和可接受的风险水平。

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Akshare Finance 下一篇:Competitor Analysis

相关文章

您是本站第279022名访客 今日有77篇新文章/评论