Install
openclaw skills install @lululu811/halo-skillHALO V5.0 — A股可信基本面分析框架。Python锁定数据层(100%来自API,绝不编造),AI只做分析判断。 11维度评分:HALO六维(行业调整)+ 成长性 + 护城河 + 滞胀防御 + ESG + 管理层 + 资金面 + 估值 - 风险。 触发:用户要求分析A股股票时。用法:/halo <股票代码或名称>
openclaw skills install @lululu811/halo-skill触发条件:用户要求分析某只A股股票时触发(如"分析600519"、"帮我看看亨通光电") 用法:
/halo <股票代码或名称>版本:V5.0(数据驱动 + 行业公平版)
# 激活虚拟环境
source .venv/bin/activate
# 获取量化数据(行情+财报+资金流)
python fetch_stock_data.py <股票代码> <股票名称>
# 获取定性数据(新闻+研报+公告)
python fetch_qualitative.py <股票代码> <股票名称>
脚本输出:
data/{code}.json — 量化数据(行情/三表/HALO原始值/财务比率/成长性/资金流)data/{code}_qualitative.json — 定性数据(新闻/研报/公告)可选增强:a-stock-data 桥接
如果已安装 a-stock-data skill(43端点A股数据底座),可使用桥接脚本获得:
# 生成桥接配置(告诉 AI 按路由表调用 a-stock-data 端点)
python bridge_a_stock_data.py <股票代码> <股票名称>
桥接不替换原有脚本,而是作为数据路由层:a-stock-data 端点优先,失败自动 fallback 到 fetch_stock_data.py。
# 生成骨架:所有数据从 JSON 填充,分析槽位留空
python generate_report.py <股票代码>
输出:reports/{code}_skeleton.md
{{AI_*}} 槽位,等待 AI 填充分析文字读取 reports/{code}_skeleton.md,将所有 {{AI_*}} 槽位替换为分析文字。
关键规则:
{{AI_*}} 位置写入分析文字⚠️ 缺失,分析中不得编造该数据将填充完毕的报告保存到 reports/{code}_halo_v5.md
检查最终报告中是否有任何数字与 JSON 源数据不一致。
如果已有 Serenity 产业链扫描数据,可集成到报告中:
# 集成 Serenity 数据到报告
python integrate_serenity.py <股票代码> [serenity_json_path]
Serenity 数据格式:data/{code}_serenity.json,包含:
集成效果:在报告中新增第十二章"产业链定位",展示公司在产业链中的卡点位置、证据链、风险与证伪条件。
工作流:
/serenity 或 Serenity skill 进行产业链扫描integrate_serenity.py 集成到 HALO 报告示例:
# 1. Serenity 扫描(假设输出 data/688019_serenity.json)
/serenity A股 AI 半导体 688019
# 2. HALO 数据获取
python fetch_stock_data.py 688019 安集科技
python fetch_qualitative.py 688019 安集科技
# 3. 生成 HALO 骨架
python generate_report.py 688019
# 4. AI 填充分析槽位(生成 reports/688019_halo_v5.md)
# 5. 集成 Serenity 数据
python integrate_serenity.py 688019
| 失败场景 | 表现 | 处理方式 |
|---|---|---|
| 网络不通 | ConnectionError / ProxyError | 检查网络/代理设置;脚本会输出具体失败的URL |
| 腾讯行情API失败 | 价格/PE/PB为null | JSON中标注⚠️ 缺失,报告中不得编造价格 |
| 东财公司信息失败 | F10数据缺失 | 行业/股本/员工数标注缺失,不影响核心分析 |
| 新浪财报API失败 | 三表数据为空 | 脚本输出{"error": "缺少财务数据"},停止流程,告知用户稍后重试 |
| 财务数据不足2期 | 无法计算同比 | 成长性评分降级为"数据不足,无法评估" |
| 股票名称错误 | 用户输入的代码不存在 | 腾讯API返回空,脚本提示"找不到该股票" |
| 定性数据获取失败 | 新闻/研报为空 | 消息面章节标注"数据缺失",其他章节正常 |
| Serenity数据缺失 | 无{code}_serenity.json | 第十二章留空,跳过集成步骤 |
核心原则:
⚠️ 缺失,绝不编造generate_report.py 从 JSON 精确填充{{AI_*}} 槽位中的分析文字⚠️ 缺失,分析中必须说明数据缺失,不得估算根据 halo.asset_type 字段(由 fetch_stock_data.py 自动判定):
| 类型 | 代码 | 定义 | 典型行业 |
|---|---|---|---|
| 重资产型 | heavy | 核心壁垒=物理资产 | 钢铁/煤炭/电力/银行/基建 |
| 混合型 | mixed | 物理+无形资产并重 | 医药/化工/汽车/家电/电气机械 |
| 轻资产型 | light | 核心壁垒=品牌/技术/网络 | 软件/互联网/白酒/传媒/咨询 |
分类依据:固定资产占总资产比例 + 行业特性
六维度 + 权重:
| # | 维度 | 公式 | 权重 |
|---|---|---|---|
| 1 | 有形资产密集度 | (固定资产+在建工程+存货)/总资产 | 20% |
| 2 | 固定资产密集度 | 固定资产/营业收入 | 15% |
| 3 | 固定资产份额 | 固定资产/总资产 | 15% |
| 4 | 资本-劳动力比率 | 有形资产/员工数 | 15% |
| 5 | Capex密集度 | Capex/营业收入 | 15% |
| 6 | Capex负担 | Capex/经营现金流 | 20% |
3.1 有形资产密集度:
| 重资产 | 混合型 | 轻资产(用核心资产) | 评分 |
|---|---|---|---|
| ≥80% | ≥70% | ≥60% | 5 |
| 60-80% | 50-70% | 40-60% | 4 |
| 40-60% | 30-50% | 20-40% | 3 |
| 20-40% | 15-30% | 10-20% | 2 |
| <20% | <15% | <10% | 1 |
轻资产型"核心资产" = 固定资产+在建工程+存货+无形资产+商誉+数据资产
3.2 固定资产密集度:
| 重资产 | 混合型 | 轻资产 | 评分 |
|---|---|---|---|
| ≥100% | ≥60% | ≥30% | 5 |
| 80-100% | 40-60% | 15-30% | 4 |
| 60-80% | 20-40% | 5-15% | 3 |
| <60% | <20% | <5% | 2 |
3.3 固定资产份额:(通用标准)
| ≥25%:5 | 15-25%:4 | 8-15%:3 | 4-8%:2 | <4%:1 |
3.4 资本-劳动力比率:(通用标准,万元/人)
| ≥200:5 | 100-200:4 | 50-100:3 | 20-50:2 | <20:1 |
3.5 Capex密集度:
| 重资产 | 混合型 | 轻资产 | 评分 |
|---|---|---|---|
| ≥15% | ≥10% | ≥5% | 5 |
| 10-15% | 5-10% | 2-5% | 4 |
| 5-10% | 2-5% | 0.5-2% | 3 |
| <5% | <2% | <0.5% | 2 |
3.6 Capex负担:(通用标准)
| <5%:5 | 5-15%:4 | 15-30%:3 | 30-50%:2 | >50%:1 |
⚠️ 如果经营现金流为负,Capex负担评为1分(最差),并标注警示
HALO总分 = Σ(维度分 × 权重),评级:≥4.0极强 | 3.0-4.0强 | 2.0-3.0中等 | <2.0弱
四个子维度,各25%权重:
| # | 子维度 | 评分参考 |
|---|---|---|
| 1 | 营收增长 | 同比>30%:9 |
| 2 | 利润增长 | 同上 |
| 3 | 增长质量 | 有机增长/非杠杆/主营驱动/现金流匹配 |
| 4 | 增长持续性 | 行业增速/市场空间/研发投入/新业务储备 |
成长性总分 = Σ(子维度 × 25%),评级:≥8.0极强 | 6.5-8.0强 | 5.0-6.5中等 | <5.0弱
五个子维度,各20%权重:
| # | 子维度 | 评分锚点 |
|---|---|---|
| 1 | 技术迭代风险 | 技术越不可颠覆→分越高 |
| 2 | 客户粘性 | 转换成本越高→分越高 |
| 3 | 竞争格局 | 寡头/垄断→分越高 |
| 4 | 产品差异化 | 越不可替代→分越高 |
| 5 | 进入壁垒 | 壁垒越多重→分越高 |
量化锚点(辅助AI判断):
评级:≥8.0极强 | 6.5-8.0强 | 5.0-6.5中等 | <5.0弱
五个子维度,各20%权重:
| # | 子维度 | 评分锚点 |
|---|---|---|
| 1 | 实物资产密集度 | 有形资产占比越高→分越高 |
| 2 | 通胀转嫁能力 | 毛利率越高+定价权越强→分越高 |
| 3 | 现金流与股息 | CF/净利润>0.8+股息率>2%→分越高 |
| 4 | 债务结构健康度 | 负债率<50%+流动比率>2→分越高 |
| 5 | 战略安全属性 | 涉及国防/能源/民生→分越高 |
评级:≥8.0极强 | 6.5-8.0强 | 5.0-6.5中等 | <5.0弱
| 子维度 | 权重 | 评分锚点 |
|---|---|---|
| 环境(E) | 33% | 环保投入/碳排放/环保处罚记录 |
| 社会(S) | 33% | 员工福利/产品质量/社会贡献 |
| 治理(G) | 34% | 信披规范/独董制度/分红政策/管理层稳定性 |
评级:≥8.0极强 | 6.5-8.0强 | 5.0-6.5中等 | <5.0弱
| 子维度 | 权重 | 评分锚点 |
|---|---|---|
| 战略能力 | 30% | 战略方向是否清晰/执行力 |
| 资本配置 | 25% | ROE水平/分红率/并购记录 |
| 激励一致性 | 20% | 管理层持股/薪酬合理性 |
| 诚信记录 | 25% | 监管处罚/审计意见/信披合规 |
评级:≥8.0极强 | 6.5-8.0强 | 5.0-6.5中等 | <5.0弱
| 子维度 | 权重 | 评分锚点 |
|---|---|---|
| 股东结构 | 25% | 控股股东稳定性/筹码集中度 |
| 北向资金 | 25% | 持仓变化趋势 |
| 主力资金 | 25% | 近5日/30日主力净流入 |
| 融资动态 | 25% | 融资余额变化 |
评级:≥8.0极强 | 6.5-8.0强 | 5.0-6.5中等 | <5.0弱
| 风险类别 | 权重 | 评分锚点 |
|---|---|---|
| 财务风险 | 25% | 负债率/流动比率/CF净利润 |
| 经营风险 | 20% | 行业周期/竞争格局 |
| 政策风险 | 15% | 行业监管/政策依赖度 |
| 治理风险 | 15% | 信披/管理层稳定性 |
| 估值风险 | 15% | PE历史分位 |
| 宏观风险 | 5% | 经济周期敏感度 |
| 舆情风险 | 5% | 近期负面新闻 |
综合风险 = Σ(子维度 × 权重) 评级:<3低风险 | 3-5中等风险 | 5-7较高风险 | >7高风险
综合 PE/PB/PS/DCF/股息率 多维度评估:
评级:≥8.0极有吸引力 | 6.5-8.0有吸引力 | 5.0-6.5中性 | <5.0偏贵
综合评分 = HALO归一化(÷5×10)×15%
+ 成长性×15%
+ 护城河×15%
+ 滞胀防御×10%
+ ESG×10%
+ 管理层×10%
+ 股东资金面×5%
+ 估值吸引力×10%
- 风险×10%
评级:≥8.0极强 | 6.5-8.0强 | 5.0-6.5中等 | <5.0弱
📋 第零章:执行摘要
├─ 8维评分卡片
├─ 实时估值(价格/PE/PB/市值/股息率)
├─ 投资评级 + 目标价
└─ 3条核心投资逻辑
📊 一、公司概况
├─ 基本信息表(名称/行业/股本/市值/管理层/员工数)
├─ 主营业务结构(业务板块/营收占比/毛利率)
└─ 核心竞争优势(3个优势+分析)
📰 二、最新基本面与消息面
├─ 利好因素表(5条左右)
├─ 利空因素表(2-3条)
└─ 消息面综合判断
🔷 三、HALO六维分析
├─ 6个子维度各含:数据表+评分标准+AI分析
└─ 评分汇总表
🌱 四、成长性分析
├─ 营收增长(含同比数据)
├─ 利润增长
├─ 增长质量(4项评估)
└─ 增长持续性(4项评估)
🏰 五、低淘汰率/护城河
└─ 5个子维度各含评分+分析
🛡️ 六、滞胀防御
└─ 5个子维度各含评分+分析
🌍 七、ESG评估
└─ E/S/G各含评分+分析
👔 八、管理层质量
└─ 4个子维度各含评分+分析
💰 九、股东与资金面
└─ 4个子维度各含评分+分析
⚠️ 十、风险评估
├─ 7类风险矩阵
└─ 综合风险评估表
💡 十一、综合评估与投资建议
├─ 11维综合评级表
├─ 综合评分计算过程
├─ 投资建议(评级/仓位/期限)
├─ 分投资者类型建议
├─ 估值分析(PE/DCF/PB多种方法)
├─ SWOT分析
└─ 总结 + 关键跟踪指标
reports/{code}_halo_v5.md