前言¶
做 A 股选股或复盘时,常见做法是盯几只自选股的 K 线,凭经验找「像去年某段」的走势,再主观判断后面会不会延续。全市场逐只比对成本高,手工记涨跌幅也容易漏段。若希望把「这段走势在历史上出现过多少次、之后涨跌概率如何」变成可检索的统计,需要一套形态匹配流程,而不是单看一张图。
下面介绍 SkillHub 上的社区 Skill k线形态选股器(坐标 @user_2bda22ce/stockmatcher,当前版本 1.0.2)。它面向 Agent:在对话里描述选股、形态匹配、走势相似、历史回测等需求时,按技能文档调用本地脚本,在全市场或单票历史中搜索相似 K 线段落,并输出后续收益与上涨概率等统计。SkillHub 标注 requires_api_key=false;主流程依赖东方财富或通达信本地数据,无需为 Skill 本身配置 API Key。
这是什么¶
k线形态选股器 在 SkillHub 上的简介为:可以通过个股自定义的末端时间走势,来验证市场历史个股走势,从而预知未来一段时间内的趋势。
更准确地说,它是基于 SKILL.md 的 Agent Skill(包内标识名 a-stock-pattern-matcher),由社区发布者 user_2bda22ce 维护,分类为 professional,来源 community。技能文档将其定位为 A 股智能形态匹配选股工具:比对历史走势形态,找出与目标序列最相似的历史片段,并汇总匹配段之后的市场表现,供决策参考(历史统计不等于未来收益)。
- SkillHub 页面:https://www.skillhub.cn/skills/user_2bda22ce/stockmatcher
- API 入口(SkillHub 生态):https://api.skillhub.cn/user_2bda22ce/stockmatcher
核心功能¶
以下能力均来自 v1.0.2 技能文档,Agent 在匹配到触发场景(选股、形态匹配、走势相似、找类似股票、历史回测、K 线分析等)时应按文档执行。
- 手动输入涨跌幅:用户提供逗号分隔的日涨跌幅序列,在全市场搜索相似走势(文档称该方式最灵活、最可靠)。
- 指定股票代码:取某只股票最近 N 个交易日窗口,在全市场(
cross)或自身历史(self)中搜索匹配。 - 截图识别 K 线:从 K 线截图提取涨跌序列(准确度依赖图片质量,建议东方财富/同花顺日 K)。
- 可视化对比:生成匹配结果图表。
- 统计输出:后续 N 日平均收益、上涨概率、高相似度子集胜率等;相似度为 0~1 的余弦相似度。
v1.0.2 变更要点:新增通达信本地数据支持,移除 tushare API 依赖,数据源东方财富优先、通达信备选,并修复硬编码 token 等安全问题。
安装与启用¶
SkillHub 官方建议让 Agent 按安装说明拉取技能,坐标为 @user_2bda22ce/stockmatcher。
1. 安装 SkillHub CLI(若尚未安装)¶
先检查是否已有 CLI:
command -v skillhub && skillhub --version
未安装时,可使用 SkillHub 文档中的完整安装命令(需联网):
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash
仅安装 CLI 时:
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash -s -- --cli-only
2. 安装本 Skill 到当前 Agent 的 skills 目录¶
安装时必须用 --dir 指向当前客户端识别的 skills 目录,否则默认落在 ./skills/ 可能无法被加载。常用路径如下(摘自 SkillHub 安装文档):
| 客户端 | skills 目录 |
|---|---|
| Cursor | ~/.cursor/skills/ |
| Claude Code | ~/.claude/skills/ |
| Codex | ~/.codex/skills/ 或项目下 .agents/skills/ |
在 Cursor 中示例:
skillhub install @user_2bda22ce/stockmatcher --dir ~/.cursor/skills/
也可将下面提示词发给 AI,由其按 https://skillhub.cn/install/skillhub.md 完成安装:
请根据 https://skillhub.cn/install/skillhub.md,安装 `@user_2bda22ce/stockmatcher`。
3. Python 依赖与数据环境¶
技能目录内脚本(见下文「脚本位置」)需要:
pip install numpy pandas Pillow matplotlib openpyxl
数据源(按优先级自动选择):
- 东方财富本地数据(推荐):可设置环境变量
EASTMONEY_DATA_PATH指向数据目录;文档说明会在工作区目录结构中自动搜索。 - 通达信本地数据:v1.0.2 起作为备选(见变更说明)。
旧版脚本 rhythm_pattern_matcher.py 仍可能使用 tushare,需 TUSHARE_TOKEN;主程序 smart_pattern_matcher.py 在 v1.0.2 说明为纯本地数据源。结果默认写入技能工作目录下的 pattern_results/。
安装或升级后,按你所用客户端要求重启或刷新 Agent,使新 Skill 生效。
典型用法¶
在技能包根目录(含 SKILL.md 与 scripts/)下执行。下列命令与参数与官方 SKILL.md 一致。
模式 1:手动涨跌幅(推荐)¶
适合已有明确涨跌节奏、不绑定某只股票代码的场景:
python scripts/smart_pattern_matcher.py --returns "2.1,-0.5,1.3,0.8,-1.2,-0.3,3.5,1.2,-0.8,2.0"
常用参数:--top(默认 15)、--threshold(最低相似度,默认 0.3)、--after(后续观察天数,默认 10)。
模式 2:指定股票代码¶
# 全市场搜索
python scripts/smart_pattern_matcher.py --code 002594 --window 15 --mode cross
# 自身历史搜索
python scripts/smart_pattern_matcher.py --code 600519 --window 20 --mode self
--window 为观察窗口交易日数(默认 20);--mode 取 cross 或 self。
模式 3:K 线截图¶
python scripts/smart_pattern_matcher.py --image kline_screenshot.png
模式 4:全市场扫描¶
python scripts/smart_pattern_matcher.py --mode scan --window 20 --top 5
文档注明该模式耗时长(约 20~30 分钟),且旧版受 tushare 限频影响;v1.0.2 主程序以本地数据为主,仍应谨慎用于大批量扫描。
输出如何读¶
| 指标 | 含义 |
|---|---|
| 后续 N 日平均收益 | 匹配段之后 N 天平均涨幅,正偏多、负偏空 |
| 上涨概率 | 匹配段之后上涨比例;文档示例阈值 >70% 偏多、<40% 偏空 |
| 高相似度胜率 | 仅统计相似度 ≥0.5 的匹配 |
| 相似度 | >0.7 高度相似;0.5~0.7 有参考价值;<0.3 参考意义弱 |
窗口长度建议:5~10 日偏短线;15~20 日文档推荐的中线波段;30~60 日偏趋势级。
适用场景与注意¶
适合谁
- 需要在对话里完成「找全市场类似这段走势的股票」「某票最近 20 日像自己历史上哪一段」的量化同事。
- 已具备或可配置东方财富/通达信本地行情数据,希望减少在线 API 限频的 A 股研究者。
限制与注意
- 文档明确:历史不代表未来;上涨概率 70% 仍意味着约 30% 下跌可能。
- 停牌、次新股数据不足会被跳过;全市场搜索默认包含 ST。
- 截图识别依赖图片质量,不如手动
--returns稳定。 - 全市场扫描与首次加载本地数据耗时较长,文档给出过加载与缓存相关耗时说明,应按机器与数据体量实测。
- SkillHub 页面统计(抓取时):评分 100000,下载约 2425,安装约 54;社区 Skill,使用前自行评估合规与投资风险。
脚本位置(技能包内)
- 主程序:
scripts/smart_pattern_matcher.py - 通达信接口:
scripts/tdx_local.py - 旧版:
scripts/rhythm_pattern_matcher.py(tushare) - 公式参考:
scripts/pattern_tdx.txt、scripts/pattern_em.txt
结尾¶
k线形态选股器 把「末端走势像谁、历史上类似片段之后怎么走」收敛成可重复的搜索与统计流程,适合挂在 Cursor 等 Agent 上,用自然语言触发形态匹配任务。安装与优先源规则以 SkillHub 官方说明为准;功能细节以技能包内 SKILL.md(v1.0.2)为准。