Stock Analysis - 股票分析技能
综合分析 + 批量选股评分 (V4.0 多线程) + 套利空间推荐 + 盘中分时分析。
触发条件
- 用户问某只股票怎么样 → 单只个股分析
- 用户问要不要买/卖/持有 → 操作建议
- 用户提供 wolffy1 选股 Excel → 批量评分(TOP 10 套利空间推荐)
- 用户要求盘中分时分析 → 盘中分析
一、数据源规范
| 数据类型 | 来源 | 实时性 | 用途 |
|----------|------|--------|------|
| 历史 K 线 | akshare.stock_zh_a_hist / stock_zh_a_daily | 上周五收盘 | MA/MACD/KDJ/RSI/VR/CR/BIAS/OBV/WR/CCI |
| 今日实时行情 | 腾讯 API qt.gtimg.cn/q={market}{code} | 延迟<3 分钟 | 现价/涨跌幅/量比/开盘/最高/最低 |
| 消息面 (新增) | akshare.stock_news_em | T 日实时 | 个股新闻、公告摘要 (V4.0-MVP) |
| ~~资金流向~~ | akshare.stock_individual_fund_flow | ~~上一个交易日~~ | ~~主力/散户净流入~~ | ⚠️ 已标注但未实现,脚本未接入此数据源 |
| 大盘指数 (新增) | 腾讯 API qt.gtimg.cn/q=sh000001,sz399001,sz399006 | 延迟<3 分钟 | 板块对比:个股 vs 大盘相对强弱 |
核心原则:历史指标与今日实时数据完全独立计算,不混合。 例外:BIAS(乖离率) 使用实时价格重新计算,确保与 BOLL 判断一致。
二、技术分析框架 (V4.0-MVP)
指标体系设计逻辑
本系统选取的指标覆盖了股票分析的 六大核心维度,每个维度解决不同的问题:
| 维度 | 指标 | 为什么选它 | 解决什么问题 | |------|------|-----------|-------------| | 趋势 | MA/MACD | 趋势是朋友 | 判断股价运行方向,避免逆势操作 | | 超买超卖 | KDJ/RSI/WR | 物极必反 | 识别短期过热/过冷,防追高/抄底 | | 波动率 | BOLL/BIAS/CCI | 价格围绕价值波动 | 判断当前价格在通道中的位置 | | 资金 | VR/CR/OBV | 量在价先 | 识别主力资金流向,发现骗线 | | 量价 | 量比/成交量 | 量价配合 | 验证趋势的有效性 | | 动量 | 5 日动量/涨跌幅 | 强者恒强 | 捕捉短期爆发力 | | 消息面 | 新闻/公告关键词 | 驱动因子 | 识别重大利好/利空,防雷/发现机会 |
1. 均线系统 (MA) & 趋势
- 股价 > MA5 > MA10 > MA20 → 多头排列,强势
- 股价 < MA5 < MA10 < MA20 → 空头排列,弱势
2. MACD (趋势指标)
- DIF 上穿 DEA → 金叉,看涨
- 红柱放大 → 上涨动能增强
3. WR (威廉指标) —— 更早识别拐点
- WR1(6) > 80 → 超卖区,可能反弹 (加分)
- WR1(6) < 20 → 超买区,可能回调 (扣分)
4. RSI (相对强弱)
- RSI > 70 → 超买
- RSI < 30 → 超卖
5. CCI (顺势指标) —— 识别极端行情
- CCI > 100 → 超买区,警惕回调 (扣分)
- CCI < -100 → 超卖区,可能反弹 (加分)
6. BOLL (布林带)
- 股价触及上轨 → 可能回调
- 股价触及下轨 → 可能反弹
7. BIAS (乖离率) —— 防追高/抄底神器
- BIAS(6) > 8% → 偏离过大,有回调风险 (扣分)
- BIAS(6) < -8% → 超跌反弹机会 (加分)
8. VR (成交量比率) —— 判断资金蓄水池
- 160-250 → 正常偏强,健康上涨
9. CR (能量指标) —— 判断多空能量
- CR > 300 → 过热
10. OBV (能量潮) —— 识别主力动向
- OBV 趋势:5 日 OBV 均值 > 10 日 OBV 均值 → 资金流入 (加分)
11. 消息面 (V4.0 分级加权版)
- 数据来源:东方财富个股新闻
- 逻辑:关键词分级加权匹配 + 时效性衰减
- 分级体系:
- 强利好 (x3.0): IPO、上市、重组、并购、借壳、分拆上市
- 普通利好 (x1.0): 中标、预增、回购、增持、获批、涨价、分红、派现、涨停、净利润增长、业绩暴增、投产、扩产
- 弱利好 (x0.5): 优化、升级、拓展、布局、研发
- 强利空 (x3.0): 立案、退市、暴雷、违约、造假、欺诈
- 普通利空 (x1.0): 调查、处罚、减持、预减、亏损、诉讼、质押、业绩下滑
- 弱利空 (x0.5): 波动、承压、放缓、回调
- 衰减:今日 100%,昨日 50%,前日 20%,3-5 日 10%,6 日+ 0%
三、综合评分模型 (V4.0 满分 100)
| 维度 | 权重 | 满分 | 扣分上限 | 说明 | |------|------|------|----------|------| | 技术面 | 85% | 85 | -85 | 均线、MACD、KDJ/RSI/WR/CCI、BOLL/BIAS、VR/CR/OBV、量价、动量 | | 消息面 | 15% | 15 | -15 | 新闻/公告情感打分,识别重大利好/利空 |
评分等级:
- ≥70 分:强势看多
- 40-69 分:偏多
- 0-39 分:震荡
- <0 分:偏空
四、使用方式
单只个股分析
用户提供股票代码或名称 → 按技术分析框架逐项分析 → 抓取最新新闻 → 输出综合结论 + 操作建议
批量评分(wolffy1 Excel)
python skills/stock-analysis/scripts/run_fast.py "Excel 文件路径"
输出:TOP 10 套利空间推荐
每只包含:基础信息(现价/涨幅/量比/评分/结论/指标)、入选理由、风险提示、正负向信号、交易计划(入场/目标/止损/收益风险比)、新闻摘要
套利筛选逻辑:
- 技术面 ≥ 30 分(有基本支撑)
- 今日涨幅 0%~7%(不追涨停)
- 量比 ≥ 1.5(有资金关注)
- BIAS(6) < 8%(不过度偏离)
- 距 20 日高点有空间(high_20 > price)
套利分数(V4.3) = 技术面×40 + 上行空间×25 + 消息面×10 + R/R×15 - 涨幅×10 + 趋势加分 - 深止损惩罚
- 技术面满分 40(原 30),空间满分 25(原 40)——技术强度优先
- 趋势加分:MACD>0 且 OBV 流入 +5 分
- 深止损惩罚:止损距现价 >6% 扣 10 分
- 涨幅惩罚从 5 提到 10,追高更痛
盘中分时分析
使用 intraday_analysis.py 获取分钟级 K 线进行盘中分析
五、⚡ 分析纪律与红线(高端模型必须遵守)
5.1 🚫 禁止行为(绝对红线,碰了就废)
- 绝对禁止编造数据:脚本没输出的数字,不能凭印象、经验、猜测填充。没有就是没有,说"数据缺失"比编一个假数字强一万倍。
- 绝对禁止预测具体涨跌点位:可以说"压力位 XX,支撑位 XX",但不能说"明天会涨到 XX"或"大概率突破 XX"。技术分析给的是概率区间,不是预言。
- 绝对禁止替用户做最终决策:分析≠指令。用"建议关注""可考虑""谨慎对待",不用"买入""卖出""清仓"等指令性动词。
- 绝对禁止忽略数据时效性:如果历史数据截止日是前天或更早,必须明确告知用户。不能说"当前""现在"来模糊时间差。
- 绝对禁止混用不同时段数据:历史指标(MA/MACD/KDJ 等)基于历史收盘价,今日实时价格仅用于现价/BIAS 重算/量比。两者必须明确区分来源。
- 绝对禁止无视异常信号:当技术指标出现矛盾(如 MACD 看涨但 OBV 看跌),必须指出矛盾,不能选择性忽略不利数据。
5.2 ✅ 必须行为(每次分析必须执行)
- 声明数据时间:输出开头必须标注
📅 历史数据截止: YYYY-MM-DD | 🕐 实时行情: HH:MM(或标注"非交易时段,数据为最近交易日收盘") - 声明分析类型:明确告诉用户这是"技术面量化评分",不是"基本面分析"或"内幕消息"。
- 标注消息面局限性:新闻关键词匹配为辅助参考,必须标注
⚠️ 消息面评分基于新闻关键词匹配,可能存在误判,仅供参考。 - 区分事实与建议:严格三段式输出 —— ① 数据事实(脚本输出) → ② 技术判断(基于规则的解读) → ③ 操作参考(条件式建议)。
- 给出具体价位:支撑位、压力位、止损位必须有具体数字,来源必须标注(如"20 日低点""BOLL 下轨""动态止损")。
- 必须标注风险:每条分析结尾必须有
⚠️ 以上分析仅供参考,不构成投资建议。股市有风险,投资需谨慎。
5.3 📊 数据质量自检清单(模型内部执行,不输出)
每次分析前,模型需在心中确认以下事项:
- [ ] 历史数据是否在 5 个交易日内?超过 5 天需提醒用户数据过时
- [ ] 当前是否为交易时段?(A 股交易日 9:30-11:30, 13:00-15:00)非交易时段数据为最近交易日收盘
- [ ] 今日实时行情是否成功获取?如果失败,需说明仅基于历史数据分析
- [ ] 新闻数据是否获取成功?如果为空或异常,需说明消息面评分可能不准确
- [ ] 该股票是否为 ST/*ST?如果是,需在分析开头特别标注风险
- [ ] 评分是否出现极端值(>90 或 <-20)?极端值需要额外验证,确认不是数据异常
5.4 ⚖️ 评分矛盾处理规则
当技术面与消息面出现方向性矛盾时:
| 技术面 | 消息面 | 处理策略 | |--------|--------|----------| | 强势看多 (≥70) | 强利空 (<-5) | 降低置信度,标注"技术面强势但消息面有风险,建议等待消息面落地" | | 偏空 (<0) | 强利好 (>5) | 标注"技术面偏弱但消息面有利好,可能是超跌反弹机会,需确认技术面转暖信号" | | 震荡 (0-39) | 平静 (-2~2) | 正常输出,标注"无明确方向信号,观望为主" | | 强势看多 (≥70) | 强利好 (>5) | 标注"技术与消息共振看多,但需警惕一致性过热风险" |
矛盾时以技术面为主、消息面为辅:技术分析基于客观价格数据,消息面基于关键词匹配存在误判可能。总分中技术面占 85% 即体现此原则。
5.5 🎯 止损/止盈说明规范
- 动态止损(V4.3+):止损位基于 BOLL 下轨 和 20 日低点 自动计算(取较高值),不再硬截断 8%:
- 止损位 = max(BOLL下轨, 20日低点),保留真实技术支撑位
- 2% 下限:防止止损过紧被频繁触发
- 如果止损距现价 >6%,标记为
is_deep=True,在套利分数中扣 10 分 - 如果 BOLL 和 20 日低点都不可用,兜底 3.5% 固定止损
- 输出时无需额外解释止损计算逻辑,但需标注止损价
- 如果用户问"止损是怎么算的",回答:"基于布林下轨和 20 日低点自动计算,波动大的股票止损宽,波动小的止损窄,不再硬截断"
- 止盈参考:以 20 日高点为第一目标位。必须在输出中标注
📌 目标位基于近期技术位,实际止盈需结合市场情绪和资金面动态调整 - 不承诺收益:绝对不说"预计盈利 XX%""保底 XX"等承诺性表述
5.6 📊 板块对比规范(V4.2+ 新增)
- 数据来源:腾讯 API 三大指数(上证指数、深证成指、创业板指)实时行情
- 对比方式:个股今日涨跌幅 vs 对应指数涨跌幅,计算相对强弱差值
- 沪市主板(6 开头)→ 对比上证指数
- 创业板(3 开头)→ 对比创业板指
- 深市主板(0 开头)→ 对比深证成指
- 输出格式:
相对{指数名称}{强于/弱于}{差值:.2f}% (个股{涨幅:+.2f}% vs {指数名称}{指数涨幅:+.2f}%) - 如果指数数据获取失败:跳过板块对比输出,不影响主分析结果
- 模型须知:这是相对大盘的强弱对比,不是行业板块内的排名。如需行业板块内对比,需额外说明"无法获取行业板块数据"
六、输出纪律
- 必须有数据支撑:不能空口说,每个判断都要有数据
- 不能编数据:找不到就说找不到
- 必须标注风险:"以上分析仅供参考,不构成投资建议"
- 给出具体价位:支撑位、压力位、止损位
- 区分事实和建议:先列数据,再给判断,最后说建议
- 必须声明数据时效:输出开头标注历史数据截止日期 + 实时行情时间
- 矛盾信号必须指出:技术指标冲突时不能选择性忽略
- 新闻评分必须标注局限性:"消息面评分基于关键词匹配,可能存在误判"
七、项目结构
skills/stock-analysis/
├── SKILL.md ← 本文件(技能说明)
└── scripts/
├── analyze.py ← **通用个股分析** (单股/多股/带成本分析)
├── run_fast.py ← **批量选股 + 套利推荐** (V4.0 多线程,10 线程并发)
├── stock_screener.py ← 原始评分脚本 (备用)
└── intraday_analysis.py ← 盘中分时分析
八、使用方式 (V4.0)
1. 通用个股分析 (analyze.py)
适用于:用户询问单只或几只股票怎么样,或者想查看持仓盈亏。
# 单只分析
python scripts/analyze.py <代码>
# 例如: python scripts/analyze.py 300706
# 带成本分析(显示浮盈)
python scripts/analyze.py <代码> <成本>
# 例如: python scripts/analyze.py 300706 34.403
# 多股对比
python scripts/analyze.py <代码1> <代码2> ...
# 例如: python scripts/analyze.py 300706 000633 600519
输出内容:
- 现价、涨跌幅、量比
- 浮盈(如提供成本)
- 综合评分(技术 + 消息)
- 关键信号(利好/利空)
- 目标位与止损位
2. 批量套利推荐 (run_fast.py)
适用于:用户提供选股表格,需要筛选出近期套利空间最大的股票。
python scripts/run_fast.py <Excel路径>
输出内容:
- TOP 10 套利推荐表
- 首推详细分析(理由/风险/交易计划)
- 结果自动保存为
analysis_result.csv
3. 盘中分时分析 (intraday_analysis.py)
python scripts/intraday_analysis.py <代码> [成本]
十、⚠️ 已知局限性与模型须知(必读!)
10.1 数据源局限性
| 局限 | 说明 | 模型应对 | |------|------|----------| | 历史数据非实时 | akshare 数据截止最近交易日收盘,非盘中实时 | 必须标注数据日期,不能用"当前"模糊表述 | | 实时行情有延迟 | 腾讯 API 延迟 1-3 分钟,非交易时段返回最近收盘数据 | 非交易时段必须声明数据为收盘数据 | | 新闻关键词误判 | 纯文本匹配无法理解上下文(如"回应下跌"同时命中利空词) | 必须标注"消息面评分基于关键词匹配,可能存在误判" | | 无资金流向 | SKILL 数据源表写了"资金流向"但脚本未实现,不要引用 | 不要提及资金流向数据,脚本没有接入 | | 无基本面数据 | 不分析 PE/PB/ROE/营收等基本面指标 | 如果用户问基本面,明确说明"本系统仅做技术面分析" | | 无板块对比 | 个股分析脱离行业/板块基准 | 如果用户问"这只股票在板块中如何",说明无法直接对比 |
10.2 评分模型局限性
| 局限 | 说明 | |------|------| | 统一止损 | 3.5% 止损不适用于所有股票(创业板/科创板波动更大) | | 权重固定 | 技术面 85%/消息面 15% 是经验值,非最优解 | | 指标独立性 | 10+ 技术指标存在相关性(如 KDJ 和 RSI 都衡量超买超卖),评分有重复计算 | | 极端行情失效 | 涨停/跌停/停牌股票的技术指标可能失真 |
10.3 模型行为红线
- ❌ 不说"这只股票一定会涨/跌"
- ❌ 不说"我建议你现在买入/卖出"
- ❌ 不说"根据我的分析,目标价是 XX"
- ❌ 不用脚本未输出的数据(如主力资金流向、北向资金等)
- ❌ 不在没有数据支撑的情况下给出评分
- ✅ 说"技术面评分 XX 分,显示偏多/偏空/震荡"
- ✅ 说"如果买入,建议止损位 XX,目标位 XX"
- ✅ 说"以上分析仅供参考,不构成投资建议"
十一、版本更新日志
V4.3 (2026-04-09 严格修复) ← 本次更新
- 止损硬截断修复:去掉 8% 硬上限,止损位保留真实技术支撑(BOLL下轨/20日低点较高值)
- 旧问题:002440 的止损被从 10.60 硬拉到 11.19(不在任何支撑位上)
- 新逻辑:止损 = 技术位,如果 >6% 标记 is_deep 并在套利分数中扣 10 分
- 套利公式权重修复:技术面 40 > 空间 25(原:空间 40 > 技术 30)
- 旧问题:002440 技术分 34/85 但空间 25%,排第一("跌得多" > "涨得稳")
- 新逻辑:短线套利首要看技术强度,空间只是辅助
- 新增趋势一致性加分:MACD>0 且 OBV 流入 +5 分
- 新增止损过深惩罚:止损 >6% 扣 10 分(短线不能扛太深)
- 新增涨幅惩罚:从 5 分提到 10 分(追高更痛)
- 新增可达性评估:可达/有可能/低可达,基于技术分+MACD+空间综合判断
- 首推输出改进:必须输出可达性评级,解释为什么推荐这只股
V4.2 (2026-04-09)
- 动态止损:基于 BOLL 下轨 + 20 日低点计算,波动率自适应(2%~8% 硬性约束),替代固定 3.5%
- 板块对比:输出 TOP 10 和单股分析时自动对比三大指数(上证/深成/创业板),显示相对强弱
- name_map 优化:从硬编码示例改为自动获取(通过 akshare.stock_individual_info_em,带异常兜底)
- run_fast.py 新增函数:fetch_market_indices()、fetch_stock_industry()、compute_dynamic_stop_loss()
- analyze.py 同步更新:止损逻辑改为动态,新增板块对比输出
V4.1 (2026-04-09)
- 新增分析纪律与红线:6 条禁止行为 + 6 条必须行为 + 数据质量自检清单
- 新增评分矛盾处理规则:技术面与消息面冲突时的处理策略
- 新增止损/止盈说明规范:标注固定止损局限性,不承诺收益
- 新增已知局限性章节:明确数据源/评分模型/模型行为边界
- 修复章节编号错误:统一编号逻辑
- 新增输出纪律条目:数据时效声明、矛盾信号指出、新闻评分局限性标注
V4.0 (2026-04-08)
- 多线程并发: 10 线程,759 只股票从 20 分钟优化到 58 秒
- 套利空间推荐: TOP 10 套利推荐,含入场区间/目标位/止损位/风险收益比
- 关键词分级加权: 强利好/利空 (x3.0), 普通 (x1.0), 弱 (x0.5)
- 关键词大幅扩充: IPO/上市/重组/涨停/派现/净利润增长/质押/业绩下滑等 60+ 个词
- 衰减优化: 今日 100%, 昨日 50%, 前日 20%, 3-5 日 10%
- Bug 修复: analyze_news_sentiment 去除市场前缀 (sz/sh) + Windows emoji 编码修复
- 输出优化: 新闻摘要显示命中关键词 + 风险提示
V4.0-MVP (2026-04-08 初版)
- 新增消息面评分维度: 基于东方财富新闻关键词匹配
- 新增时效性衰减逻辑: 今日 100%, 昨日 50%, 前日 20%
- 输出优化: 增加消息面得分、技术面得分、新闻摘要显示
V3.1 (2026-04-08)
- 修复 BIAS 计算逻辑(实时价格)
- 修复 OBV 计算逻辑
- 新增 WR/CCI 指标
V3.0 (2026-04-07)
- 新增 BIAS, OBV, 关键高低点
V2.0 (2026-04-07)
- 新增 VR, CR, BOLL
扫码联系在线客服