通达信主力成本公式要讲清楚的是「成本」这个词在这类公式里到底由什么算出来。不同版本的公式里,同一个名字背后可能是三种不同的取数口径:用区间内的成交额除以成交量、用加权价格序列的移动平均、用与筹码分布相关的字段。三者的计算方式不同,结果量级也不同,混在一起比对会得出错误结论。
下面按口径来源、计算方式、参数影响与验证四层展开。文中函数名与字段名按通达信 PC 版的公式系统常见写法描述,不同版本与券商定制版在字段定义与数据精度上存在差异,请以你所用客户端帮助文档为准。本文只讨论计算口径与语法机制。
一、「成本」的三种口径来源
先看这个量是从哪来的,这决定了后面所有的计算方式。
| 口径 | 取值来源 | 量级特征 | 适用场景 |
|---|---|---|---|
| 均价型 | 成交额与成交量相除 | 与价格同量级 | 观察当根的平均成交水平 |
| 均线型 | 价格序列的加权移动平均 | 与价格同量级,走势平滑 | 观察一段区间的价格重心 |
| 筹码型 | 与分布相关的专用字段 | 与价格同量级,分布形态不同 | 观察不同价位的持仓分布 |
三种口径的结果都在价格量级上,这是它们容易被混用的原因。但同一根数据上,三者的数值可以差出一段距离,取决于当期价格的波动幅度与成交的集中程度。
二、均价型的写法与前提
{均价型:成交额除以成交量,注意单位换算}
每根均价:=AMOUNT/VOL/100;
{AMOUNT 单位是元,VOL 单位是手,一手等于一百股}
{除以 100 是把手换算成股,漏掉会让结果差两个数量级}
这条式子的前提是 AMOUNT 与 VOL 是同一口径的累计值。若一个取了当日累计、另一个取了即时值,商就没有意义。核对方式是分别把两个字段单独输出成副图线,看两条线的时间范围是否一致。
另一个前提是分母不为零。停牌或无成交的根上 VOL 为零,任何以它为分母的算式都会取到异常值。处理方式是在算式里做一次判断。
{分母保护}
安全量:=IF(VOL=0,1,VOL);
每根均价:=AMOUNT/安全量/100;
{同时输出一个有效性标记,便于识别异常根}
有效:VOL>0;
三、均线型的写法与参数影响
{均线型:价格序列的移动平均}
短期重心:MA(CLOSE,20);
长期重心:MA(CLOSE,60);
{两条重心线的斜率方向,是这类写法的主要观察对象}
斜率方向:短期重心-长期重心;
均线型的参数是窗口长度。窗口的作用是把短期波动摊平,代价是反应变慢。改窗口会同时改变两个东西:曲线的平滑程度与它相对价格位置的滞后幅度。
| 窗口长度 | 平滑程度 | 对拐点的滞后 | 参数敏感性 |
|---|---|---|---|
| 10 以内 | 低,跟随价格 | 小 | 高,改两档结果差别明显 |
| 20 到 30 | 中 | 中 | 中 |
| 60 及以上 | 高 | 大 | 低,改两档结果接近 |
窗口越长参数敏感性越低,但滞后越大。选窗口就是在敏感性与滞后之间取一个能接受的点,没有同时最优的选择。
四、通达信主力成本公式里最容易出现的两处单位错
第一处是量与额的单位。这一处的处理方式在前一节已给。
第二处是股本类字段的单位。以流通股本为分母的算式,若股本字段的单位是万股或手,而分子用的是股数,结果同样会差出固定倍数。
{股本单位核对}
换手口径:=VOL*100/CAPITAL*100;
{这里 VOL 乘 100 换算成股,CAPITAL 若本身是股数单位即可直接相除}
{若 CAPITAL 单位是万股,需要再乘系数}
{核对办法:把结果与已知的换手率量级比对}
{正常换手率的取值范围在个位数百分比附近,超出说明单位有问题}
核对办法是把算式结果与已知量级比对一次。这类错误不会报错,只会让结果整体偏出固定倍数。
五、筹码型口径的两条边界
筹码型口径依赖与持仓分布相关的字段,这类字段的定义在不同版本与券商定制版之间差异较大。
{筹码型口径的通用注意点}
1. 确认该字段在你所用版本里是否存在
2. 确认字段的单位与取值范围
3. 确认它是否随复权设置变化
4. 确认历史数据的覆盖长度
第三项与第四项是这类口径特有的问题。分布类字段若随复权设置变化,切换复权后整条曲线会平移;历史覆盖长度不足时,曲线在早期区段会缺失或取到替代值。
六、验证主力成本公式计算口径的方法
- 取一根数据,按算式的定义手工算一次,与图上数值比对。这一步确认算式实现正确。
- 把计价用的字段单独输出成副图线,确认它与价格曲线的量级一致。
- 检查分母字段在两个极端区段上的取值,确认没有零值参与除法。
- 沿时间轴取若干个数据点重复第一步,每间隔一段取一个,覆盖不同的价格水平。
- 切换一次复权设置,观察曲线平移的幅度是否与价格变动幅度相符。
第四项比只取一个点的验证更有说服力。单点相符可能是巧合,多点一致才能说明算式与口径都对上了。
七、参数调整时的三种改动方向
{方向一:改窗口长度}
{影响平滑程度与滞后,不改变最终量级}
{方向二:改字段组合方式}
{例如从单价的平均改为均价与量的加权,会改变结果的分布形态}
{方向三:改分母的处理}
{加分母保护、改有效值判定,不改变量级但改变异常区段的表现}
三个方向的改动范围不同,测试成本也不同。方向一只需要重新观察曲线形状;方向二需要重新做多点复算,因为分布形态变了;方向三只需要检查异常区段。
八、三种口径之间的换算关系
三种口径不能直接互换,但可以判断它们之间的差异来自哪里。差异主要来自两处:成交的集中程度,以及统计区间的长度。
{差异来源的核对方式}
均价型与均线型的差异:
成交集中在少数价位时,均价型会更贴近那些价位
成交分散时,两者会接近
均线型与筹码型的差异:
统计区间越长,均线型越平滑,筹码型保留的分布细节更多
统计区间短时,两者都更贴近当前价格
{核对方式:把两条线同时输出,观察它们的间距在什么条件下拉大}
把两种口径同时输出到副图,观察间距在什么条件下拉大,就能判断差异的来源。这类观察比单纯比较某一天的数值更有意义。
九、主力成本公式里与盘面无关的验证项
这一节只列与计算有关、与行情判断无关的验证项。
| 验证项 | 判断标准 | 不通过说明 |
|---|---|---|
| 单位一致 | 结果量级与价格同阶 | 分母单位未换算 |
| 分母非零 | 异常区段上取值可识别 | 缺少分母保护 |
| 多点复算 | 若干个数据点均相符 | 算式与理解不一致 |
| 复权一致 | 切换设置后平移幅度可解释 | 口径随复权变化未处理 |
| 历史覆盖 | 早期区段无异常替代值 | 数据长度不足 |
这五项里,只有第三项需要手工计算,其余四项都是观察。手工计算虽然费时,但它是能把算式实现与设计意图对齐的手段。
相关口径对照可以看 指标原理与参数 一栏;字段取法与函数写法见 通达信公式编写教程 一栏;算式结果与预期不符时的排查顺序见 报错与卡顿排查 一栏。
通达信主力成本公式的参数调整,前提是先认清这个公式属于哪种口径。口径没确认就开始调窗口,改出来的结果无法解释,也无法与别的版本比对。
文中函数名与字段名按通达信 PC 版公式系统的常见写法描述;不同版本与券商定制版在字段定义、单位约定与数据精度上存在差异,具体请以你所用客户端帮助文档为准。本文只讨论计算口径与参数机制,不构成任何投资建议。
