返回 Skill 列表
extension
分类: 数据与分析无需 API Key

kline-shortterm-checklist

A 股短线(日/尾盘)选股与买点核查清单技能。当用户想用技术分析纪律筛选 A 股短线标的、评估某只股票是否符合「96 原则(九不买+六不卖)/ 下午 2:30 选股法(八层筛选)/ 底部 K 线形态」、或为自选股做纪律化买前/持有核查时使用。覆盖 9 类不买、6 类不卖、12 种底部形态、八层 2:30 筛选、上升趋势研判与心态纪律,并能调用腾讯财经 API 自动拉取涨跌幅/量比/换手率/流通市值等客观指标做初筛。触发句式:「用 K 线短线选股清单筛一下」「这只票符合 96 原则吗」「下午 2:30 怎么选」「检查 603045 的短线买点」「底部 K 线形态识别」「短线选股检查清单」。

person作者: user_e6c4341bhubcommunity

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.cn K 线接口 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 连接器,可把这三项客观化:

  1. 先跑 python scripts/announcements_wind.py --plan 生成待查清单 announcement_plan.json—— 每只候选 1 个自然语言查询{公司名} {代码} 最近公告(如「福达合金 603045 最近公告」)。

    ⚠️ 不要用「塞满关键词」的严格查询(如「603045 2026年8月 减持 业绩预告 处罚 违规 公告」), Wind 的 NL 检索对这类常返回空;用「X 最近公告」这种自然宽泛查询最稳,四类信号全部由 --merge 的本地关键词扫描覆盖。

  2. 对每只候选调用 mcp__wind-finance__get_company_announcements(query="{公司名} {代码} 最近公告", top_k=5), 把返回 items 按 code 归集进 wind_raw.json(顶层为 [{code, items:[{title,date,content,...}]}])。
  3. 运行 python scripts/announcements_wind.py --merge → 生成 announcement_check.json(字段:reduction / earnings_warn / penalty / good_news / hits / checked)。
  4. report_html.py 读取后自动把 #3/#5/#6 的 👁 翻转为客观判定:减持命中 → 九不买 #5 剔除监管问询/处罚命中 → 九不买 #6 剔除回购/增持/中标/合同/重组类利好命中 → #3 提示「利好兑现/出尽风险,需谨慎」;并保留真正主观项(题材/逻辑/分时)的 👁。

🔴 两道防线(缺一不可,已焊进 announcements_wind.py --merge,务必理解其必要性)

  • 防线1 · 标题过滤:Wind 即使 query 是「X 最近公告」,仍可能返回跨公司/基金招募书/指数类噪音条目 (实测曾返回「广发利鑫灵活配置混合型证券投资基金招募说明书」等)。这类条目标题不含本公司名/代码--merge 会自动丢弃(终端会打印「丢弃跨公司/基金/指数类噪音标题 N 条」)。若不丢,其正文里的 「未受到公开谴责、处罚」等字眼会污染关键词扫描。

  • 防线2 · 否定语境守卫:公告极常用自证清白句式——「未受到处罚 / 未被立案 / 不存在…违法违规 / 未涉及重大资产重组…股份回购」。若只扫关键词(处罚/重组/回购),会把这种否定句误判为 penalty=truegood_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。

  1. 先跑 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

  2. 助手对每只 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)。
  3. 运行 python scripts/intraday_strength_wind.py --merge → 生成 intraday_strength.jsonabove_ratio 均价线上方占比、excess 跑赢大盘超额收益、above_at_closeverdict 强/中/弱、partial 是否未收盘)。
  4. 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.cn K 线接口在本环境返回 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.jsonkline_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/Agentannouncement_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-finance MCP 已连接)--plancandidates.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-finance MCP 已连接)--plancandidates.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)→ 报告/工作台回落 👁 人工项。
  • 尾盘 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),数据文件落在该目录,重启用同一命令即可。
  • v1.0.3(2026-08-10)
    • 新增「步骤 2.6 · 分时强度客观化(🌐 Wind 金融数据 MCP)」:intraday_strength_wind.py 复用 Wind get_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」
  • v1.0.2(2026-08-09)
    • 公告核查 announcements_wind.py 把「两道防线」从人工纪律升级为代码强制:
      • 防线1 标题过滤写进 --merge:只保留标题含本公司名/代码的条目,自动丢弃跨公司/基金招募书/指数类噪音(终端打印丢弃条数)。
      • 防线2 否定语境守卫已覆盖 违规(PENALTY)/业绩(EARN)/利好(GOOD) 三类(*_NEG),公告自证句不再误判。
      • --plan 改为每只候选 1 个查询 {公司名} {代码} 最近公告(原"2 个查询"已废弃;四类信号由 --merge 本地扫描覆盖)。
      • good_news 正则新增 回购|增持(回购方案/实控人增持属明确利好,#3 提示利好兑现风险)。
    • 报告 report_html.py 焊入渲染纪律(禁止改回):① 综合结论随 verdict() 联动(不买红边"未通过→回避"、观察"需谨慎"、符合"全过"),消除"结论与判定自相矛盾";② KPI「九不买剔除」标签按实际类别动态生成(亏损#6/减持#5/违规/监管#6),不再写死"亏损";③ 剔除表理由与卡片触发项一致;④ 三大正面梯队(多头/低估值/深跌反弹)过滤掉 不买 标的,避免把已剔除股误列进"优先关注"。
    • 触发句式补充「Wind 公告客观化」相关描述。
  • v1.0.1(早期):初版 96 原则 / 八层 / 六不卖 / 12 形态核查清单 + 腾讯财经客观指标初筛 + 固定 HTML 看板版式。