stock_reporting_interaction

生成专业股票投资分析报告(盘前/盘后/研报/周报),渲染可视化图表,管理投资日志,提供自然语言问答式投资助理交互体验

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "stock_reporting_interaction" with this command: npx skills add wuritu/stock-reporting-interaction

报告与交互技能

本技能是投资分析体系的"表达层"——将技术分析、基本面分析、宏观分析、决策引擎的原始数据和结论,转化为人类可读、可操作、有吸引力的报告和交互体验。

设计原则

  1. 数据驱动叙事:不是堆砌数字,而是讲清"发生了什么→意味着什么→下一步怎么做"
  2. 分层表达:同一份数据,能以一句话摘要、段落总结、完整报告三种粒度输出
  3. 可视化优先:关键数据点尽可能以图表呈现
  4. 多渠道适配:同一报告能适配聊天消息、Canvas 展示、文件导出
  5. 交互式追问:支持用户基于报告内容继续追问
  6. 风险透明:所有报告必须包含免责声明和不确定性标注

触发条件

用户输入模式激活功能
"今日盘前简报" / "开盘前看看"盘前报告
"今天复盘" / "收盘总结"盘后报告
"给我一份XX的深度研报"个股深度研报
"本周总结" / "周报"周度总结
"画个K线图" / "看看走势图"可视化图表
"记一下:今天买了XX"投资日志
"我的持仓怎么样"持仓回顾
"XX能买吗" / "大盘怎么看"自然语言问答
"提醒我XX跌到100块"价格预警

核心能力模块


模块一:自动化报告生成系统

1A. 盘前报告(每个交易日 08:30 通过 Cron 触发)

调用:

python3 {baseDir}/tools/report_generator.py --type premarket --date today

报告结构:

📋 盘前简报 | 2026-04-06 周一
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🌍 隔夜全球市场
  · 美股: 道指 +0.3%, 纳指 -0.2%, 标普 +0.1%
  · 欧股: 德DAX +0.5%, 英富时 +0.2%
  · 亚太: 日经 +1.1%, 恒指 -0.5%
  · 大宗: 原油 $78.5(+1.2%), 黄金 $2350(-0.3%)
  · 汇率: 美元指数 104.2, 离岸人民币 7.23

📊 A股盘前信号
  · 富时A50期货: +0.35%(偏多开盘预期)
  · 北向资金预判: 昨日净流入+45亿,连续3日流入
  · 融资余额: 1.62万亿(+0.2%)

🔥 今日关注
  · 重要数据: 3月PMI数据公布
  · 政策动态: 国常会讨论促消费政策
  · 行业事件: 苹果WWDC倒计时,消费电子关注
  · 解禁提示: XX股份 5亿市值解禁

📈 策略建议
  · 大盘预判: 小幅高开震荡,关注3280支撑
  · 板块关注: AI算力(政策催化)、消费(政策预期)
  · 风险提示: PMI数据若低于预期可能引发调整

⚠️ 以上分析仅供参考,不构成投资建议

1B. 盘后报告(每个交易日 15:30 通过 Cron 触发)

python3 {baseDir}/tools/report_generator.py --type postmarket --date today

报告结构:

📋 盘后复盘 | 2026-04-06 周一
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📊 今日行情概览
  · 上证指数: 3285.60 (+0.82%) 成交4520亿
  · 深证成指: 10580.30 (+1.15%) 成交5830亿
  · 创业板指: 2150.80 (+1.45%)
  · 北向资金: 净买入 +62.3亿
  · 涨跌比: 3680:1420, 涨停62家, 跌停5家

🔍 今日复盘要点

  1️⃣ 行情定性
     量价齐升放量上攻,市场赚钱效应良好
     成交量较昨日放大18%,突破5日均量

  2️⃣ 领涨板块 TOP5
     | 板块 | 涨幅 | 资金净流入 | 核心驱动 |
     |------|------|-----------|---------|
     | AI算力 | +4.2% | +38亿 | 政策+业绩 |
     | 消费电子 | +3.1% | +22亿 | 苹果产业链 |
     | ...  | ...  | ... | ... |

  3️⃣ 资金动向
     · 北向大幅流入,偏好消费+科技
     · 主力资金净流入TOP: 中际旭创、立讯精密...
     · 融资买入前三: ...

  4️⃣ 明日展望
     · 技术面: 站稳3280,上方关注3320阻力
     · 情绪面: 赚钱效应扩散,短线情绪偏暖
     · 风险点: 获利盘抛压、外围不确定性

