给通达信吸筹指标公式调参数,改一个数字,输出的曲线形状就跟着变,但变化来自算法里的哪一项,说不清。根源在于这类指标不是一个公式,而是两种口径拼起来的:一种数换手累积,一种量价格重心。参数只作用在其中一项上,改动之后动的也只是那一项。把这两条线分开看,通达信吸筹指标公式的参数影响就能逐项对上。下面从算法构成、参数落点、口径边界、核对方法逐层说。
一、算法由两个量拼成
市面上叫吸筹、建仓、潜伏一类的指标,源码写法不同,但底层用的是两个量:
| 量 | 取什么数据 | 输出什么形态 |
|---|---|---|
| 换手累积 | 区间内每根成交量的和,除以流通盘 | 随区间长度递增的曲线 |
| 价格重心位移 | 区间内的成交额除以成交量,再与价格比较 | 围绕某个轴上下摆动的曲线 |
第一个量回答的是「这段时间换手了多少」,第二个量回答的是「这些换手发生在什么价格上」。两个量都不是对资金去向的直接观测,而是从成交数据反推出来的代理量。把这一点先说清楚,是因为它决定了后面所有参数的边界:参数改的是统计方式,不是观测精度。
通达信吸筹指标公式的两个量在源码里各自占用一段,用不同的变量名保存,最后再用一条输出线合成。读源码时先找到这条合成线,就能判断某个参数到底喂给了哪一段。
二、参数改了会动哪一项
参数按作用对象分两类,改动之后的视觉效果不一样。
作用在换手累积上的参数
这类参数是统计窗口的长度。窗口从二十根改成六十根,累积的成交自然更多,曲线整体抬高,转折点也会往后挪,因为要凑够六十根才会开始输出。这里有一个容易误判的地方:曲线抬高不代表信号变强,它只是因为窗口变长累积得更多。
作用在价格重心上的参数
这类参数是参与比较的价格口径,可以是收盘价、均价,也可以是复权后的价格。改它不改曲线的整体位置,改的是重心与价格的相对关系,曲线会围绕轴上下平移。
{吸筹类指标的两个量:窗口决定累积,价格口径决定重心}
W := 60;
{量一:区间换手累积(单位与量纲随源码口径,此处只示意位置)}
TURNSUM := SUM(V, W);
{量二:以均价为基准的价格重心位移}
CENTER := SUM(AMOUNT, W) / SUM(V, W);
DEV := (C - CENTER) / CENTER * 100;
{两条线合成输出}
ACC: TURNSUM;
PWR: DEV;
上面这段只表示两段各自的位置,常量值、单位、最终合成方式都随源码不同,实际写法以你手上那份源码为准。参数与窗口长度之间的关系是叠加的:如果源码里两段都用了同一个窗口参数,改一次会同时影响两条线,视觉上的变化就混在一起了。
三、参数改动的常见误解
三个误解都和参数本身有关。
第一个是把窗口调长当成「更准」。窗口长了,进入统计的样本多了,同时每个样本的权重被摊薄,曲线对近期变化的反应变钝。这是统计口径的取舍,不是精度提升。
第二个是把曲线的整体高度当成强度。换手累积的高度取决于流通盘和窗口长度,与「有没有资金在吸筹」没有直接对应。同一只标的的流通盘发生变化,曲线高度跟着变,源码一个字没改。
第三个是把两个参数一起调。两个量分别作用,同时调会让变化无法归因。核对时一次只改一个参数,另一项保持固定,才能看清是哪一项带来的变化。
四、量价口径:数据从哪来
两个量的输入都来自成交数据,成交数据本身有三个口径要先确认。
- 成交量是手数还是股数。源码里如果混用了两个口径,换手累积这一项的量级会不对,表现为曲线高度与实际换手对不上。
- 成交额与成交量是否同源。有的数据源里成交额的单位与成交量不配套,直接相除算出来的均价会偏移。
- 复权设置。价格重心用的是复权价还是不复权价,会改变位移的读数,尤其是发生过除权的一段区间,两种情况差别明显。
这三个口径不涉及参数取值,是数据本身的处理方式。通达信吸筹指标公式在两个量的计算上都依赖它们,先把口径确认一遍,再去调参数,改动才可归因。
五、边界条件与失效情形
两个量都有各自的失效区间,写清这些区间比给一个参数建议值有用。
换手累积的失效区间是窗口不足。窗口设六十根,前五十九根取不到完整的六十个样本,输出会留空或者用不满窗口的部分样本凑数,前者表现为曲线开头是断的,后者表现为开头一段高度偏低。
价格重心位移的失效区间是成交量过低。成交清淡的一段里,成交量接近零,重心位移的读数会被放大,曲线出现尖刺。这不是信号,是分母过小带来的数值放大。
两个量合成之后还有一层边界:合成方式决定了曲线对两个量的敏感度。如果合成是加权求和,权重大的那一项主导曲线,另一项的变化在图上不容易看出来。读源码时把权重找出来,才能判断哪一项在起作用。
{窗口不足时开头留空,成交量过低时重心读数被放大}
W := 60;
TURNSUM := SUM(V, W);
CENTER := SUM(AMOUNT, W) / SUM(V, W);
{先用一个下限条件把分母过小的区段滤掉}
VALID := V > 0;
PWR: IF(VALID, (C - CENTER) / CENTER * 100, 0);
六、核对方法与记录
按下面的顺序走,每一步只改一个变量,改动可归因。
- 先用默认参数跑一次,把曲线的关键读数记下来:起点位置、峰值位置、当前值。
- 只改窗口参数,跑第二次,观察这三次读数里哪几个变了。起点与峰值位置变动,说明窗口在起作用。
- 恢复窗口,只改价格口径,跑第三次,观察曲线的上下平移。平移说明口径在起作用。
- 确认三个数据口径:成交量单位、成交额与成交量是否同源、复权设置。
- 找一个成交量偏低的区段,看曲线是否出现尖刺,确认这是数值放大而非信号。
写完这五步,参数的作用对象、量价口径、失效区间就各自被钉过一遍。记录时把参数值、数据口径、复权设置一起写进公式说明栏,下次复核能直接对上。公式里的函数名与可用参数以本机函数说明为准,不同版本与券商定制版之间存在差异。
本文只作技术研究口径,全部内容围绕计算方式与数据口径展开,不涉及也不构成对任何标的的判断或取舍建议。通达信吸筹指标公式的参数改动,改的是统计口径,不是观测精度;把这一层认清,参数就没有「最优值」这个说法,只有与你使用的数据口径是否配套这一条判据。
