VOL和AMOUNT区别不只是一个叫「量」一个叫「额」。一个高频报错是这样出现的:算式编译通过、图上也画出了线,但数值与预期差了一个数量级的倍数。回头逐行核对,最后发现出在 VOL 上——写算式的人以为 VOL 是成交金额,拿它去和价格相乘。两个字段的单位、在分时图上的口径,以及和其他字段的搭配方式都不同。

对照项 VOL AMOUNT
含义 成交量 成交额
单位 手(一百股) 元
与价格的关系 不随价格量级变化 约等于量乘均价
日线图口径 当日累计成交量 当日累计成交额
分时图口径 该采样点的即时量 该采样点的即时额

VOL和AMOUNT区别理清之后,几个看似奇怪的结果都能解释。下面按单位与量纲、日线与分时的口径切换、组合写法,以及两条容易踩的边界展开。文中函数名与写法以通达信 PC 版的公式系统为准,不同版本与券商定制版在字段命名与数据精度上存在差异,请以你所用客户端帮助文档里的字段说明为准。

一、单位不同,量纲就先错了

VOL 的计量单位是手,一手等于一百股。AMOUNT 的计量单位是元。这个差别带来的直接后果是:两者的数值量级可以差到几十倍到上百倍,取决于当期的股价水平。

把这个关系写出来,是一条近似式:

AMOUNT ≈ VOL * 100 * 均价

式子里乘一百是把手换回股。这条式子只在均价平稳、成交构成单一的前提下近似成立,遇到当日价格大幅波动,或者成交集中在少数价位时,偏差会变大。它可以用来自查字段有没有取错,不适合拿来互相推算。

拿 VOL 去做「成交金额」相关的判断,得到的阈值全部失真。例如按金额划定一个门槛去筛条件,用 VOL 替代之后,门槛实际对应的是股数而不是钱数,不同价位的标的会被以不成比例的方式纳入或排除。这类错误不会报错,只会让结果看似合理却与设计意图不一致。

二、日线与分时,同一个字段含义会变

同名的 VOL 在不同周期图上的口径不同,这是第二个容易出错的地方。日线图上,每根 K 线的 VOL 是当日从开盘到收盘的累计成交量,一根对应一整天。分时图上,每根对应一个采样点,VOL 是该采样点区间内的即时成交量。

因此,把日线图上验证过的算式直接挂到分时图上,窗口参数的含义会整体偏移。日线上 SUM(VOL,5) 是最近五天的合计,分时图上则是最近五个采样点的合计,两者代表的时长差距很大。

周期图 一根代表的时间 SUM(VOL,5) 的合计范围
日线 一个交易日 最近五个交易日
60 分钟 一个交易小时 最近五个小时
分时 一个采样区间 最近五个采样区间

要拿到当日截至当前的累计量,可以把窗口开到足够大或直接用全部历史累加:

{日线图上:当日的量本身已是累计值}
当日量:VOL;

{分时图上:取本日以来的累计}
分时累计:=SUM(VOL,0);

SUM(VOL,0) 里的 0 表示对全部历史求和还是对本日求和,取决于客户端对窗口参数 0 的定义,不同版本的处理有差别。写进正式算式之前,先把它挂到图上与分时图右侧显示的累计量对照一次。

三、两个字段搭配使用的三种写法

把量与额放在一起,能表达单看其中一个字段表达不了的信息。下面是三种用途不同的写法。

{写法一:均价——用额除以量还原当根的平均成交价}
每根均价:=AMOUNT/VOL/100;

{写法二:量能倍数——与近期均量比,观察相对活跃程度}
近期均量:=MA(VOL,20);
量能倍数:=VOL/近期均量;

{写法三:换手口径——需要流通股本字段配合}
换手率:=VOL*100/CAPITAL*100;

三种写法各有前提。均价那条依赖 AMOUNT 与 VOL 是同一口径的累计值,若一个取了当日累计、另一个取了即时值,商就没有意义。量能倍数那条在均量极小时会放大,除以前应当判断分母是否为零。CAPITAL 是流通股本字段,单位与 VOL 不同,换算时漏掉乘一百会让结果差两个数量级。

四、VOL和AMOUNT区别之外:两条容易踩的边界

