Baostock 使用指南
复权参数 (adjust_flag) 注意事项
使用 get_historical_k_data 获取K线数据时,adjust_flag 参数的含义如下:
| adjust_flag | 英文 | 中文 | 说明 |
|---|---|---|---|
| 1 | Forward adjusted | 后复权 | 以上市首日为基准,累计所有分红送转,价格会比实际价格高 |
| 2 | Backward adjusted | 前复权 | 以最新价格为基准向前调整,价格与当前实际价格接近 |
| 3 | Non-adjusted | 不复权 | 实际交易价格 |
⚠️ 常见错误
不要把 "Forward adjusted" 误认为是"前复权"!
- •Forward adjusted (adjust_flag=1) = 后复权
- •Backward adjusted (adjust_flag=2) = 前复权
验证方法
如果对某只股票的复权价格有疑问,可以:
- •使用
get_adjust_factor_data查看复权因子(backAdjustFactor) - •使用
get_dividend_data查看历史分红送转记录 - •后复权价格 ≈ 不复权价格 × backAdjustFactor
示例
如果一只股票历史上有过 10转10(2015年)和 10转15(2018年),累计复权因子约为 2 × 2.5 = 5 倍,后复权价格会是实际价格的5倍左右,这是正常的。
筛选"庄股"(类花园生物)的原则
寻找具有明显庄家操盘特征、适合波段操作的股票时,可参考以下筛选条件:
核心筛选条件
| 条件 | 说明 | 具体指标 |
|---|---|---|
| 波幅大 | 单轮涨跌幅度要足够大 | 单波涨跌幅 20%-40% |
| 周期长 | 每轮波段持续时间较长 | 每轮 1-2个月(4-8周) |
| 换手率高 | 有明显资金运作痕迹 | 周换手率峰值 15%+,平均 10%+ |
| 箱体震荡 | 非单边趋势,年初年末价格接近 | 年度涨跌幅 ±25% 以内 |
| 🔥放量阶段性高点 | 一年内多次放量冲高 | ≥3次 放量高点,每次间隔 2-5个月 |
放量阶段性高点检测(核心指标)
庄股最典型的特征是周期性的"拉升-出货"循环,体现为:
- •阶段性高点:周线上比前后3周都高的价格点
- •放量确认:高点前后一周内有至少2天量比≥1.5
- •间隔合理:每个放量高点之间间隔8-22周(约2-5个月)
- •次数要求:一年内至少出现3次这样的放量高点
code
典型庄股K线形态:
价格 ^ 放量高点1 放量高点2 放量高点3
| /\ /\ /\
| / \ / \ / \
| / \ / \ / \
| / \ / \ /
| / \___/ \___/
+-----------------------------------------> 时间
|<- 2-5月 ->|<- 2-5月 ->|
排除条件
- •❌ 单边上涨:年涨幅超过50%,持续创新高
- •❌ 单边下跌:年跌幅超过30%,持续创新低
- •❌ 波幅太小:单波涨跌幅不足15%
- •❌ 周期太短:每轮不足3周
- •❌ ST股票:退市风险高(除非特别说明)
验证方法
- •K线形态:使用
get_historical_k_data(前复权,adjust_flag=2)获取周线数据 - •换手率:关注
turn字段,高换手通常对应价格转折点 - •放量阶段性高点(核心验证):
- •在周线图上识别阶段性高点(比前后3周都高)
- •检查高点附近日线是否有放量(量比≥1.5的天数≥2)
- •验证高点间隔是否在2-5个月(8-22周)
- •一年内至少3个放量高点才符合庄股特征
- •AI二次确认:脚本会输出高点时间线,人工或AI确认:
- •高点是否真正形成头部形态
- •放量是否伴随价格滞涨或下跌(出货特征)
- •间隔是否符合庄家操盘节奏
- •股东人数:通过东方财富等渠道查看股东人数变化
- •股东减少 + 股价上涨 = 庄家吸筹
- •股东增加 + 股价下跌 = 庄家出货
典型案例
| 股票 | 代码 | 箱体区间 | 单波幅度 | 波段周期 |
|---|---|---|---|---|
| 花园生物 | 300401 | 13-17元 | 20-35% | 3-6周 |
| 联诚精密 | 002921 | 10-19元 | 25-70% | 4-8周 |
| 超频三 | 300647 | 4.3-8.4元 | 19-33% | 3-13周 |
| 尔康制药 | 300267 | 2.1-4.8元 | 20-106% | 2-14周 |
| 民和股份 | 002234 | 7.8-10.7元 | 14-37% | 3-12周 |
| 仙坛股份 | 002746 | 5.2-6.8元 | 15-30% | 4-10周 |
| 雅本化学 | 300261 | 5.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 长度。