A股智能形态匹配器
概述
本工具通过比对历史走势形态,帮助用户找到A股中与目标走势最相似的历史段落,并统计匹配段之后的市场表现,为投资决策提供数据参考。
核心功能
- 手动输入涨跌幅 → 全市场搜索相似走势(最灵活、最可靠)
- 指定股票代码 → 分析其最近N日走势,在全市场或自身历史中搜索匹配
- 截图识别K线 → 自动从K线图中提取涨跌序列
- 可视化对比 → 生成匹配结果的可视化图表
- 统计输出 → 提供后续涨跌概率、平均收益等参考数据
使用模式
模式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"
参数:
--returns:每日涨跌幅(%),逗号分隔--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
参数:
--code:股票代码(6位,如002594)--window:观察窗口(交易日,默认20)--mode:cross=全市场,self=自身历史
模式3:截图识别
从K线截图自动提取走势:
python scripts/smart_pattern_matcher.py --image kline_screenshot.png
注意:截图识别准确度取决于图片质量,建议使用东方财富/同花顺日K线图。
模式4:全市场扫描
扫描所有A股,找到"最近走势在历史上最像自己哪段"的股票:
python scripts/smart_pattern_matcher.py --mode scan --window 20 --top 5
注意:此模式耗时较长(20-30分钟),受tushare频率限制。
输出解读
关键指标
| 指标 | 含义 | 判断标准 | |------|------|----------| | 后续N日平均收益 | 匹配段之后N天的平均涨幅 | 正=偏多,负=偏空 | | 上涨概率 | 匹配段之后涨了的比例 | >70%偏多,<40%偏空 | | 高相似度胜率 | 只看相似度≥0.5的匹配 | 更有参考价值 | | 相似度 | 0~1,越高越像 | >0.7很像,>0.5有参考价值 |
相似度等级
| 相似度 | 含义 | |--------|------| | >0.7 | 高度相似,可重点关注 | | 0.5-0.7 | 中度相似,有参考价值 | | 0.3-0.5 | 低度相似,需谨慎 | | <0.3 | 匹配度过低,参考意义不大 |
算法说明
特征向量组成
| 特征 | 维度 | 作用 | |------|------|------| | 标准化涨跌幅 | N | 涨跌节奏 | | 相对量比 | N | 放量缩量节奏(仅代码模式) | | 振幅序列 | N | 波动节奏 | | 全局统计特征 | 5-6 | 累计涨幅/最大回撤/转折频率/尾盘斜率/高低点位置 |
相似度计算
使用余弦相似度(Cosine Similarity),取值范围0~1。
性能说明
| 模式 | 耗时 | 说明 | |------|------|------| | 手动输入涨跌幅 | <5秒 | 最快,无需加载数据 | | 指定股票(全市场) | 5-15秒 | 加载本地数据(~76秒一次,之后缓存) | | 指定股票(自身历史) | <3秒 | 最快 | | 全市场扫描 | 20-30分钟 | 不推荐,受tushare限频 |
优化说明:
- 优先使用东方财富本地数据(零API调用)
- 只加载近365天数据(减少76%数据量)
- 极速版相似度算法(numpy向量化)
依赖安装
pip install numpy pandas Pillow matplotlib openpyxl
v1.0.2 移除了 tushare 依赖,改为纯本地数据源。 v1.0.0 原有依赖:
pip install tushare numpy pandas Pillow matplotlib openpyxl
数据来源
本Skill支持两种数据源(按优先级自动选择):
-
东方财富本地数据(推荐)
- 零API调用,无限频
- 需要配置
EASTMONEY_DATA_PATH环境变量或确保数据在正确路径下 - 自动搜索工作区目录结构
-
tushare接口(旧版脚本 rhythm_pattern_matcher.py)
- 需要设置
TUSHARE_TOKEN环境变量 - 免费版有限频(约每分钟1次)
- 示例:
export TUSHARE_TOKEN="你的token"
- 需要设置
注意事项
- 数据源:主程序
smart_pattern_matcher.py使用东方财富本地数据,无需API Key - 环境变量(可选):
EASTMONEY_DATA_PATH: 东方财富数据目录路径TUSHARE_TOKEN: tushare Token(仅旧版脚本需要)
- 输出目录:结果保存到
pattern_results/子目录 - 历史不代表未来:形态匹配是概率工具,上涨概率70%意味着还有30%概率跌
- 停牌/次新股:数据不足的股票会自动跳过
- ST股:默认包含在全市场搜索中
窗口选择建议
| 窗口 | 适用场景 | 特点 | |------|---------|------| | 5-10日 | 短线博弈 | 匹配多但噪声大 | | 15-20日 | 中线波段(推荐) | 平衡精度和覆盖面 | | 30-60日 | 大级别趋势 | 匹配少但信号强 |
脚本位置
- 主程序:
scripts/smart_pattern_matcher.py(v5) - 通达信数据接口:
scripts/tdx_local.py - 旧版程序:
scripts/rhythm_pattern_matcher.py(需要 tushare) - 通达信公式:
scripts/pattern_tdx.txt - 东方财富公式:
scripts/pattern_em.txt
反馈与支持
如果你觉得这个工具有帮助,或者有改进建议,欢迎反馈!
反馈方式
| 方式 | 说明 | |------|------| | WorkBuddy 评价 | 使用后在 Skill 页面评分 | | 问题描述 | 描述你期望的功能或遇到的问题 |
反馈内容建议
- 匹配结果质量如何?(1-5星)
- 哪些场景特别有用?
- 哪些功能需要改进?
- 你希望增加哪些功能?
💡 你的反馈是我持续改进的动力!
Scan to contact