AgentSkillsCN

baostock-guide

筛选A股可转债的下修策略标的。当用户询问可转债筛选、下修策略、转债推荐、低价转债,或困境反转转债时,可调用此技能。支持按价格区间、盈利状态、下修历史、剩余年限等维度进行筛选,并生成投资建议。

SKILL.md
--- frontmatter
name: baostock-guide
description: 股东人数批量筛选与查询工具。当用户需要筛选股东人数连续减少的股票、查询单股股东人数历史、庄股筛选、筹码集中度分析时使用此技能。也包含Baostock复权参数说明和K线数据获取指南。

Baostock 使用指南

复权参数 (adjust_flag) 注意事项

使用 get_historical_k_data 获取K线数据时,adjust_flag 参数的含义如下:

adjust_flag英文中文说明
1Forward adjusted后复权以上市首日为基准,累计所有分红送转,价格会比实际价格高
2Backward adjusted前复权以最新价格为基准向前调整,价格与当前实际价格接近
3Non-adjusted不复权实际交易价格

⚠️ 常见错误

不要把 "Forward adjusted" 误认为是"前复权"!

  • Forward adjusted (adjust_flag=1) = 后复权
  • Backward adjusted (adjust_flag=2) = 前复权

验证方法

如果对某只股票的复权价格有疑问,可以:

  1. 使用 get_adjust_factor_data 查看复权因子(backAdjustFactor)
  2. 使用 get_dividend_data 查看历史分红送转记录
  3. 后复权价格 ≈ 不复权价格 × backAdjustFactor

示例

如果一只股票历史上有过 10转10(2015年)和 10转15(2018年),累计复权因子约为 2 × 2.5 = 5 倍,后复权价格会是实际价格的5倍左右,这是正常的。


筛选"庄股"(类花园生物)的原则

寻找具有明显庄家操盘特征、适合波段操作的股票时,可参考以下筛选条件:

核心筛选条件

条件说明具体指标
波幅大单轮涨跌幅度要足够大单波涨跌幅 20%-40%
周期长每轮波段持续时间较长每轮 1-2个月(4-8周)
换手率高有明显资金运作痕迹周换手率峰值 15%+,平均 10%+
箱体震荡非单边趋势,年初年末价格接近年度涨跌幅 ±25% 以内
🔥放量阶段性高点一年内多次放量冲高≥3次 放量高点,每次间隔 2-5个月

放量阶段性高点检测(核心指标)

庄股最典型的特征是周期性的"拉升-出货"循环,体现为:

  1. 阶段性高点:周线上比前后3周都高的价格点
  2. 放量确认:高点前后一周内有至少2天量比≥1.5
  3. 间隔合理:每个放量高点之间间隔8-22周(约2-5个月)
  4. 次数要求:一年内至少出现3次这样的放量高点
code
典型庄股K线形态:

价格  ^    放量高点1     放量高点2     放量高点3
      |       /\           /\           /\
      |      /  \         /  \         /  \
      |     /    \       /    \       /    \
      |    /      \     /      \     /
      |   /        \___/        \___/
      +-----------------------------------------> 时间
          |<- 2-5月 ->|<- 2-5月 ->|

排除条件

  • 单边上涨:年涨幅超过50%,持续创新高
  • 单边下跌:年跌幅超过30%,持续创新低
  • 波幅太小:单波涨跌幅不足15%
  • 周期太短:每轮不足3周
  • ST股票:退市风险高(除非特别说明)

验证方法

  1. K线形态:使用 get_historical_k_data(前复权,adjust_flag=2)获取周线数据
  2. 换手率:关注 turn 字段,高换手通常对应价格转折点
  3. 放量阶段性高点(核心验证):
    • 在周线图上识别阶段性高点(比前后3周都高)
    • 检查高点附近日线是否有放量(量比≥1.5的天数≥2)
    • 验证高点间隔是否在2-5个月(8-22周)
    • 一年内至少3个放量高点才符合庄股特征
  4. AI二次确认:脚本会输出高点时间线,人工或AI确认:
    • 高点是否真正形成头部形态
    • 放量是否伴随价格滞涨或下跌(出货特征)
    • 间隔是否符合庄家操盘节奏
  5. 股东人数:通过东方财富等渠道查看股东人数变化
    • 股东减少 + 股价上涨 = 庄家吸筹
    • 股东增加 + 股价下跌 = 庄家出货

典型案例