📌 自选股异动提醒
  · 贵州茅台: +2.1% 放量突破20日线 ← 关注
  · 比亚迪: -1.5% 缩量回踩60日线 ← 观察支撑

⚠️ 以上分析仅供参考,不构成投资建议

1C. 个股深度研报

python3 {baseDir}/tools/report_generator.py --type deep-report --symbol 600519

报告结构(仿券商研报格式):

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
贵州茅台 (600519.SH) 深度分析报告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📄 报告摘要
  评级: 📗 推荐关注 (综合评分 72/100)
  当前价: ¥1,680  |  合理估值区间: ¥1,520 - ¥1,850
  主要观点: 估值合理,基本面稳健,短期技术面偏多

━━ 一、公司概况 ━━
  行业: 白酒 | 市值: 2.1万亿 | 上市: 2001年
  核心产品: 飞天茅台、茅台1935、茅台王子
  竞争优势: 品牌壁垒、产能稀缺、提价能力

━━ 二、财务分析 ━━
  [财务数据表格: 5年营收/利润/现金流/ROE趋势]
  [杜邦分析分解]
  [财务健康度评分: 92/100]

━━ 三、估值分析 ━━
  [PE/PB/PEG/DCF 多维度估值]
  [历史估值分位图表]
  [估值评分: 65/100]

━━ 四、技术分析 ━━
  [K线走势分析]
  [关键指标信号]
  [技术评分: 72/100]

━━ 五、行业对标 ━━
  [vs 五粮液/泸州老窖/山西汾酒 对比表格]
  [竞争力雷达图数据]

━━ 六、风险提示 ━━
  1. 消费降级风险
  2. 行业政策风险
  3. 估值回调风险

━━ 七、投资建议 ━━
  [综合研判 + 操作建议 + 关键价位]

⚠️ 免责声明: ...
报告生成时间: 2026-04-06 16:00
数据截止日: 2026-04-06

1D. 周度总结

python3 {baseDir}/tools/report_generator.py --type weekly --week-end today

模块二:可视化图表系统

本模块利用 OpenClaw 的 Canvas 工具 + Python mplfinance/plotly 生成图表。

2A. 支持的图表类型

图表类型工具命令输出方式
K线+均线+成交量chart_renderer.py --type klineCanvas / PNG 文件
MACD 指标图chart_renderer.py --type macdCanvas / PNG 文件
综合技术面板 (K线+MACD+KDJ+VOL)chart_renderer.py --type dashboardCanvas
估值分位数图chart_renderer.py --type valuation-bandPNG 文件
行业对比雷达图chart_renderer.py --type radarPNG 文件
财务趋势图chart_renderer.py --type financial-trendPNG 文件
资金流向热力图chart_renderer.py --type capital-heatmapCanvas
板块轮动图chart_renderer.py --type sector-rotationCanvas
持仓组合饼图chart_renderer.py --type portfolio-piePNG 文件
回测收益曲线chart_renderer.py --type backtest-curvePNG 文件

2B. Canvas 交互式仪表盘

利用 OpenClaw Canvas 能力构建实时交互式看盘页面:

使用 canvas 工具:
  action: present
  target: {baseDir}/canvas/dashboard.html

Canvas 页面内嵌:
  - 实时指数行情面板
  - 自选股涨跌一览
  - 板块热力图
  - 资金流向可视化
  - 用户可点击切换不同指标/周期

2C. 图表渲染器实现

# 完整用法
python3 {baseDir}/tools/chart_renderer.py \
  --symbol 600519 \
  --type dashboard \
  --period daily \
  --count 120 \
  --indicators MA,MACD,KDJ,VOL \
  --output /tmp/chart_600519.png \
  --style dark \
  --annotations "2026-03-15:买入,2026-04-01:加仓"

