通达信主力资金指标公式里最难处理的一步,不是算,而是分。资金这个词在公式里对应的是按方向分类后的成交数据,分类规则决定了这条线在什么位置起什么形状。分类规则改了,同一天的图会呈现完全不同的形态,而算式本身一行没动。
所以参数调整的入口有两处:一处是分类规则,一处是平滑与统计窗口。两处的影响方向不同,改之前要分清改的是哪一处。文中函数名与字段名按通达信 PC 版的公式系统常见写法描述,不同版本与券商定制版在字段定义与数据粒度上存在差异,请以你所用客户端帮助文档为准。本文只讨论计算口径与参数机制。
一、分类规则:资金流向从哪分起
按成交方向分类的常见做法有三种,区别在于用什么标准判断一笔成交的方向。
| 分类标准 | 判断依据 | 对数据粒度的要求 |
|---|---|---|
| 按成交价与上一笔的比较 | 价格走高归为一类,走低归为另一类 | 需要逐笔数据 |
| 按主动方标记 | 使用数据里已有的方向标记字段 | 依赖数据源是否提供 |
| 按单笔金额大小分档 | 先用金额门槛分出大单,再按方向归类 | 需要逐笔与金额字段 |
三种标准的产出量级不同。第一种对价格变动敏感,在价格窄幅波动的区段上分类结果会频繁翻转;第二种依赖数据源,若标记字段缺失或为固定值,结果无意义;第三种引入了金额门槛,门槛值直接决定分到大单的成交占比。
{按金额分档的分类写法示意}
{第一步:找出达到金额门槛的成交}
门槛:=1000000;
单笔金额:=AMOUNT;
达门槛:=单笔金额>门槛;
{第二步:在达门槛的成交里按方向归类}
{方向字段名与取值范围按你所用版本的数据说明填写}
方向标记:=IF(达门槛,方向字段,0);
{第三步:分别累加两个方向}
{累加窗口按需求设定}
二、通达信主力资金指标公式的参数:两处不能同时调
分类门槛与统计窗口是两类参数,它们的影响是耦合的。门槛调高会让进入统计的样本变少,样本变少之后用固定窗口统计,窗口内可能只有很少的样本,结果的波动会放大。
{耦合关系}
门槛高 -> 样本少 -> 同窗口内样本更少 -> 结果波动放大
门槛低 -> 样本多 -> 同窗口内样本多 -> 结果平滑但方向性减弱
{调整顺序:先定门槛,再定窗口}
{同时调会无法归因}
调整顺序是先固定门槛、扫窗口,找到波动可以接受的窗口区间;再在选定窗口下扫门槛,看结果的分布变化。反过来的顺序也可以,但一次只动一个参数这条不能破。
三、平滑方式的选择
分类完成后的累加序列一般要做一次平滑再输出。平滑方式有简单平均与指数加权两类,前者对所有样本等权,后者对近期样本加权更多。
| 平滑方式 | 对近期变化的响应 | 平滑程度 | 参数含义 |
|---|---|---|---|
| 简单平均 | 随窗口长度变化 | 中 | 窗口长度 |
| 指数加权 | 较快 | 低 | 平滑系数 |
| 不做平滑 | 立即 | 无 | — |
第三行不做平滑的写法,输出的是原始累加值,形态抖动较大,适合用来核对前两步的分类与累加是否正确。验证阶段用它,确认无误后再加平滑。
四、累计与滚动两种统计口径
{口径一:滚动窗口,只统计最近若干根}
滚动值:=SUM(分类量,窗口);
{口径二:区间累计,从区间起点累加}
{需要显式指定区间起点,或使用全历史累加}
累计值:=SUM(分类量,0);
{两种口径的输出形态差别很大}
{滚动值围绕零轴摆动,累计值是单调累积的曲线}
窗口参数为零的含义在不同版本上有差异,有的对本日求和,有的对全部历史求和。写进正式算式前先挂到副图上,与手工分段累加的结果对照一次。
五、参数扫描的具体做法
- 先把分类部分单独输出成两条线,分别对应两个方向。确认它们的和与总量字段相符。
- 用不做平滑的累加值观察形态,确认分类结果没有在窄幅区段频繁翻转。
- 固定门槛,把窗口按既有档位上下调整,记录每个档位下输出的波动幅度。
- 在选定窗口下,把门槛上下调整,记录分到大单的成交占比变化。
- 加上平滑,观察平滑前后的形态差异。
第二步是这套里信息量最大的一步。分类频繁翻转的写法,在图上表现为输出线在零轴附近快速来回,这种形态无法承载任何观察目的,需要回去改分类标准或加大门槛。
六、参数调整之后要重新确认的三项
{确认项}
1. 分类和与总量是否仍相等(分类正确性)
2. 输出线在窄幅区段是否仍频繁翻转(分类稳定性)
3. 结果量级是否仍在可解释范围内(单位与口径一致)
第一项是分类正确性的直接判据:两个方向分别累加后的和,应当与总量字段对应。不相等说明有一部分成交被漏掉或被重复计入。
七、一个常见的调整误区
{误区:用输出形态的「好看程度」作为调参依据}
{表现为反复微调窗口,直到曲线形态符合预期}
{问题:形态好看不等于口径正确,且这种调整不可复现}
{正解:先固定口径与分类规则,再在口径正确的范围内选参数}
{判断依据是分类和与总量相符、窄幅区段不频繁翻转}
判断依据应当是前面几节的客观项,而不是曲线形态主观上是否顺畅。按形态调参得到的参数值换一段数据就失效。
八、分类与累加的分开验证
分类与累加是两步,验证也要分两次做。两步合在一起验证时,出错无法归因。
{第一步:验证分类}
把两个方向的分类结果分别输出成 0/1 线
观察在什么条件下某一类为真
{判据:分类标记的翻转频率是否与成交活跃程度对应}
{第二步:验证累加}
对分类结果分别累加,输出两条累加线
{判据:两条线之和是否等于总量字段}
第一步的判据是翻转频率。在成交清淡的区段,分类标记应当相对稳定;频繁翻转说明分类标准对该区段的价格波动过于敏感。
九、分类门槛的设定依据
按金额分档的分类方式里,门槛值决定进入统计的成交占比。这个占比是可以观察的,不应当靠试出来。
| 门槛相对水平 | 进入统计的成交占比 | 输出特征 |
|---|---|---|
| 偏低 | 高 | 接近全部成交,方向性弱 |
| 适中 | 中 | 形态稳定,方向可辨 |
| 偏高 | 低 | 样本稀少,输出抖动明显 |
把占比统计出来,就能判断门槛是否落在适配区间。统计办法是数一数达到门槛的成交笔数,与总笔数相除。
{占比统计的思路}
达门槛笔数 / 总笔数 = 进入统计的比例
{在若干个门槛档位上分别统计,画出比例随门槛的变化}
{选择比例变化平缓的那一段作为门槛区间}
比例随门槛的变化曲线会有一个转折位置。门槛落在转折之前的区段,占比对门槛不敏感,参数变化的影响小;落在转折之后,占比对门槛敏感,输出的稳定性差。
十、与总量字段不符时的排查顺序
- 确认方向字段的取值集合。取值范围与理解的类别数是否一致。
- 确认门槛判断是否把所有未达门槛的成交都置为同一类。有第三类混入时,两类之和不等于总量。
- 确认累加窗口是否覆盖了全部数据。窗口之外的数据自然不在两条累加线里。
- 确认字段单位。金额类字段的量级与总量字段是否一致。
第二行是最容易出问题的一项。分类时若存在第三种状态(例如未达门槛、方向不明),它们既不归入第一类也不归入第二类,两类之和对不上总量。
相关口径对照可以看 指标原理与参数 一栏;累加类函数的写法见 通达信公式编写教程 一栏;分类与累加结果需要验证的口径见 指标回测与风险验证 一栏。
通达信主力资金指标公式的参数调整,入口在分类规则与统计窗口两处,两处不能同时动。把分类正确性用「分类和与总量相符」这一条验过之后,参数调整才有意义。
文中函数名与字段名按通达信 PC 版公式系统的常见写法描述;不同版本与券商定制版在逐笔数据粒度、方向标记字段与函数签名上存在差异,具体请以你所用客户端帮助文档为准。本文只讨论计算口径与参数机制,不构成任何投资建议。