股票代码箱体区间单波幅度波段周期
花园生物30040113-17元20-35%3-6周
联诚精密00292110-19元25-70%4-8周
超频三3006474.3-8.4元19-33%3-13周
尔康制药3002672.1-4.8元20-106%2-14周
民和股份0022347.8-10.7元14-37%3-12周
仙坛股份0027465.2-6.8元15-30%4-10周
雅本化学3002615.3-9.1元15-63%3-10周

股东人数查询

查询股票的股东人数变化历史,用于分析庄家吸筹/出货行为。

使用方法

bash
cd /Users/rjwang/fun/a-share && source .venv/bin/activate

# 按代码查询(默认最近16期)
python .github/skills/baostock-guide/scripts/query_shareholders.py 300401

# 按名称查询
python .github/skills/baostock-guide/scripts/query_shareholders.py 花园生物

# 指定期数(如最近20期)
python .github/skills/baostock-guide/scripts/query_shareholders.py 300401 20

Python API

python
import akshare as ak

# 查询股东人数历史
df = ak.stock_zh_a_gdhs_detail_em(symbol="300401")

# 返回字段:
# - 股东户数统计截止日
# - 股东户数-本次、股东户数-上次、股东户数-增减、股东户数-增减比例
# - 区间涨跌幅
# - 户均持股市值、户均持股数量
# - 股东户数公告日期

信号解读

股东变化股价变化信号含义
减少上涨/稳定🟢 吸筹筹码集中,庄家建仓
增加下跌🔴 出货筹码分散,庄家派发
大幅减少横盘🟡 洗盘震荡吸筹,准备拉升

示例输出

code
================================================================================
花园生物 (300401) 股东人数变化
================================================================================

     统计截止日   股东人数     增减 增减比例(%) 区间涨跌(%) 户均市值(元)
2025-12-31 26,228 -3,695  -12.35   -2.26 313,301
2025-12-19 29,923 +1,603   +5.66   +8.03 280,970
...

【趋势分析】
  最新股东人数: 26,228
  最新变化: -3,695 (-12.35%)
  统计期内: 减少8期, 增加8期
  累计变化: -7,187 (-21.52%)

【信号判断】
  🟢 吸筹信号:近期股东持续减少且股价稳定/上涨

批量筛选股东人数减少的股票

筛选全市场股东人数减少的股票,发现潜在吸筹标的。

技术实现

基于 Playwright 浏览器自动化,直接访问东方财富网获取最新数据。

  • 自动翻页获取全市场5000+只股票
  • 支持市值、减少比例等多维度过滤
  • 浏览器复用机制,连续调用更高效

使用方法

bash
cd /Users/rjwang/fun/a-share && source .venv/bin/activate

# 默认:筛选减少>5%的股票
python .github/skills/baostock-guide/scripts/screen_shareholders.py

# 筛选减少>10%,市值30-150亿
python .github/skills/baostock-guide/scripts/screen_shareholders.py -m 10 --min-cap 30 --max-cap 150

# 输出JSON格式(AI友好)
python .github/skills/baostock-guide/scripts/screen_shareholders.py --json 2>/dev/null

# 不保存CSV
python .github/skills/baostock-guide/scripts/screen_shareholders.py --no-save

# 执行完关闭浏览器
python .github/skills/baostock-guide/scripts/screen_shareholders.py --close

参数说明

参数说明默认值
-m, --min-decrease最小减少比例(%)5.0
--max-announce-age公告日期最大天数3
--max-age统计截止日最大天数10
--min-cap最小市值(亿)
--max-cap最大市值(亿)
--json输出JSON到stdout
--no-save不保存CSV保存
--close执行完关闭浏览器保持打开
-o, --output输出文件名screened_shareholders_v2.csv

输出文件

screened_shareholders_v2.csv(项目根目录)

示例输出

code
============================================================
股东人数筛选工具 v2 (Playwright)
运行时间: 2026-02-03 23:00:03
筛选条件: 减少>10.0%, 公告<3天, 统计截止<10天
市值范围: >30.0亿 & <150.0亿
============================================================
启动浏览器...
获取股东人数数据...
获取到 5469 只股票数据(共11页)
============================================================
开始筛选...
  全部股票: 5469 只
  筛选后: 31 只

============================================================
【筛选结果】共 31 只
============================================================

代码       名称              股东数       增减     增减比例    市值(亿) 公告日         
---------------------------------------------------------------------------
301216   万凯新材         20,649   -8,364   -28.8%    132.3 2026-02-03
603716   塞力医疗         77,208  -27,868   -26.5%     46.5 2026-02-03
...

复杂任务处理

遇到批量筛选、多股票遍历、多维度分析等复杂任务时,优先使用 runSubagent,可有效降低主对话的 context 长度。