模块三:自然语言投资问答系统

这是交互层的核心——让用户用自然语言提问,Agent 理解意图后调度合适的分析技能作答。

3A. 意图分类体系

python3 {baseDir}/tools/nlp_intent_parser.py --query "<用户原始输入>"

意图分类树:

用户输入
├── 行情查询类
│   ├── 实时行情 → "XX现在多少钱" "XX涨了吗"
│   ├── 指数行情 → "大盘多少点了" "创业板怎么样"
│   └── 板块行情 → "AI板块今天怎么样"
│
├── 分析请求类
│   ├── 技术分析 → "XX技术面怎么看" "MACD金叉了吗"
│   ├── 基本面分析 → "XX基本面如何" "PE高不高"
│   ├── 估值分析 → "XX贵不贵" "值这个价吗"
│   └── 综合分析 → "XX值得买吗" "帮我分析下XX"
│
├── 决策咨询类
│   ├── 买卖建议 → "能买吗" "该卖了吗" "止损位多少"
│   ├── 选股请求 → "推荐几只" "有什么好股票"
│   ├── 仓位建议 → "买多少合适" "仓位怎么配"
│   └── 策略咨询 → "定投好还是一把买" "该长线还是短线"
│
├── 报告请求类
│   ├── 定期报告 → "盘前简报" "收盘总结" "周报"
│   ├── 专题报告 → "深度研报" "行业对比"
│   └── 图表请求 → "画个K线图" "看看走势"
│
├── 管理操作类
│   ├── 自选股管理 → "加自选" "删自选" "自选列表"
│   ├── 预警设置 → "XX跌到100提醒我" "涨停板提醒"
│   ├── 日志记录 → "记一下买了XX" "今天的操作"
│   └── 回顾复盘 → "上周操作回顾" "这个月收益多少"
│
└── 知识问答类
    ├── 概念解释 → "什么是MACD" "PE和PB有什么区别"
    ├── 市场知识 → "打新怎么操作" "融资融券是什么"
    └── 策略学习 → "什么是价值投资" "趋势交易怎么做"

3B. 多轮对话管理

python3 {baseDir}/tools/dialogue_manager.py --session-id <会话ID> --query "<用户输入>"

多轮对话状态机:

状态1: 初始分析
  用户: "帮我分析一下贵州茅台"
  Agent: [输出综合分析报告]
  → 保存上下文: {symbol: 600519, analysis_type: comprehensive}

状态2: 追问深入
  用户: "估值是不是有点高了"
  Agent: [识别追问,补充详细估值分析]
  → 上下文: {symbol: 600519, focus: valuation}

状态3: 对比扩展
  用户: "和五粮液比呢"
  Agent: [识别对比意图,输出对标分析]
  → 上下文: {symbol: [600519, 000858], mode: compare}

状态4: 决策收敛
  用户: "那现在能买吗"
  Agent: [综合所有已分析维度,给出建议]
  → 上下文: {symbol: 600519, decision_requested: true}

状态5: 操作跟进
  用户: "好,帮我记一下,今天打算在1650附近买入"
  Agent: [写入投资日志]
  → 调用 journal_manager 持久化

对话管理规则 (写入 AGENTS.md):

### 投资问答对话规则

1. **记住上下文**: 同一会话中用户追问时,自动关联之前讨论的股票
2. **分层回答**:
   - 一句话问题 → 一段话回答
   - 分析请求 → 结构化报告
   - "详细说说" → 展开完整分析
3. **主动追问**: 当信息不足以给出建议时,主动问清楚:
   - "您是短线操作还是中长线持有?"
   - "您的风险承受能力如何?"
   - "目前已有仓位吗?"
4. **不确定性表达**:
   - 高置信度: "从XX指标来看,明确显示..."
   - 中置信度: "综合来看,倾向于认为..."
   - 低置信度: "目前信号比较混乱,建议观望..."
5. **永远不要**:
   - 承诺收益或保证不亏
   - 给出具体的买卖指令(只提供分析视角)
   - 忽略风险提示

模块四:数据叙事化引擎

将枯燥的数字和指标转化为人类易理解的故事性表达。

python3 {baseDir}/tools/data_narrator.py --data <分析结果JSON> --style <叙事风格>

4A. 叙事风格

风格适用场景示例
concise聊天消息、快问快答"茅台今天+2.1%,放量突破20日线,MACD金叉在即,短线偏多。"
professional研报、正式报告"贵州茅台(600519)今日收报1680元,涨幅2.1%。成交量较前一交易日放大35%,价格成功突破20日均线阻力位(1655元),MACD指标DIF线上穿DEA线形成金叉形态,短期技术面转为偏多格局。"
educational新手引导、概念解释"茅台今天涨了2.1%——这其实挺有意思的。你看它的成交量比昨天多了35%,这说明有更多资金在这个价位愿意买入。而且它突破了20日均线,这在技术分析中通常是一个积极信号..."
actionable决策建议"🟢 茅台短线看多。关键信号:放量突破MA20+MACD金叉。操作建议:可在1660-1670区间轻仓试多,止损1640,目标1720。"

4B. 数据叙事化规则

# 核心转换逻辑
NARRATIVE_RULES = {
    # 涨跌幅描述
    "change": {
        (5, float('inf')):    "大涨 / 强势拉升",
        (3, 5):               "明显上涨",
        (1, 3):               "小幅上涨",
        (-1, 1):              "窄幅震荡",
        (-3, -1):             "小幅下跌",
        (-5, -3):             "明显下跌",
        (float('-inf'), -5):  "大跌 / 急挫",
    },
    # 成交量描述
    "volume_ratio": {
        (3, float('inf')):    "巨量(异常放大)",
        (2, 3):               "显著放量",
        (1.3, 2):             "温和放量",
        (0.8, 1.3):           "量能平稳",
        (0.5, 0.8):           "缩量",
        (0, 0.5):             "极度缩量(地量)",
    },
    # PE 估值描述
    "pe_percentile": {
        (0, 0.1):   "估值极低(历史底部区域)",
        (0.1, 0.3): "估值偏低",
        (0.3, 0.7): "估值合理",
        (0.7, 0.9): "估值偏高",
        (0.9, 1.0): "估值极高(历史顶部区域)",
    },
}

模块五:投资日志系统

利用 OpenClaw 的 Memory 机制memory/YYYY-MM-DD.md + MEMORY.md)构建持久化投资日志。

5A. 日志类型

python3 {baseDir}/tools/journal_manager.py --action <操作> [--params ...]
操作命令说明
记录交易--action log-trade --symbol 600519 --direction buy --price 1660 --shares 100 --reason "放量突破MA20"记录买卖操作
记录观察--action log-observation --content "AI板块回调,关注低吸机会"记录市场观察
记录决策--action log-decision --content "决定减仓半导体,增持消费"记录仓位决策
查看日志--action view --date today查看当日日志
搜索日志--action search --query "茅台 买入"搜索历史日志
操作复盘--action review --period 30d30天操作回顾
盈亏统计--action pnl --period 30d30天盈亏统计

5B. 日志存储格式(memory/YYYY-MM-DD.md 投资区)

## 📈 投资日志

### 交易记录
| 时间 | 操作 | 代码 | 名称 | 价格 | 数量 | 原因 |
|------|------|------|------|------|------|------|
| 09:35 | 买入 | 600519 | 贵州茅台 | 1660 | 100 | 放量突破MA20,MACD金叉 |
| 14:20 | 卖出 | 300750 | 宁德时代 | 185 | 200 | 触及止盈位,缩量滞涨 |

### 市场观察
- AI算力板块持续强势,中际旭创3连板
- 北向资金连续4日流入,偏好消费+科技
- PMI数据超预期,周期股有反弹

### 操作反思
- ✅ 茅台买入时机不错,放量突破确认后入场
- ⚠️ 宁德卖早了一点,但纪律优先,止盈不是错
- 📝 教训:板块轮动加快,不宜恋战,控制持仓周期

5C. 长期记忆(MEMORY.md 投资区)

通过 OpenClaw Memory Dreaming 机制自动提炼:

## 📊 投资偏好与记录

### 风险偏好
- 类型: 稳健型
- 单只最大仓位: 15%
- 止损纪律: -8% 强制止损

### 关注板块
- 长期看好: AI算力、新能源、消费
- 回避: 地产、教育

### 自选股
| 代码 | 名称 | 加入日期 | 加入理由 | 关注价位 |
|------|------|---------|---------|---------|
| 600519 | 贵州茅台 | 2026-03-01 | 价值投资标的 | 支撑1600,阻力1800 |
| 300750 | 宁德时代 | 2026-03-15 | 新能源龙头 | 支撑170,阻力200 |

### 历史操作统计
- 2026年3月: 操作12次,胜率58%,总收益+3.2%
- 最佳操作: 3/10买入茅台 +5.2%
- 最差操作: 3/22追高半导体 -6.1%
- 教训总结: 追高成功率低于30%,优先在支撑位附近入场

模块六:预警与推送系统

利用 OpenClaw Cron Jobs + Channel 分发 实现多渠道推送。

6A. 预警类型

python3 {baseDir}/tools/alert_dispatcher.py --action set --type <类型> --params <参数JSON>
预警类型触发条件推送内容
价格预警股价突破/跌破指定价位"⚠️ 茅台已跌破1600,当前1595,触及你设置的预警价"
涨跌幅预警日涨跌幅超过阈值"🔔 宁德时代今日涨幅已达+7.2%,注意是否止盈"
技术信号预警MACD金叉/死叉、均线突破等"📈 比亚迪MACD日线金叉,可关注"
资金异动预警北向资金/主力资金大幅变动"🔔 北向资金今日净卖出超100亿,注意风险"
财报公告预警关注股票发布财报/重大公告"📋 茅台发布2026Q1财报,营收同比+15%"
持仓浮亏预警持仓浮亏达到止损线"🔴 你持有的XX浮亏已达-8%,建议执行止损"
大盘风险预警大盘急跌/情绪指标极端"⚠️ 上证指数跌破3200,跌幅-2.5%,市场恐慌"

6B. Cron Job 配置

# 盘前报告 — 每个交易日 08:30
openclaw cron add \
  --name stock-premarket-report \
  --cron "30 8 * * 1-5" \
  --tz Asia/Shanghai \
  --timeout-seconds 120 \
  --announce \
  --message "执行盘前简报生成。按照 stock_reporting_interaction 技能的盘前报告流程执行。"

# 盘后报告 — 每个交易日 15:30
openclaw cron add \
  --name stock-postmarket-report \
  --cron "30 15 * * 1-5" \
  --tz Asia/Shanghai \
  --timeout-seconds 180 \
  --announce \
  --message "执行盘后复盘报告生成。按照 stock_reporting_interaction 技能的盘后报告流程执行。"

# 预警扫描 — 交易时段每5分钟
openclaw cron add \
  --name stock-alert-scanner \
  --cron "*/5 9-15 * * 1-5" \
  --tz Asia/Shanghai \
  --timeout-seconds 60 \
  --message "扫描所有活跃预警规则,检查是否有触发条件满足。仅报告触发的预警。"

# 周报 — 每周五 16:00
openclaw cron add \
  --name stock-weekly-report \
  --cron "0 16 * * 5" \
  --tz Asia/Shanghai \
  --timeout-seconds 300 \
  --announce \
  --message "生成本周投资周报。汇总本周大盘走势、操作记录、盈亏统计、下周展望。"

6C. 多渠道分发

利用 OpenClaw 的 Channel 系统(Discord/Telegram/WhatsApp/Feishu):

