筹码分布常被当成软件里的一列现成数据,打开图就能读到。实际情况不是这样:通达信的行情数据里没有「筹码」这个字段,图上的筹码分布是用历史成交数据推算出来的。通达信筹码指标公式取到的每一个数值,背后都套着一层推算模型,参数改一格,结果就会跟着变。
本文按数据来源、函数语义、参数含义、失真条件四个部分说明这套推算过程。文中函数名与菜单项以通达信金融终端个人版为准,券商定制版的可用函数可能有差异。全文只讨论计算口径与参数机制,不涉及任何标的的判断。
一、筹码分布不是行情自带的一列数据
行情数据里能直接读到的,是每个周期的开盘、最高、最低、收盘、成交量与成交额。这些字段是交易所撮合结果的记录,不包含「谁在什么价位持有多少」的信息。
筹码分布要回答的问题,恰恰是后者:在某个价格区间里,有多少持仓的成本落在这一段。既然原始数据里没有这个量,就只能由成交数据反推。反推的方式是做一个假设:某一根 K 线的成交量,按某种规则分配到当根 K 线的价格区间内,之后随着后续成交逐步衰减或转移。
这个假设是整个推算的起点。它意味着筹码分布不是一个可以直接观测的量,而是一个模型输出。模型换了,或者参数换了,同一只标的在同一时点的筹码分布就会不同。
分布图的两个轴也要分清楚。横轴是价格,纵轴是该价格上的持仓量。图上浓和淡的差别,反映的是不同价格区间上分配到的成交量多少,不是账户数量。这一点在后续判断曲线变化来源时会用到。
还要分清「分布」与「实际持仓」的距离。分布是由成交数据反推出来的估计量,它的输入只有成交价与成交量,没有账户信息。同一笔成交在新开与转让之间,模型无法区分。所以分布刻画的是价格区间上的成交堆积,不是一份持仓名单。
二、筹码数据从哪来:模型算出来的和外部导入的
通达信筹码指标公式拿到的数据,来源可以分成两类。
| 来源 | 怎么产生 | 受什么影响 |
|---|---|---|
| 软件内部推算 | 按内置的分配与衰减规则,由历史成交数据算出 | 本地历史数据的完整程度、分配规则的参数 |
| 外部导入的统计结果 | 先把成交数据按某种规则统计成表,再导入本机 | 统计口径、导入文件的字段格式与更新时点 |
两条来源的差别落在可复现性上。内部推算的分布,任何一台装好同一版本软件、下载了同样数据的机器上都能算出来;外部导入的分布,换一台机器而没导入同一份文件,算出来就是空的。
判断一份公式属于哪一类,看正文里有没有引用外部数据函数或者自定义数据字段。只用了价格与成交量函数的,属于第一类;引用了外部数据入口的,属于第二类。
三、从筹码分布到数值:WINNER 与 COST 的语义
分布是一张图,公式里要用的是数值。通达信提供了两个函数来做这个转换。
| 函数 | 传入什么 | 返回什么 |
|---|---|---|
WINNER(价格) |
一个价格 | 成本低于该价格的持仓,占全部持仓的比重 |
COST(占比) |
一个以百分比表示的比重 | 对应到成本分布上,使该比重刚好成立的那个价格 |
两个函数是一对反函数。给定价格求比重用前者,给定比重求价格用后者。把这两个量画在副图上,就是一条随价格上移而单调变化的曲线,以及它的反解。
{ 当前价格位置处的持仓比重 }
获利比重:WINNER(C);
{ 反解:取得某个比重对应的成本价格 }
成本参考:COST(50);
{ 两者的组合用法:比较当前价与某个成本位 }
价差:CLOSE-COST(50);
上面示例里的两个数字参与的是函数自身的定义,不是公式作者设定的阈值。这一点在理解输出时有影响:曲线变化的原因可能来自价格变动,也可能来自分布本身被重新推算,两者的区分要看后续章节讲的数据条件。
验证这两个函数的取值有一个简单办法。把光标停在某一根 K 线上,记下 WINNER(C) 的数值,再把它代入 COST 反解,看能不能回到接近当前价的水平。两个函数在同一个时点上互相对得上,说明取到的分布是同一份;对不上,说明两处引用落在了不同的数据条件上。
四、参数意味着什么:分配规则与统计窗口
通达信筹码指标公式里真正可调的参数,一半在公式里,一半在分布本身的推算规则里。
公式里的参数是外露的,比如统计窗口长度、比较用的比重值。这类参数改动的效果很直接:窗口从短调长,分布覆盖的历史区间变长,曲线随价格变化的灵敏度下降。
分布推算规则里的参数不在这份公式里,而在软件的分布界面或统计模块中。这类参数决定的是成交数据在价格区间内的分配方式,以及随时间的衰减速度。它不改变公式正文,但会改变公式的取值。
两处参数的作用方向也不同。公式里的窗口长度决定「看多长的历史」,推算规则里的衰减速度决定「多老的成交还算数」。把这两个概念混在一起调,会看到结果在变,却说不清是哪一项造成的。
五、什么时候结果会失真
模型输出的可靠性由输入数据决定。以下几类条件会让推算结果偏离实际的持仓结构。
- 上市时间短、成交样本少。历史成交不足以铺满价格区间,分布的尾部会显得空。
- 长期停牌或成交稀疏。分配规则建立在成交量上,成交量趋近于零的区间里,分布几乎没有更新。
- 除权除息未复权处理。历史成交价与当前价格不在同一口径上,分布的价格轴会出现错位。
- 本地历史数据缺段。缺失的那一段成交没有参与推算,分布会在对应区间上留下空洞。
还有一个口径上的问题:分布只记录成交,不区分成交背后的账户类型。同一笔成交,可能是新开仓,也可能是原有持仓的转让。模型把两者都当作同样的成交量处理。所以分布反映的是价格区间上的持仓分布,不区分这些持仓属于谁。
确认是否踩到上面几条,可以从数据侧入手:先在数据管理里核对本地日线的起始日期与缺失区间,再看它是否跨过除权日。这两项都对得上,再看分布曲线的形态是否有明显的断口。
把上面几节合起来看,通达信筹码指标公式的输出是一条推算曲线,不是一份持仓名册。它的数值随价格、历史数据完整程度与推算参数同时变化。核对数值时先对齐推算设置与数据区间,再看曲线本身,判断才站得住。本文只讲函数语义与计算口径,不涉及具体标的的判断,也不构成对任何公式效果的承诺。站内还有 指标原理与参数 里讲参数取值与计算路径的条目、公式报错与卡顿排查 里讲数据缺段与结果偏差的条目、主图副图指标 里讲挂载位置与取数的条目,可对照查看。