第一条边界是停牌与无成交。成交量为零的根上,AMOUNT 同样为零,任何以它们为分母的算式都会得到无效值或异常大的值。处理方式是在算式里先做一次判断:

{除法前的分母保护}
安全量:=IF(VOL=0,1,VOL);
均价:=AMOUNT/安全量/100;

第二条边界是数据缺失。部分历史区段可能只有价格数据没有成交数据,这时两个字段都取不到值。判断方法是把图拉长到该区段,看价格曲线正常而 VOL 曲线断掉的区段,这类区段上算出来的量能指标不具备可比性。

两个字段能不能互换使用,判断标准很简单:算式里的常数阈值是按「手」设定的还是按「元」设定的。按手设定的用 VOL,按元设定的用 AMOUNT,两者不要交叉,也不需要为了「看起来更精确」而做单位换算。

五、量价组合算式里的三处口径对齐

把两个字段放进同一条算式时,除了单位,还要保证取数的层次一致。下面三处是三处需要对齐的地方。

第一处是时间层次。日线算式里两个字段都是当日累计值,可以直接相除得到当日均价。若把同一个算式挂到分钟图上,两者都变成了该周期的即时值,相除得到的是该周期的均价,与「当日均价」不是同一个量。需要当日口径时,应当显式用 DYNAINFO 一类函数取当日值,而不是依赖当前图的周期。

第二处是复权处理。价格类字段在复权设置变化时数值会变,量的字段不随复权设置改变。这意味着以量为分母、价格为分子的算式在切换复权设置后结果会整体平移。核对口径时,先确认图表的复权选项,再比较不同时间点算出来的结果。

第三处是数据范围。上市初期的若干根上数据可能不完整,量能类字段出现零值或异常值,任何以它为基础的比值都会失真。把算式挂到较短周期上时特别容易遇到,判断方法仍是把图拉长回看。

{当日口径取数,不受当前图周期影响}
当日额:=DYNAINFO(10);
当日量:=DYNAINFO(8);
当日均价:=IF(当日量=0,0,当日额/当日量/100);

六、验证方法

写完涉及这两个字段的算式,按下面的步骤核对一遍。

  1. 把 VOL 与 AMOUNT 分别临时改成输出线挂到副图,看两条曲线的量级差是否与当期价格水平相符。
  2. 取最后一根数据,用 量的手数乘一百乘均价 手工算一次,与 AMOUNT 比对,确认没有漏乘一百。
  3. 在分时图与日线图上各跑一次同一段算式,观察结果差异是否与周期口径一致。
  4. 找到一段已知的停牌或无成交区段,确认算式在该区段上不会出现异常大的数值。

VOL和AMOUNT区别在文档里只有一行说明,落到算式上却涉及单位、周期口径与分母保护三件事。相关的字段取法与写法可以对照 通达信公式编写教程 一栏;算式能编译但结果与预期不符时的排查顺序,见 报错与卡顿排查 一栏;量能类条件在验证阶段需要注意的口径问题,见 指标回测与风险验证 一栏。

如果只想记一条:VOL 记的是股数的手数形式,AMOUNT 记的是钱数,两者之间隔着价格这一层。任何试图把它们当成同一类数据来用的算式,都会在阈值和倍数上留下偏差。

七、一份可照抄的自查表

把上面几节压缩成一张核对表,写在算式旁边随时对照。

算式里的这个数 该用哪个字段 漏掉这步会怎样
手数阈值 VOL 用 AMOUNT 会让门槛随价位浮动
金额阈值 AMOUNT 用 VOL 得到的是股数口径
均价 两者相除,记得乘一百 结果差两个数量级
换手比例 VOL 与流通股本配合 单位不一致导致数值失真
活跃程度倍数 VOL 与其移动平均相除 分母为零时出现异常值

这张表覆盖不了所有情形,但它把最容易出错的一步摆到了明面上:任何以量为输入、以钱为输出(或反过来)的算式,中间必须经过价格这一层。少了这一层,算式不会报错,只会安静地给出一个量级错误的数。

文中字段名与语法按通达信 PC 版公式系统的常见写法描述;不同版本与券商定制版在字段命名、数据精度与窗口参数定义上存在差异,具体请以你所用客户端帮助文档为准。本文只讨论公式语法与计算机制,不构成任何投资建议。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。