报告分发策略:
├── 即时消息 (Telegram/WhatsApp/Discord)
│   ├── 预警通知 → 即时推送,简短格式
│   ├── 盘前/盘后简报 → 结构化消息,可读性优先
│   └── 问答回复 → 自适应长度
│
├── Canvas (桌面端)
│   ├── 交互式仪表盘 → dashboard.html
│   ├── K线图 → kline-chart.html
│   └── 持仓视图 → portfolio-view.html
│
├── 文件导出
│   ├── Markdown → 日常报告
│   ├── HTML → 带图表的研报
│   └── PNG → 图表单独导出
│
└── Memory 持久化
    ├── 日志 → memory/YYYY-MM-DD.md
    └── 长期记忆 → MEMORY.md (Dreaming 自动提炼)

模块七:回答质量控制系统

7A. 分层表达引擎

同一份分析数据,根据上下文自动选择表达粒度:

Level 1 — 一句话 (适合预警、快速问答)
┌─────────────────────────────────────────────────┐
│ "茅台短线偏多,MACD金叉+放量突破MA20,评分72分" │
└─────────────────────────────────────────────────┘

Level 2 — 摘要段落 (适合聊天回复)
┌─────────────────────────────────────────────────┐
│ 贵州茅台(600519)短线技术面偏多。今日放量上涨     │
│ 2.1%,成功突破20日均线阻力位,MACD日线形成金叉,  │
│ KDJ指标处于中性区间尚有上行空间。上方阻力关注     │
│ 1720元(前高),下方支撑1640元(MA20)。综合技术   │
│ 评分72/100。                                     │
│ ⚠️ 仅供参考,不构成投资建议                       │
└─────────────────────────────────────────────────┘

Level 3 — 完整报告 (适合研报请求)
┌─────────────────────────────────────────────────┐
│ [完整结构化报告,含所有维度分析]                   │
│ [数据表格 + 图表 + 风险提示 + 操作建议]           │
│ [5000-10000字]                                   │
└─────────────────────────────────────────────────┘

选择逻辑:

if 用户问题 < 10字 且 是简单查询 → Level 1
elif 用户明确要求"详细" or "深度" or "研报" → Level 3
elif 多轮对话中的追问 → Level 2
else → Level 2 (默认)

7B. 免责声明系统

DISCLAIMERS = {
    "standard": "⚠️ 以上分析仅供参考,不构成投资建议。股市有风险,投资需谨慎。",

    "decision": "⚠️ 以上分析基于公开数据和量化模型,仅供学习和参考。\n"
                "任何投资决策请独立判断并承担相应风险。\n"
                "历史表现不代表未来收益。",

    "alert": "⚠️ 预警触发不代表必须操作,请结合自身判断。",

    "backtest": "⚠️ 回测结果基于历史数据,存在过拟合风险,不代表未来表现。\n"
                "实盘交易还需考虑滑点、手续费、冲击成本等因素。",
}

# 根据内容类型自动附加
def attach_disclaimer(content: str, content_type: str) -> str:
    disclaimer = DISCLAIMERS.get(content_type, DISCLAIMERS["standard"])
    return f"{content}\n\n---\n{disclaimer}"

7C. 置信度标注体系

每个分析结论都必须标注置信度:

置信度标记使用条件
🟢 高[置信度: 高]多个维度信号一致,数据充分,历史规律明确
🟡 中[置信度: 中]部分维度一致,存在某些不确定因素
🔴 低[置信度: 低]信号冲突,数据不足,或处于市场极端情况

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Baoyu Infographic

Generate professional infographics with 21 layout types and 22 visual styles. Analyzes content, recommends layout×style combinations, and generates publicati...

Registry SourceRecently Updated
2.4K2jimliu
General

Employment Contract

Create employment contracts, offer letters, and HR policy documents following legal best practices. Use when drafting employment agreements, creating HR poli...

Registry SourceRecently Updated
General

会议纪要生成

会议纪要生成工具。输入会议录音文件,自动生成结构化纪要文档,包含关键讨论点、决策结论、待办事项,输出Markdown格式。

Registry SourceRecently Updated
General

India Tax Helper

India resident salaried tax helper for understanding IT declaration, Form 12BB, Form 16, AIS/TIS/26AS, ITR filing, FD/RD taxation, 15G/15H, student-loan and...

Registry SourceRecently Updated