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

连板双池

卡位票池和超预期票池

person作者: user_472830ffhubcommunity

连板双池 · 10 日回溯(board-pool-retro)

一、这是什么 / 何时用

  • 任务:给定 T 日(默认=今日),往前回看 N 个交易日(默认 10),逐日重建「连板双池」——
    • 超预期主池(弱转强 + 同板块集群 N≥3 + 终封领先)
    • 卡位池(同板块次序反超:今 S 终封 < 今 R 终封 且 昨 S 终封 > 昨 R 终封)
  • 触发:用户说「往前 X 日有没有符合入池的」「连板双池回溯」「把双池历史跑一下」「10 日回溯」。
  • 与 merged-board-pool 的区别:单日版(merged-board-pool)只跑 T 日且强依赖分时终封;本技能跑窗口主池改用纯换手率路径,从而让 08-11~08-19 这类无分时数据的早段日期也能评估主池(这是 10 日回溯可行的关键)。

二、核心方法论(务必理解)

2.1 超预期主池 —— 换手率路径(全窗口适用,不依赖分时)

对窗口内每一天 D,取该日连板宇宙(LimitUpDays≥2,剔除 ST / 北交所),逐只判定:

昨换手 ex_y = 该股 D 的前一交易日 exchange(换手率 %)
今换手 ex_t = 该股 D 日 exchange
近5日均 avg5 = 该股窗口内除 D、D_prev 外其它日 exchange 均值(不足则用 ex_y)

y_weak(昨日弱/分歧板)= ex_y ≥ 8.0  或  (avg5>0 且 ex_y ≥ 1.5×avg5)
t_strong(今日强结构)  = ex_t ≤ ex_y
w2s = y_weak 且 t_strong

同板块当日涨停家数 N = D 日连板宇宙中同 sector 的只数
入主池条件 = w2s 且 N ≥ 3:
  - 若 N ≤ 3 → 终封排名自动 ≤3 → 直接【确认入池】
  - 若 N > 3 → 需终封排序 ≤3;有分时(minute)则算 rank,无分时则标记【代理确认(待补数)】

阈值与 merged-board-pool surprise.py 对齐:WEAK_EXCHANGE=8.0、WEAK_EXCHANGE_MULT=1.5、SECTOR_LIMITUP_MIN=3、SECTOR_LEAD_MAX_RANK=3。

2.2 卡位池 —— 依赖分时终封(仅窗口内可严格验证)

判定算法同 merged-board-pool card.py 两情形(见下文「严格验证」)。data_minute 有硬窗口限制(见坑③),只有「D 与 D_prev 同时落在可取值窗口内」的日期能严格验证;其余日期只能给代理判断(通常空/稀疏)。

2.3 严格验证(卡位两情形,基于 final_seal)

final_seal = locktime.py 由分时重建的「最后连续封板段起点」(一字板→09:30)

情形一(连板天数不同):R = 同板块更高板那只
  成立 ⇔ (今 S 终封 < 今 R 终封) 且 (昨 S 终封 > 昨 R 终封)
情形二(连板天数相同):R = 同梯队昨日终封更早(前位)那只
  成立 ⇔ (今 S 终封 < 今 R 终封) 且 (昨 S 终封 > 昨 R 终封)

三、数据获取(全部经 westock-mcp,Agent 取数落盘,脚本纯计算)

用 ToolSearch 加载 westock-mcp schema,再用 DeferExecuteTool 调用。所有原始返回存到 <workdir>/raw/ 下。

| 工具 | 参数 | 落盘路径 | 说明 | |---|---|---|---| | tool_ranking | metric=limitup_days, date=YYYYMMDD | raw/ranking/<YYYYMMDD>.json | 取该日连板排名。务必带 date 参数(不带则 T+1 滞后)。窗口首日前再取一个更早交易日作 prev 锚点。 | | data_profile | code | raw/profile/<code>.json | 取板块(sector)。按码缓存,跨日期复用。 | | data_kline | code, period=day, limit=窗口长度+2 | raw/kline/<code>.json | 取日线,exchange 字段=换手率%,需覆盖整个窗口。 | | data_minute | code, days=K | raw/minute/<code>.json | 分时,用于重建 final_seal。仅最近 ~5 交易日有效(见坑③)。 |

窗口内每只连板股的 code 都需 data_profile + data_klinedata_minute 仅对最末尾少数几天(D 与 D_prev 都在可取窗口)取,用于卡位严格验证。

四、运行(脚本链式,均 python scripts/xxx.py <workdir>

# 1) 建连板宇宙 + 板块 + 换手率映射
python scripts/build_universe.py <workdir>
# 2) 主池:纯换手率路径(全窗口)
python scripts/screen_surprise.py <workdir>
# 3) 卡位:有分时则严格验证,否则代理
python scripts/screen_card.py <workdir>
# 4) 汇总 + 生成 HTML 报告
python scripts/gen_report.py <workdir>
# 或一条龙:
python scripts/run_retro.py <workdir>

产物:work/universe.json / work/surprise.json / work/card.json / report.html

screen_card.pygen_report.py 通过 sys.path 复用 ../merged-board-pool/scripts/locktime.py需 merged-board-pool 技能已存在(默认在用户技能目录下,确已安装)。

五、输出(report.html)

  • 结论速览:超预期主池 / 卡位池 两张独立卡片,分别列出成分股、日期、板块、N、判定标签(确认/代理/边际)。
  • 主池明细表、卡位严格验证表(含今/昨 S、R 终封对比)、10 日滚动池汇总、风险提示。
  • 配色:A 股红涨绿跌(红 #dc2626 / 绿 #16a34a)。

六、已知坑(务必先读,已实测)

  1. tool_ranking T+1 滞后:不带 date 时返回的是上一交易日数据。回溯必须带 date 参数取目标日。
  2. date 格式:排名文件名用 YYYYMMDD,kline/profile 内 date 可能是 YYYY-MM-DDYYYYMMDDbuild_universe.py 已统一归一为 YYYY-MM-DD
  3. ⚠️ data_minute 无 date 参数、且只返回最近 ~5 交易日days=4 实测仅回最近 4 日(08-20/21/24/25),days=16 也仅 5 日。早段日期(如 08-11~08-19)的「昨日/今日」分时无法取回 → 这些日的卡位无法严格验证,主池仍可走换手率路径。
  4. 一字板:final_seal=09:30;若两股昨日均为一字板(终封均 09:30 平局)→ 情形二无明确前位 → 卡位不成立。
  5. N>3 需终封排序:主池 N>3 时,rank≤3 必须靠分时终封排序;无分时则只能「代理确认」,不得直接判确认。
  6. ST / 北交所剔除:code 以 bj/8/4 开头或名称含 ST 已剔除。

七、参考实例(2026-08-11 ~ 08-25 实测)

  • 超预期主池 5 只:华东数控(sz002248,08-11)、旭光电子(sh600353,08-17)、京粮控股(sz000505,08-19)、金健米业(sh600127,08-19) 4 只确认(N=3);天山生物(sz300313,08-18,N=5) 代理(分时不可取)。
  • 卡位池 1 只边际:08-24 东信和平(sz002017) 卡位 楚天龙(sz003040),通信均 2 板,差距仅 1 分钟(含 locktime 0.021 容差),需人工复核。
  • 今日 08-25:双池 0 入池(8 只连板板块全互异)。

本技能的方法口径与 merged-board-pool 一致;回溯脚本 screen_surprise.py 的换手率路径是 10 日可行化关键。