## 一、数据简介 筹码分布反映不同价位上投资者的持仓成本,用来分析市场参与者的平均持仓价格分布。它展示在某个时间点,持有某只股票的投资者在各价格上累积的筹码(股票数量或比例),可以帮助判断支撑位、压力位以及主力资金的动向。 本表每只股票每个交易日有多行,每行是一个价格上的筹码量。价格为未复权口径,只包含沪深股票,不含北交所。 - 数据起始时间:2006-01-04 - 数据结束时间:2026-10-30 - 数据更新频率:每个交易日 ## 二、主键说明 | 关键字 | 释意 | | --- | --- | | date | 交易日,不含时分秒,表示该日收盘后的筹码分布 | | instrument | 股票代码,格式为 `代码.交易所后缀`,如 `000001.SZ` | | price | 筹码价格,保留两位小数,是价格区间的代表价格 | ## 三、字段口径 | 字段 | 口径 | | --- | --- | | chips | 该价格上的筹码数量,单位为股,整数。同一股票同一天各价格行之和约等于当日 `cn_stock_shares` 的 `total_float_shares` | | chips_ratio | 该价格上的筹码占比,同一股票同一天各价格行之和为 1 | | avg_cost | 平均成本,等于 `sum(price * chips_ratio)` | | win_percent | 获利比例,价格低于当日 `(open + close) / 2`(取两位小数)的筹码占比之和,不是与收盘价比较 | | upper_90 / lower_90 | 90% 筹码的成本区间上限和下限,价格从低到高累计筹码占比,取累计占比在 5% 至 95% 之间的最高价格和最低价格 | | upper_70 / lower_70 | 70% 筹码的成本区间上限和下限,取累计占比在 15% 至 85% 之间的最高价格和最低价格 | | concentration | 筹码集中度,按 90% 区间计算,越小表示筹码越集中;上限和下限相同时取 1 | 集中度的计算公式为: ```text concentration = (upper_90 - lower_90) / (upper_90 + lower_90) ``` `avg_cost`、`win_percent`、`upper_n`、`lower_n`、`concentration` 是按股票每日计算的指标,同一只股票同一天的所有价格行取值相同。`win_percent` 中的 `open`、`close` 来自 `cn_stock_real_bar1d`。 ## 四、筹码分布计算规则 把上市公司发行的股票理解成筹码,发行一股就是一份筹码,你以什么价格买入,持有的筹码就记为什么价格。 1. 假设某股票最初以 10 元发行了 1000 股,则最初的筹码分布是:10 元处有 1000 股,其他价格上为 0。 | 筹码价格 | 筹码量 | | --- | --- | | 10.5 | 0 | | 10.3 | 0 | | 10.0 | 1000 | 1. 股票开始交易后,假设第一笔交易以 10.3 元成交了 300 股,筹码分布变为: | 筹码价格 | 筹码量 | | --- | --- | | 10.5 | 0 | | 10.3 | 300 | | 10.0 | 700 | 1. 第二笔交易以 10.5 元成交了 200 股,需要在 10.5 元处增加 200 股,同时在 10.3 元和 10 元处共减少 200 股。但这 200 股里有多少成本是 10 元、有多少是 10.3 元,除非能拿到所有交易账户的买卖记录,否则无法精确得知。因此计算时统一按换手率处理:成交 200 股占总股本的 20%,就认为 10.3 元和 10 元处的筹码都卖出了 20%。此时的筹码分布是: | 筹码价格 | 筹码量 | | --- | --- | | 10.5 | 200 | | 10.3 | 240 | | 10.0 | 560 | 1. 按上述逻辑,每笔交易后都可以得到新的筹码分布。 本表按日计算,每个交易日只有一个价格,核心步骤如下: - 初始化筹码分布,见下一节。 - 当日成交量记在当日价格所在的价格区间上,当日价格取 `cn_stock_real_bar1d` 的 `(open + close) / 2`,保留两位小数,不是当日真实的成交均价。 - 其他价格上的筹码量按当日换手率等比例减少。 - 流通股本(`cn_stock_shares` 的 `total_float_shares`)发生变动时,各价格上的筹码量随之调整。 ## 五、注意事项 1. 筹码分布使用未复权行情(`cn_stock_real_bar1d`)计算。发生除权除息时,历史价格上的筹码不会按除权价格重新调整,只随流通股本变动调整数量。例如 `603409.SH` 在 2026-06-18 除权,前收盘价与前一交易日收盘价相差较大,该日前后 `price` 的最大值都是 45.04。 1. 初始化筹码分布从 2006 年开始,表内第一个交易日是 2006-01-04: - 2006-01-01 之前上市的股票,以 2006-01-01 之前最后一个交易日的 `(high + low) / 2` 和流通股本作为初始筹码分布。 - 2006-01-01 之后上市的股票,以上市时的发行价和流通股本作为初始筹码分布。 1. 价格区间:每个交易日按当日价格和已有筹码的价格范围(上下各扩大 10%)生成价格区间,新增的价格区间最多 200 个,已有的价格区间会保留。因此一只股票一天的价格行数不固定。2026-10-22 平均每只股票 132 行,最少 2 行,最多 561 行,有 512 只股票超过 200 行。 1. 筹码量的指数衰减:按换手率等比例减少其他价格的筹码量时,筹码量大的价格每天减少得多,筹码量小的价格减少得少,长期没有成交的价格上始终会残留筹码。因此以当日流通股本的 0.01% 作为截断值,筹码量少于截断值的价格会被剔除,其筹码量等比例分配给其他价格,保证总量不变。 1. 数据量:2026-10-22 全市场共 5220 只股票、约 69 万行。查询时请用 `instrument` 限定股票,不限定时单日全部字段约 66 MB,多个交易日会超过单次查询约 100 MB 的上限。 ## 六、筹码分布可视化 下面的代码画出某只股票某个交易日的筹码分布图,结果和第三方软件的筹码分布图具有一定的可比性。 ```python from bigquant import dai import matplotlib.pyplot as plt df = dai.query( "SELECT price, chips FROM cn_stock_chips_distribution", filters={"instrument": ["000002.SZ"], "date": ["2025-06-23 00:00:00", "2025-06-23 23:59:59"]}, ).pl().sort("price") plt.figure(figsize=(10, 6)) plt.barh(df["price"].to_numpy(), df["chips"].to_numpy(), height=0.1, color="skyblue") plt.xlabel("Chips") plt.ylabel("Price") plt.title("Price vs Chips (Horizontal Bar Chart)") plt.grid(axis="x", linestyle="--", alpha=0.7) plt.tight_layout() plt.show() ``` ## 七、示例数据 以平安银行(000001.SZ)为例,取 2026-10-23 至 2026-10-30 内最新一个交易日的数据,按价格排序,展示前 5 行和后 5 行。 | date | instrument | price | chips | chips_ratio | avg_cost | win_percent | upper_90 | lower_90 | upper_70 | lower_70 | concentration | |:--------------------|:-------------|--------:|---------:|--------------:|-----------:|--------------:|-----------:|-----------:|-----------:|-----------:|----------------:| | 2026-10-30 00:00:00 | 000001.SZ | 9.07 | 5045288 | 0.000259991 | 11.3404 | 0.71423 | 12.28 | 10.45 | 11.74 | 10.84 | 0.0805103 | | 2026-10-30 00:00:00 | 000001.SZ | 9.16 | 22843551 | 0.00117716 | 11.3404 | 0.71423 | 12.28 | 10.45 | 11.74 | 10.84 | 0.0805103 | | 2026-10-30 00:00:00 | 000001.SZ | 9.25 | 12685932 | 0.000653726 | 11.3404 | 0.71423 | 12.28 | 10.45 | 11.74 | 10.84 | 0.0805103 | | 2026-10-30 00:00:00 | 000001.SZ | 9.34 | 4374502 | 0.000225425 | 11.3404 | 0.71423 | 12.28 | 10.45 | 11.74 | 10.84 | 0.0805103 | | 2026-10-30 00:00:00 | 000001.SZ | 9.43 | 8675492 | 0.000447061 | 11.3404 | 0.71423 | 12.28 | 10.45 | 11.74 | 10.84 | 0.0805103 | | 2026-10-30 00:00:00 | 000001.SZ | 13.37 | 2039341 | 0.00010509 | 11.3404 | 0.71423 | 12.28 | 10.45 | 11.74 | 10.84 | 0.0805103 | | 2026-10-30 00:00:00 | 000001.SZ | 14 | 1992565 | 0.00010268 | 11.3404 | 0.71423 | 12.28 | 10.45 | 11.74 | 10.84 | 0.0805103 | | 2026-10-30 00:00:00 | 000001.SZ | 14.04 | 2549768 | 0.000131393 | 11.3404 | 0.71423 | 12.28 | 10.45 | 11.74 | 10.84 | 0.0805103 | | 2026-10-30 00:00:00 | 000001.SZ | 14.37 | 2027223 | 0.000104466 | 11.3404 | 0.71423 | 12.28 | 10.45 | 11.74 | 10.84 | 0.0805103 | | 2026-10-30 00:00:00 | 000001.SZ | 14.57 | 2318653 | 0.000119484 | 11.3404 | 0.71423 | 12.28 | 10.45 | 11.74 | 10.84 | 0.0805103 |
筹码分布 (cn_stock_chips_distribution)
数据描述: 股票的筹码分布数据是一种反映不同价位上投资者持仓成本的统计分析工具,主要用于分析市场参与者的平均持仓价格分布情况。它通过图表形式展示在特定时间点,持有某只股票的投资者在不同价格区间的筹码(股票数量或比例)积累情况,帮助判断支撑位、压力位以及主力资金的动向。
文档
用例
表结构
| 字段 | 字段类型 | 字段描述 |
| __PARTITION__ | int64 | - |
| chips | int64 | 筹码数量 |
| avg_cost | double | 平均成本 |
| lower_70 | double | 70%筹码成本下限 |
| lower_90 | double | 90%筹码成本下限 |
| upper_70 | double | 70%筹码成本上限 |
| upper_90 | double | 90%筹码成本上限 |
| chips_ratio | double | 筹码占比 |
| concentration | double | 筹码集中度 |
| win_percent | double | 获利比率 |
| price | double | 筹码价格 |
| instrument | string | 证券代码 |
| date | timestamp[ns] | 日期 |
表名:cn_stock_chips_distribution
起始时间:
最近更新时间: