Stock Theme Events - 股票题材与新闻事件关联分析
概述
本技能将市场炒作的题材概念与真实新闻事件对应起来,输出结构化的 Markdown 报告。核心流程:获取热门股票 → 提取题材 → 聚类合并 → 搜索新闻 → 生成报告。
核心功能
1. 获取个股题材
调用 ths-stock-themes skill 获取股票的题材/概念列表。
输入:股票代码列表
输出: INLINECODE1
2. 题材聚类合并
使用语义相似度 + 同义词词典将相似题材合并。
示例:
- - "人工智能" + "AI" + "大模型" → "人工智能/AI"
- "芯片" + "半导体" + "集成电路" → "半导体/芯片"
输出: INLINECODE2
3. 获取对应新闻事件
优先使用 akshare 财经新闻接口,缺失时用 browser 工具从金十数据搜索。
搜索范围:近 15 天
每题材选取:2-5 条高相关度新闻
输出: INLINECODE3
4. 生成 Markdown 报告
结构化输出题材方向、涉及股票、对应新闻事件。
使用方法
被其他 skill 调用(推荐)
CODEBLOCK0
独立运行
CODEBLOCK1
执行流程
完整流程
- 1. 获取热门股票(如未提供)
- 调用
ths-stock-themes 获取近 10 日涨幅前 30 股票
- 排除 ST 股票
- 2. 获取个股题材
- 遍历股票列表
- 调用
ths-stock-themes 获取每只股票的题材
- 缓存结果避免重复请求
- 3. 题材聚类
- 统计题材频次
- 使用语义相似度模型聚类
- 应用同义词词典合并
- 按频次排序取 TOP N
- 4. 搜索新闻
- 对每个题材方向,先尝试 akshare 接口
- 如结果不足,用 browser 工具搜索金十数据
- 筛选近 15 天内的资讯
- 去重并按相关性排序
- 5. 生成报告
- 使用模板生成 Markdown
- 保存到指定路径
- 返回报告文件路径
输出格式
CODEBLOCK2
脚本说明
cluster_themes.py
题材聚类脚本,使用语义相似度 + 同义词词典。
CODEBLOCK3
参数:
- -
--input: 输入题材 JSON 文件 - INLINECODE7 : 输出聚类结果
- INLINECODE8 : 保留 TOP N 个题材方向(默认 8)
- INLINECODE9 : 相似度阈值(默认 0.7)
search_news.py
新闻搜索脚本,akshare + browser 混合方案。
CODEBLOCK4
参数:
- -
--theme: 题材关键词 - INLINECODE11 : 搜索天数范围(默认 15)
- INLINECODE12 : 返回新闻数量(默认 5)
- INLINECODE13 : 输出 JSON 文件路径
generate_report.py
报告生成脚本。
CODEBLOCK5
参数:
- -
--themes: 聚类后的题材 JSON - INLINECODE15 : 新闻数据 JSON
- INLINECODE16 : 输出 Markdown 路径
- INLINECODE17 : 模板文件路径(可选)
配置说明
config/theme_synonyms.json
题材同义词配置,用于聚类合并。
CODEBLOCK6
依赖安装
CODEBLOCK7
注意事项
- 1. 数据时效性:新闻数据实时变化,建议在报告中注明数据获取时间
- 浏览器自动化:金十数据搜索需要 browser 工具,避免高频请求
- ST 股票:自动排除名称包含"ST"的股票
- 语义模型:首次使用会下载 sentence-transformers 模型(约 500MB)
- API 限制:akshare 有频率限制,建议添加请求间隔
错误处理
- - 题材获取失败:重试 3 次,跳过该股票并记录警告
- 新闻搜索失败:降级到 browser 工具,仍失败则标记"暂无相关新闻"
- 聚类失败:降级到简单频次统计
- 报告生成失败:返回错误信息,提示检查模板文件
性能优化
- 1. 缓存机制:个股题材结果缓存到
cache/themes/ 目录 - 并行搜索:多个题材的新闻搜索可并行执行
- 增量更新:支持基于已有报告增量更新
示例调用
被 stock-daily-report 调用
CODEBLOCK8
独立运行
CODEBLOCK9
Stock Theme Events - 股票题材与新闻事件关联分析
概述
本技能将市场炒作的题材概念与真实新闻事件对应起来,输出结构化的 Markdown 报告。核心流程:获取热门股票 → 提取题材 → 聚类合并 → 搜索新闻 → 生成报告。
核心功能
1. 获取个股题材
调用 ths-stock-themes skill 获取股票的题材/概念列表。
输入:股票代码列表
输出:{股票代码:[题材 1, 题材 2, ...]}
2. 题材聚类合并
使用语义相似度 + 同义词词典将相似题材合并。
示例:
- - 人工智能 + AI + 大模型 → 人工智能/AI
- 芯片 + 半导体 + 集成电路 → 半导体/芯片
输出:{题材方向:[相关股票列表]}
3. 获取对应新闻事件
优先使用 akshare 财经新闻接口,缺失时用 browser 工具从金十数据搜索。
搜索范围:近 15 天
每题材选取:2-5 条高相关度新闻
输出:{题材方向:[新闻列表]}
4. 生成 Markdown 报告
结构化输出题材方向、涉及股票、对应新闻事件。
使用方法
被其他 skill 调用(推荐)
python
在调用方 skill 中
from stock
themeevents import analyze
themeevents
result = analyzethemeevents(
stock_list=[600519, 000858, ...], # 可选,默认获取近 10 日涨幅前 30
output_path=~/Desktop/A 股每日复盘/, # 可选
date_range=15, # 新闻搜索天数,默认 15
top_themes=8 # 主流题材数量,默认 8
)
独立运行
生成题材事件分析报告
分析近 10 日涨幅前 30 股票的题材和对应新闻
获取市场炒作题材的真实事件驱动
执行流程
完整流程
- 1. 获取热门股票(如未提供)
- 调用 ths-stock-themes 获取近 10 日涨幅前 30 股票
- 排除 ST 股票
- 2. 获取个股题材
- 遍历股票列表
- 调用 ths-stock-themes 获取每只股票的题材
- 缓存结果避免重复请求
- 3. 题材聚类
- 统计题材频次
- 使用语义相似度模型聚类
- 应用同义词词典合并
- 按频次排序取 TOP N
- 4. 搜索新闻
- 对每个题材方向,先尝试 akshare 接口
- 如结果不足,用 browser 工具搜索金十数据
- 筛选近 15 天内的资讯
- 去重并按相关性排序
- 5. 生成报告
- 使用模板生成 Markdown
- 保存到指定路径
- 返回报告文件路径
输出格式
markdown
A 股题材 - 事件关联分析报告
数据日期:2026-03-21
统计周期:近 10 个交易日
新闻范围:近 15 天
样本股票:涨幅前 30 只(排除 ST)
一、主流炒作题材方向
| 排名 | 题材方向 | 涉及股票数 | 代表股票 |
|---|
| 1 | 人工智能/AI | 8 | 中科曙光、浪潮信息... |
| 2 |
半导体/芯片 | 6 | 中芯国际、北方华创... |
| ... | ... | ... | ... |
二、题材 - 事件对应分析
1. 人工智能/AI(8 只股票)
涉及股票:中科曙光、浪潮信息、科大讯飞...
对应新闻事件:
- 1. [新闻标题 1] (2026-03-20)
- 来源:金十数据
- 摘要:...
- 链接:
查看详情
- 2. [新闻标题 2] (2026-03-19)
- 来源:财联社
- 摘要:...
- 链接:
查看详情
三、总结
- - 当前市场主要炒作方向:XXX、XXX、XXX
- 新闻事件驱动明显:XXX 政策/事件催化
- 风险提示:...
脚本说明
cluster_themes.py
题材聚类脚本,使用语义相似度 + 同义词词典。
bash
python3 scripts/cluster_themes.py --input themes.json --output clustered.json
参数:
- - --input: 输入题材 JSON 文件
- --output: 输出聚类结果
- --top: 保留 TOP N 个题材方向(默认 8)
- --similarity-threshold: 相似度阈值(默认 0.7)
search_news.py
新闻搜索脚本,akshare + browser 混合方案。
bash
python3 scripts/search_news.py --theme 人工智能 --days 15 --limit 5
参数:
- - --theme: 题材关键词
- --days: 搜索天数范围(默认 15)
- --limit: 返回新闻数量(默认 5)
- --output: 输出 JSON 文件路径
generate_report.py
报告生成脚本。
bash
python3 scripts/generate_report.py --themes clustered.json --news news.json --output report.md
参数:
- - --themes: 聚类后的题材 JSON
- --news: 新闻数据 JSON
- --output: 输出 Markdown 路径
- --template: 模板文件路径(可选)
配置说明
config/theme_synonyms.json
题材同义词配置,用于聚类合并。
json
{
人工智能/AI: [人工智能, AI, 大模型, AIGC, 算力, 机器学习],
半导体/芯片: [芯片, 半导体, 集成电路, 光刻机, 存储芯片],
新能源: [光伏, 风电, 储能, 锂电池, 新能源汽车, 氢能],
医药生物: [创新药, 医疗器械, 生物医药, CXO, 疫苗],
金融: [券商, 银行, 保险, 多元金融, 互联网金融],
大消费: [白酒, 食品饮料, 家电, 零售, 旅游],
周期资源: [钢铁, 煤炭, 有色, 化工, 石油],
军工: [军工, 航天, 船舶, 国防, 航空发动机],
科技通信: [5G, 通信, 物联网, 云计算, 数据中心],
房地产: [房地产, 物业, 园区开发, REITs]
}
依赖安装
bash
pip install akshare sentence-transformers scikit-learn
注意事项
- 1. 数据时效性:新闻数据实时变化,建议在报告中注明数据获取时间
- 浏览器自动化:金十数据搜索需要 browser 工具,避免高频请求
- ST 股票:自动排除名称包含ST的股票
- 语义模型:首次使用会下载 sentence-transformers 模型(约 500MB)
- API 限制:akshare 有频率限制,建议添加请求间隔
错误处理
- - 题材获取失败:重试 3 次,跳过该股票并记录警告
- 新闻搜索失败:降级到 browser 工具,仍失败则标记暂无相关新闻
- 聚类失败:降级到简单频次统计
- 报告生成失败:返回错误信息,提示检查模板文件
性能优化
- 1. 缓存机制:个股题材结果缓存到 cache/themes/ 目录
- 并行搜索:多个题材的新闻搜索可并行执行
- 增量更新:支持基于已有报告增量更新
示例调用
被 stock-daily-report 调用
python
在 stock-daily-report skill 中
result = analyze
themeevents(
stock
list=topgainers, # 近 10 日涨幅前 30
output
path=dailyreport_dir,
date_range=15
)
将 result 整合到每日复盘报告中
独立运行
用户:分析当前市场炒作的题材和对应新闻
助手:正在获取近 10 日涨幅前 30 股票...
正在提取题材信息...
正在聚类合并...
正在搜索对应新闻...
报告已生成:~/Desktop/A 股每日复盘/theme-events-2026-03-21.md