K线短线选股检查清单
Overview
把一套 A 股技术分析经验(96 原则 / 12 底部形态 / 下午 2:30 选股法 / 上升趋势纪律)
蒸馏成纪律化、可复用的核查清单。客观指标(涨跌幅、量比、换手率、流通市值等)
交由 scripts/fetch_quote.py 调用腾讯财经 API 自动抓取与初筛;主观项(K 线形态、趋势、
分时、题材)按 references/ 中的规则逐条人工/看图判定。最终产出结构化筛查报告。
⚠️ 本清单为方法论整理,不构成投资建议;任何短线策略都有失效期与回撤风险, 实盘前须用模拟盘/小仓位验证,并严守止损与仓位纪律。
何时使用
- 用户给出股票代码(如 603045、600158)要求「短线买点核查 / 是否符合 96 原则」。
- 用户问「下午 2:30 怎么选股」「哪些票符合短线条件」「底部 K 线形态识别」。
- 用户希望把自选股套入纪律化清单做买前复核。(本skill正处于验证阶段,当后期验证命中率达到期許后,会新增自动化量化接口,进行自动化买卖操作,敬请期待)
- 用户如果想获取利好信息和股东持股变动信息以及K线信息,则应该先接入Wind金融数据mcp,或者通达信mcp,接入后skill才能执行相关策略
- 若需使用封装好的一键工作台,请参考【步骤7】 【python <技能目录>/scripts/launch_workbench.py】 #浏览器开 http://127.0.0.1:8765/
工作流
步骤 1 · 抓客观指标并初筛(🌐 自动)
对目标代码运行附带脚本,一次性拿到涨跌幅/量比/换手率/流通市值等,并自动判定 「下午 2:30 选股法」第 1~4 层与「96 原则」第 8、9 条的可量化阈值:
python scripts/fetch_quote.py <代码> --screen
# 例: python scripts/fetch_quote.py 603045 --screen
# 代码支持 603045 / sh603045 / 600158 / sz000001 / 8xxxxx(北交所 bj)
脚本输出含 JSON>>> 行,便于程序化消费;客观结论标记「达标 / 偏弱 / 偏高 / 警惕 / 剔除」。
「去选股」模式(未给具体代码时):若用户要“选股/筛一批票”,先跑全 A 客观四层初筛——
python scripts/select_stocks.py,对全 A(沪/深/创业板/科创板,东方财富push2delay延迟行情)按涨幅降序翻页,过滤涨幅3~5% & 量比≥1 & 换手5~10% & 流通市值50~200亿, 结果写入当前目录candidates.json(含代码/名称/现价/涨幅/量比/换手/流通市值)。 随后用scripts/kline_history.py --top 15 --json(--top自动读candidates.json取量比前 15 只,无需手敲代码)拉新浪日 K 并导出kline_data.json, 最后必须用scripts/report_html.py生成固定版式 HTML 看板报告(版式已锁定,禁止随意改排版,见步骤 6)。 注:东方财富push2delay在本环境可用(腾讯web.ifzq.gtimg.cnK 线接口 bad params、东方财富push2/push2his被墙),单页上限 100 条需翻页。
步骤 2 · 套用 96 原则 · 9 不买(👁 人工)
🔤 术语澄清(重要):「96 原则」= 九不买(买入侧纪律,步骤 2 逐条判定)+ 六不卖(卖出侧纪律,步骤 5 持有判定)。 「6」指 六不卖(6 类应继续持有 / 不卖的情形),非 6 次筛选。 真正负责「筛选」的是**「下午 2:30 选股法」的「八层筛选」(共 8 层)——源文本又称「6 次筛选原则」, 但通读实为步骤 1→8 共 8 道连续筛选**,本清单按此落地为八层(层 1~4 自动 / 层 5~8 人工)。 即本报告执行的是 「九不买」逐条 + 「六不卖」持有判定 + 「八层」筛选,不存在孤立的「6 次筛选」; 六不卖细则与八层映射均已补全,见
references/checklist.md第二、四节。
读取 references/checklist.md 第一节,对 9 类不买逐条判定(下跌趋势、高位放量滞涨、
利好兑现、短期暴涨、大股东减持、基本面问题、破平台、技术走坏、换手异常)。其中
量比>10、换手率>25% 或 <1% 已由脚本在步骤 1 标出,其余需结合 K 线/均线/消息人工判断。
#5/#6 的可自动化部分:#6 的「ST/*ST/退市」可由股票名称自动核查、「亏损」可由 TTM 市盈率(腾讯快照字段 39 / 东方财富 clist 字段 f9)自动判定——这两项目前可在
scripts/select_stocks.py与报告中自动输出;#5 大股东减持、#6 的「业绩预减/违规」 现可由 Wind 金融数据 MCP 公告核查(步骤 2.5)客观化(连接wind-finance时, 减持命中→#5 剔除、监管问询/处罚→#6 剔除);若未连接 Wind,则回落为 👁 并给出人工核查路径(东财/巨潮资讯公告页)。
步骤 2.5 · 公告核查(🌐 Wind 金融数据 MCP,填 #3/#5/#6 缺口)
九不买里 #3 利好兑现 / #5 大股东减持 / #6 业绩预减·违规 以往只能标 👁(沙箱无可达公告接口)。
若环境已连接 wind-finance MCP 连接器,可把这三项客观化:
- 先跑
python scripts/announcements_wind.py --plan生成待查清单announcement_plan.json—— 每只候选 1 个自然语言查询:{公司名} {代码} 最近公告(如「福达合金 603045 最近公告」)。⚠️ 不要用「塞满关键词」的严格查询(如「603045 2026年8月 减持 业绩预告 处罚 违规 公告」), Wind 的 NL 检索对这类常返回空;用「X 最近公告」这种自然宽泛查询最稳,四类信号全部由
--merge的本地关键词扫描覆盖。 - 对每只候选调用
mcp__wind-finance__get_company_announcements(query="{公司名} {代码} 最近公告", top_k=5), 把返回items按 code 归集进wind_raw.json(顶层为[{code, items:[{title,date,content,...}]}])。 - 运行
python scripts/announcements_wind.py --merge→ 生成announcement_check.json(字段:reduction / earnings_warn / penalty / good_news / hits / checked)。 report_html.py读取后自动把 #3/#5/#6 的 👁 翻转为客观判定:减持命中 → 九不买 #5 剔除;监管问询/处罚命中 → 九不买 #6 剔除;回购/增持/中标/合同/重组类利好命中 → #3 提示「利好兑现/出尽风险,需谨慎」;并保留真正主观项(题材/逻辑/分时)的 👁。
🔴 两道防线(缺一不可,已焊进
announcements_wind.py --merge,务必理解其必要性):
防线1 · 标题过滤:Wind 即使 query 是「X 最近公告」,仍可能返回跨公司/基金招募书/指数类噪音条目 (实测曾返回「广发利鑫灵活配置混合型证券投资基金招募说明书」等)。这类条目标题不含本公司名/代码,
--merge会自动丢弃(终端会打印「丢弃跨公司/基金/指数类噪音标题 N 条」)。若不丢,其正文里的 「未受到公开谴责、处罚」等字眼会污染关键词扫描。防线2 · 否定语境守卫:公告极常用自证清白句式——「未受到处罚 / 未被立案 / 不存在…违法违规 / 未涉及重大资产重组…股份回购」。若只扫关键词(处罚/重组/回购),会把这种否定句误判为
penalty=true或good_news=true,导致 #6 误翻「不买」或 #3 误报利好。scan()内对 违规(PENALTY)、 业绩(EARN)、利好(GOOD) 三类均配了*_NEG否定守卫——加新关键词时,务必同步加对应的否定例外。防线3 · 标题类型门控:否定句式变体无穷无尽,靠穷举
*_NEG堵不住。实测漏网: 「独立董事提名人声明与承诺」正文含"没有受过处罚"→ 误判 penalty;「对外担保的进展公告」正文含 "下降/亏损"→ 误判 earnings_warn;「董事辞职暨补选」→ 误判 reduction。 对策:正文关键词只做"确认",标题决定"这份公告到底属不属于这一类"——正文命中必须与RED_TITLE / EARN_TITLE / PEN_TITLE / GOOD_TITLE相符才算数,把"堵漏"变成"白名单"。 ⚠️merge()必须写scan(text, title=title),只传拼接文本会静默退化成无门控模式(曾是真实 bug)。防线4 · 业绩方向判定:业绩预告正文必然出现「上年同期为亏损 XXX 万元」这类对照基准表述, 纯关键词会把扭亏为盈的利好判成业绩预减(实测:银河电子 002519 归母由 -2881 万转 +544 万、 营收 +114%,却被判
earnings_warn→ #6 误剔除)。规则:命中EARN_POS(扭亏为盈/由负转正/ 预计盈利/业绩预增)且无当期预亏表述 → 翻回未触发;且 #6 以【归母】口径判定, 「扣非…仍处于亏损」用 20 字窗口豁免(_cur_loss()),扣非亏损只作质量提示、不硬否决。
--merge另按类别分桶输出hits_reduction / hits_earn / hits_penalty / hits_good, 报告展示理由时取对应桶,避免「判定=减持、理由却是业绩预告」的错配。架构说明:Wind 是 MCP 连接器,由助手(agent)在对话中调用,独立 Python 脚本无法直接调 MCP; 故本步骤的「拉公告」由助手执行,脚本只负责生成查询计划(
--plan)与解析归集(--merge,含上述四道防线)。 若未连接 Wind,announcement_check.json不存在,报告回落到 👁 人工项,不影响其他逻辑。 关键词扫描规则:减持(且未被"未减持/提前终止减持/不减持"否定)、业绩预减/预亏/亏损/同比下降(且非"未亏损"等否定)、处罚/警示函/立案/违规/监管函/问询函(且非"未受到处罚/未被立案"等自证)、中标/合同/重组/回购/增持(且非"未涉及重组/股份回购/增持"等自证否定清单)。
⚠️ 范围边界(硬性):Wind 集成仅限本环境已信任/启用时使用,技能不负责连接、也不引导用户去连接 Wind(受 MCP 信任安全设计限制,AI 无法代点「信任」,故「自动连通」在任意环境都不可行)。新环境若要用 Wind,请先自行在连接器管理页信任
wind-finance,再运行本技能;未配置则自动回落 👁,不影响其他逻辑。任何版本都不得把「自动连接/引导连接 Wind」写回本技能。
步骤 2.6 · 分时强度客观化(🌐 Wind 金融数据 MCP,填八层第 7 层缺口)
「下午 2:30 选股法」第 7 层要求看分时图——强势股应"全天运行在分时均价线上方、跑赢大盘"。
原本只能标 👁。若环境已连接 wind-finance,Wind 的 get_stock_quote / get_index_quote
返回分钟级序列(MATCH=当时价、TURNOVER=该分钟成交额、VOLUME=该分钟成交量),可把"分时强度"客观化
(题材仍须人工,Wind 给不了"今天什么在炒"的主观判断,见下方边界):
🔴 AVPRICE 列陷阱(2026-08-10 实测纠错,勿踩回去):Wind 的
AVPRICE不是分时均价线, 而是该根分钟 bar 自身的 (OPEN+HIGH+LOW+MATCH)/4。验证:① 沪深300 09:30 根 (4698.82+4702.07+4698.82+4701.93)/4 = 4700.41 恰等于 AVPRICE,逐根可复现; ② 15:00 收盘集合竞价是单一价(O=H=L=C),当日 10 只个股的 AVPRICE 与 MATCH 完全相等—— 真正的全日均价线几乎不可能恰好等于收盘价。 误当均价线用时,above_ratio实测的是「收盘价 vs 本分钟中值」,接近抛硬币,第 7 层直接失效。 因此parse_series()已改为自行重建累计均价线:有 TURNOVER/VOLUME → 累计成交额÷累计成交量(真 VWAP,首选); 只有 MATCH → 退化为累计等权均价(近似,实测个别标的above_ratio与真 VWAP 口径可差 8~17pt, 会跨越 45%/60% 判定阈值,故务必带上量额两列)。归集intraday_raw.json时请保留 TURNOVER/VOLUME。
- 先跑
python scripts/intraday_strength_wind.py --plan→ 生成intraday_plan.json: 自动复刻报告深度候选(prio)逻辑(在 kline 中 且 多头/低PE<20/近高<1,按 -vr 取前 10), 输出每只 Wind 代码(自动.SH/.SZ/.BJ转换)与基准指数000300.SH(沪深300)。仅对「重点候选深度卡片」所展示的 prio 票拉分时(与报告卡片严格一致);需先跑
kline_history.py --json。 - 助手对每只 prio 调
mcp__wind-finance__get_stock_quote(windcode=..., begin=数据基准日, end=数据基准日), 并对基准调一次mcp__wind-finance__get_index_quote(windcode="000300.SH", begin=..., end=...), 把每只返回的data对象按intraday_plan结构归集进intraday_raw.json(基准存benchmark,个股存stocks)。 - 运行
python scripts/intraday_strength_wind.py --merge→ 生成intraday_strength.json(above_ratio均价线上方占比、excess跑赢大盘超额收益、above_at_close、verdict强/中/弱、partial是否未收盘)。 report_html.py读取后自动把八层第 7 层「分时强度 👁」翻为客观结论—— 「分时强度:强/中/弱(均价线上方占比 X%、跑赢大盘 +Y%)」;题材仍保留 👁。
判定口径:
verdict=强需 均价线上方占比≥60% 且 跑赢大盘 且 窗口末仍在均价线上方;中为 占比≥45%且跑赢 或 占比≥60%且窗口末在线;其余为弱。所有原始数值均写入 JSON 并在卡片展示,便于人工复核/覆盖。 若当日未收盘(盘中跑),partial=true,卡片标注「盘中快照截至 HH:MM,未收盘」。
⚠️ 范围边界(硬性,同步骤 2.5):本步骤仅限本环境已连接
wind-finance时使用;未连接则intraday_raw.json不存在, 报告自动回落「分时强度 👁」人工项,不影响其他逻辑。任何版本都不得把「自动连接/引导连接 Wind」写回本技能。
步骤 3 · 识别底部 K 线形态(👁 人工)
读取 references/kline_patterns.md,在日 K 上对照 12 种形态(狮子张口、挖坑埋牛、
阴阳鉴攻、回眸一笑、鱼跃龙门、葵花向阳、美人长腿、旭日东升、倒锤头线、希望之星、
岛形反转、上涨分手),命中则记录;单形态必须叠加趋势与量能过滤。
步骤 4 · 走完 2:30 八层筛选(🌐 自动 + 👁 人工)
第 1~4 层已由步骤 1 自动完成;第 5~8 层(量能持续性、均线多头、分时强度+题材、
14:30 创新高回踩均线买点)按 references/checklist.md 第四节人工研判。
趋势 / 均线 / 量能 / 当日 K 线形态的数据支撑:运行
scripts/kline_history.py <代码>拉取新浪日 K,自动算 MA5/10/20、多头排列、近 20 日高低、量能比、当日 K 线要素, 并初判 12 形态中可程序化者(希望之星 / 旭日东升 / 上涨分手 / 葵花向阳 / 美人长腿 / 倒锤头 / 阴阳鉴攻)。需副图(KDJ/CCI)或跳空缺口的形态仍标 👁 人工。 注:腾讯web.ifzq.gtimg.cnK 线接口在本环境返回 bad params、东方财富断连, 历史 K 线统一走新浪;客观快照仍由fetch_quote.py走腾讯qt.gtimg.cn。
步骤 5 · 趋势与纪律研判(含卖出侧六不卖)
- 上升趋势判定:持续创新高 + 回调不破前低;买点类型(回踩均线粘合 / 突破回踩 / 价涨量升)。
- 卖出侧纪律(六不卖):对「已持有」标的,按
references/checklist.md第二节逐条核对 6 类不卖 (趋势强劲 / 热点题材 / 指标向好 / 量能健康 / 逻辑未变 / 未达目标),命中越多越应持有; 仅当破位、逻辑破坏、达止盈或量价背离时才离场。 - 套用「9 条忠告」中的仓位管理与心态纪律。
步骤 6 · 产出筛查报告(🔒 固定 HTML 看板版式)
版式一致性要求(重要):报告输出格式已锁定为「HTML 看板」,由
scripts/report_html.py统一生成,禁止每次自由发挥改排版 / 随意切换 Markdown 或 HTML。该脚本读取同目录candidates.json与kline_data.json,固定渲染统一版式(清爽留白风): ① 顶部 KPI 概览条(候选/剔除/符合/多头排列) → ② 九不买筛查(亏损剔除块常开 + 全候选表可折叠,表格仅用横向分隔线+悬停高亮) → ③ 重点候选纵向分块深度卡片(客观指标/趋势均线/量能K线/九不买逐条/八层/综合结论,左蓝边强调;并内置「六不卖逐只研判 + 下车信号」块:用均线/量能/形态客观判定 4 项、2 项主观标 👁,给出客观命中 X/4 与明确离场条件) → ④ 六不卖规则 3×2 网格(说明 6 类不卖情形,并提示逐只研判见卡片) → ⑤ 综合结论与仓位建议。 这样无论哪次运行、哪个实例,出来的版式都完全一致。
标准产出管线(「去选股」模式,四步串起来跑):
# 1) 全 A 客观四层初筛 → candidates.json + screen_meta.json(已按量比降序)
python scripts/select_stocks.py # 默认: 当天;非交易日自动回退最近交易日
# python scripts/select_stocks.py --date 2026-08-07 # 也可指定意图日期
# 2) 自动取量比居前 15 只拉新浪日 K 并导出 kline_data.json(--top 自动读 candidates.json,无需手敲代码)
python scripts/kline_history.py --top 15 --json
# 3) 公告核查(可选·推荐;需 wind-finance 已连接):先 --plan 生成查询清单,
# 助手逐只调 mcp__wind-finance__get_company_announcements 拉公告归集进 wind_raw.json,
# 再 --merge → announcement_check.json(把 #3/#5/#6 的 👁 翻转为客观判定)
python scripts/announcements_wind.py --plan
python scripts/announcements_wind.py --merge
# 3.5) 分时强度客观化(可选·推荐;需 wind-finance 已连接):先 --plan 生成 prio 分时清单,
# 助手逐只调 get_stock_quote + 一次 get_index_quote(沪深300) 归集进 intraday_raw.json,
# 再 --merge → intraday_strength.json(把八层第7层「分时强度 👁」翻为客观结论;题材仍 👁)
python scripts/intraday_strength_wind.py --plan
python scripts/intraday_strength_wind.py --merge
# 4) 生成固定版式 HTML 看板 → 筛查报告_<数据日期>.html
python scripts/report_html.py
整条管线不写死任何日期或代码:
select_stocks.py入口自动解析日期——不加--date默认按当天,当天为周末/休市则回退到最近交易日(用新浪日K锚定真实交易日,结果写入screen_meta.json);kline_history.py取最近 45 个交易日(按日期升序动态截取),--top N自动从candidates.json取量比前 N 只——换任意交易日直接重跑即可。
报告内容覆盖:references/checklist.md 第八节模板的要素(客观指标表含阈值与结论、
96 原则逐条、K 线形态命中、2:30 八层结果、趋势研判、综合结论 + 明确风险提示与仓位建议),
只是以固定 HTML 看板承载。
步骤 7 · 实时工作台(🌐 一键自刷新,推荐日常用)
前 6 步产出的是固定版式 HTML 看板报告(一次性快照)。若要反复刷新、实时看盘,用内置的
实时工作台——一个零依赖的本地 Python 服务(workbench_server.py + workbench_realtime.html),
把看板变成可交互、可一键重跑的活页面。
启动(在你的任意工作目录里执行一次即可,之后只点刷新):
# 方式一:一键启动器(自动把服务脚本同步到当前目录并拉起)
python <技能目录>/scripts/launch_workbench.py # 默认端口 8765
python <技能目录>/scripts/launch_workbench.py 9000 # 自定义端口
# 方式二:手动(先 cd 到工作目录,再启动)
python <技能目录>/scripts/workbench_server.py 8765
启动后浏览器打开 http://127.0.0.1:8765/(换端口改对应数字)。
数据怎么刷新(关键:无需 Agent):
- 页面上的「🔄 实时重新筛查」按钮 → 后端自动跑 ① 东财初筛(select_stocks.py) + ② 新浪日K(kline_history.py) + ③ 东财分时强度自取(内嵌 push2delay) + ④ 合并(intraday_strength_wind.py --merge), 约 60~120 秒后页面整体刷新(盘中跑即盘中快照,收盘后跑即全天分时)。 即:初筛 / 日K / 分时强度 三项全部自服务,不再需要助手手动拉 Wind。
- 「↻ 刷新」按钮 = 只读当前盘上快照(不重跑),用于 Agent 另跑了公告核查后即时看到。
分工边界(与步骤 2.5/2.6 一致):
- 分时强度:工作台自取东财(push2delay 分钟序列,重建 VWAP 均价线,与 Wind 版判定口径一致),不依赖 Wind。
- 公告核查(九不买 #3/#5/#6):仍由 Wind/Agent 写
announcement_check.json(Wind MCP 仅 Agent 可调,属硬性边界); 未跑时工作台自动回落 👁 人工项,不影响其他逻辑。想刷新它,对 Agent 说「跑 Wind 核查」即可。
工作台判定逻辑(verdict / 九不买 / 仓位买卖纪律 / 六不卖)严格复用本技能的
report_html.py, 与筛查报告结论零偏差;仅呈现形态为可交互活页面。部署为本地服务(127.0.0.1), 不上公网——如需团队共享,请在本机启动后内网访问,或自行用反向代理发布(超出本技能范围)。
资源
scripts/fetch_quote.py— 腾讯财经实时行情抓取与客观指标初筛(仅用标准库 urllib,无需安装依赖;GBK 解码,字段索引已实测)。scripts/kline_history.py— 新浪日 K 历史研判:MA5/10/20、多头排列、量能比、当日 K 线形态初判(趋势/均线/形态的数据支撑,仅标准库 urllib)。加--json时导出kline_data.json供报告生成器消费(标准管线第 2 步)。scripts/report_html.py— 生成固定版式 HTML 看板。九不买 #6 的 ST 校验由is_st()按名称含 "ST" 判定(含 *ST/SST),直接判「不买」,并联动剔除标签、综合结论与表头类别(历史 bug:文案写"非 ST"却从未校验,ST京蓝 000711 曾被判「观察」)。scripts/announcements_wind.py— 公告核查辅助(标准管线第 3 步,需wind-financeMCP 已连接):--plan读candidates.json+screen_meta.json生成待查清单announcement_plan.json(每只 1 个自然语言查询{公司名} {代码} 最近公告,四类信号由--merge本地扫描覆盖,无需多查询);--merge读助手归集的wind_raw.json(Wind 原始返回,按 code 归集 items)做关键词扫描,输出announcement_check.json(reduction/earnings_warn/penalty/good_news/hits/checked)。内置四道防线:① 标题过滤——只保留标题含本公司名/代码的条目,丢弃跨公司/基金招募书/指数噪音;② 否定语境守卫——公告自证句("未受到处罚/未被立案/未涉及重组/股份回购"等)不误判 penalty/good_news。③ 标题类型门控——正文命中须与标题类型相符(merge必须传title=,否则静默退化);④ 业绩方向判定——扭亏为盈/由负转正不判预减,#6 以归母口径、扣非亏损豁免。并按类别分桶输出hits_reduction/hits_earn/hits_penalty/hits_good供报告取对应理由。报告据此把九不买 #3/#5/#6 的 👁 翻转为客观判定(减持→#5 剔除、监管问询/处罚→#6 剔除、回购/增持/中标/合同/重组→#3 利好兑现提示)。scripts/select_stocks.py— 全 A 客观四层初筛(「去选股」模式):东方财富push2delay翻页,过滤涨幅3~5%/量比≥1/换手5~10%/流通50~200亿,结果写candidates.json(标准管线第 1 步)。日期自动解析:不加--date默认按当天、非交易日回退最近交易日,解析结果(含是否回退标记)写入screen_meta.json,供报告标注数据基准日。scripts/report_html.py— 固定版式 HTML 看板报告生成器(标准管线第 4 步):读取candidates.json+kline_data.json+announcement_check.json+intraday_strength.json,统一渲染「KPI 概览 + 可折叠候选表 + 纵向分块深度卡片(含内置『六不卖逐只研判 + 下车信号』块)+ 六不卖规则网格 + 综合结论」的清爽版式。已焊进的几条渲染纪律(禁止改回):① 深度卡片「综合结论」随verdict()联动——不买→红色「量化九不买未通过(触发项)→ 回避」、观察→「需谨慎」、符合→「全过」,不得再硬编码"全过";② KPI「九不买剔除」标签按实际剔除类别动态生成(亏损#6/减持#5/违规/监管#6),不得写死"亏损";③ 剔除表理由用与卡片一致的触发项拼法;④ 三大正面梯队(干净多头/低估值PE<20/深跌反弹)过滤掉verdict=不买的标的,避免把已剔除股误列进"优先关注";⑤ 八层第 7 层「分时强度」随intraday_strength.json联动——连 Wind 时翻为「强/中/弱(均价线上方占比 X%、跑赢大盘 +Y%)」自动结论,题材保留 👁,未连 Wind 回落 👁。报告格式锁定于此,禁止每次改排版。scripts/intraday_strength_wind.py— 分时强度客观化(标准管线第 3.5 步,需wind-financeMCP 已连接):--plan读candidates.json+kline_data.json(复刻报告 prio 深度候选逻辑)+screen_meta.json(数据基准日),生成intraday_plan.json(每只自动转 Wind 代码.SH/.SZ/.BJ+ 基准000300.SH沪深300);助手逐只调mcp__wind-finance__get_stock_quote(个股)+ 一次get_index_quote(沪深300)归集进intraday_raw.json(基准存benchmark、个股存stocks,均存 Wind 返回的data对象);--merge解析分钟序列(MATCH=当时价、AVPRICE=分时均价线)算「均价线上方占比 above_ratio / 跑赢大盘超额收益 excess / 收盘是否在线 above_at_close / verdict 强·中·弱 / partial 是否未收盘」,输出intraday_strength.json。报告据此把八层第 7 层「分时强度 👁」翻为自动结论(强:占比≥60%且跑赢且窗口末在线;中:占比≥45%且跑赢 或 占比≥60%且窗口末在线;弱:其余),题材仍 👁。未连 Wind 时intraday_raw.json缺失,报告回落 👁。scripts/workbench_server.py— 实时工作台后端(零依赖,仅标准库):GET /服务workbench_realtime.html;/api/run一键自跑 东财初筛 + 新浪K线 + 东财分时自取 + 合并,返回 payload;/api/data只读当前快照。判定逻辑严格复用report_html.py(verdict/九不买/仓位纪律/六不卖零偏差)。分时强度内嵌东财push2delay自取(重建 VWAP),不依赖 Wind。scripts/workbench_realtime.html— 实时工作台前端:KPI 概览 + 可筛选/排序候选表 + 深度抽屉卡片(九不买逐条 / 八层 / 六不卖 / 买卖仓位纪律),点「🔄 实时重新筛查」整体自刷新。scripts/launch_workbench.py— 一键启动器:把workbench_server.py/workbench_realtime.html同步到当前工作目录并拉起本地服务(127.0.0.1:8765),便于反复使用。references/checklist.md— 方法论详版:核心口诀、96 原则 9 不买、2:30 八层筛选、上升趋势、9 条忠告、数据字段映射、报告模板、风险声明。references/kline_patterns.md— 12 种底部/上涨中继 K 线形态识别规则。
注意事项
- 客观指标为某一时刻快照,尾盘选股应在14:30 之后再抓一次以贴近实战。
- 脚本覆盖可量化项;形态、趋势仍须人工把关;分时强度已由 Wind 分钟行情客观化(需连接
wind-finance,未连则回落 👁),题材仍须人工(Wind 给不了"今天什么在炒"的主观判断)。 - 字段索引基于腾讯
qt.gtimg.cn接口实测(2026-08),如接口调整需同步更新脚本parse()中的索引。
已知缺口 / 待补
- #5 大股东减持 / #6 业绩预减·违规的公告自动核查:已由 Wind 金融数据 MCP 填补(步骤 2.5)。
连接
wind-finance时,助手调mcp__wind-finance__get_company_announcements拉公告、announcements_wind.py --merge解析, 报告把 #3/#5/#6 的 👁 翻转为客观判定(减持→#5 剔除、监管问询/处罚→#6 剔除)。 若未连接 Wind,则回落为 👁 并给出人工路径(东财/巨潮资讯公告页)。 - 分时强度(八层第 7 层)客观化:
- 日常最省事:用「步骤 7 · 实时工作台」——工作台内置东财
push2delay分钟序列自取(重建 VWAP 均价线,与 Wind 版判定口径一致),无需 Wind / 无需 Agent,点「实时重新筛查」即刷新。 - 若坚持走 Wind 分钟行情(步骤 2.6):连接
wind-finance时,助手调get_stock_quote(个股)+get_index_quote(沪深300 基准)、intraday_strength_wind.py --merge算「均价线上方占比 + 跑赢大盘超额收益」,报告把「分时强度 👁」翻为 强/中/弱 自动结论;题材仍 👁(主观)。 - 两者均未跑(既没开工作台也没连 Wind)→ 报告/工作台回落 👁 人工项。
- 日常最省事:用「步骤 7 · 实时工作台」——工作台内置东财
- 尾盘 14:30 实时快照:客观指标为收盘/延迟快照,实战须在 14:30 后重抓(见步骤 1 说明)。
版本记录
- v1.0.4(2026-08-21)
- 新增「步骤 7 · 实时工作台」:把
workbench_server.py+workbench_realtime.html+launch_workbench.py收编进技能scripts/,作为一键自刷新的活页面。 - 工作台「实时重新筛查」后端自取东财分时强度(push2delay 分钟序列 → 重建 VWAP →
intraday_strength_wind.py --merge),不再依赖 Wind / Agent;初筛(select_stocks) + 日K(kline_history) 亦一并自跑。公告核查(#3/#5/#6) 仍保留 Wind/Agent 写盘或 👁 回落(硬性边界不变)。 launch_workbench.py把服务脚本同步到用户工作目录并拉起本地服务(127.0.0.1:8765),数据文件落在该目录,重启用同一命令即可。
- 新增「步骤 7 · 实时工作台」:把
- v1.0.3(2026-08-10)
- 新增「步骤 2.6 · 分时强度客观化(🌐 Wind 金融数据 MCP)」:
intraday_strength_wind.py复用 Windget_stock_quote(个股)+get_index_quote(沪深300 基准)的分钟序列(MATCH=当时价、AVPRICE=分时均价线),把八层第 7 层「分时强度 👁」翻为 强/中/弱 自动结论(均价线上方占比 + 跑赢大盘超额收益),题材仍 👁。 - 判定口径:强=占比≥60%且跑赢且窗口末在线;中=占比≥45%且跑赢 或 占比≥60%且窗口末在线;弱=其余。原始数值全写入
intraday_strength.json并在卡片展示,便于人工复核。 - 报告
report_html.py焊入渲染纪律⑤:八层第 7 层「分时强度」随intraday_strength.json联动(连 Wind 翻自动结论、题材保留 👁、未连回落 👁);顶部说明与 foot 同步标注「Wind 分时强度」。 - 沿用硬性边界:仅限本环境已连
wind-finance;未连自动回落 👁,任何版本不写「自动/引导连接 Wind」。
- 新增「步骤 2.6 · 分时强度客观化(🌐 Wind 金融数据 MCP)」:
- v1.0.2(2026-08-09)
- 公告核查
announcements_wind.py把「两道防线」从人工纪律升级为代码强制:- 防线1 标题过滤写进
--merge:只保留标题含本公司名/代码的条目,自动丢弃跨公司/基金招募书/指数类噪音(终端打印丢弃条数)。 - 防线2 否定语境守卫已覆盖 违规(PENALTY)/业绩(EARN)/利好(GOOD) 三类(
*_NEG),公告自证句不再误判。 --plan改为每只候选 1 个查询{公司名} {代码} 最近公告(原"2 个查询"已废弃;四类信号由--merge本地扫描覆盖)。good_news正则新增回购|增持(回购方案/实控人增持属明确利好,#3 提示利好兑现风险)。
- 防线1 标题过滤写进
- 报告
report_html.py焊入渲染纪律(禁止改回):① 综合结论随verdict()联动(不买红边"未通过→回避"、观察"需谨慎"、符合"全过"),消除"结论与判定自相矛盾";② KPI「九不买剔除」标签按实际类别动态生成(亏损#6/减持#5/违规/监管#6),不再写死"亏损";③ 剔除表理由与卡片触发项一致;④ 三大正面梯队(多头/低估值/深跌反弹)过滤掉不买标的,避免把已剔除股误列进"优先关注"。 - 触发句式补充「Wind 公告客观化」相关描述。
- 公告核查
- v1.0.1(早期):初版 96 原则 / 八层 / 六不卖 / 12 形态核查清单 + 腾讯财经客观指标初筛 + 固定 HTML 看板版式。
Scan to join WeChat group