通达信买卖点指标公式这类写法,在公式层面要处理的核心只有一个:把两个条件同时成立的位置标出来。难点不在写法本身,而在于它给出的标记只是「某个条件在那个位置成立」这件事的记录,与后续价格怎么走是两件事。这篇只从公式结构与计算口径的角度拆解,并说明参数变化会把标记挪到什么位置。
文中涉及的函数名与参数写法按通达信 PC 版的常见形态描述。不同版本与券商定制版在函数行为与图上呈现方式上存在差异,涉及具体取值的地方请以你所用客户端的测试结果为准。
一、这类公式在做什么
把这类公式的命名与实际计算分开看,公式实际做的事是把两个独立条件的交集算出来并在图上标出位置。名称里带的字眼只是历史沿用的叫法,标记本身是计算的产物,不是结论。
| 公式里的一步 | 实际计算内容 | 与标记的关系 |
|---|---|---|
| 算出快慢两条线 | 两段不同长度的均值 | 决定用哪两个量比较 |
| 判断交叉 | 比较当前与前一根的差值符号 | 决定标记出现在哪一根 |
| 叠加过滤条件 | 再加一个量的比较 | 决定标记数量 |
| 输出标记 | 条件成立时画符号 | 呈现位置 |
看懂这张表之后,参数调整的影响就明确了:改周期会挪动标记的位置,改过滤条件会改变标记的数量。两者都不改变「标记只是条件成立的记录」这一性质。
二、交叉判断的写法
交叉要用「当前成立且前一根不成立」来表达,不能只用「当前成立」。
{交叉的正确写法}
快:=MA(CLOSE,N1);
慢:=MA(CLOSE,N2);
差值:=快-慢;
上穿:=差值>0 AND REF(差值,1)<=0;
下穿:=差值<0 AND REF(差值,1)>=0;
{只写当前成立的问题}
错误写法:
上穿:=差值>0;
问题:只要差值在零轴之上,条件在每一根都成立
标记会连成一片,看不出具体是哪一根发生的变化
这两者的差别在图上很明显:正确的写法只在交叉发生的那一根出现标记,错误的写法会从交叉之后一直标到条件结束。用历史数据核对时,后者会让标记的数量看起来远多于交叉次数。
三、通达信买卖点指标公式的标记输出
标记的呈现方式有多种,选择哪一种取决于想让它显示在哪个位置。
{标记输出的两种方式}
方式一:在价格上方或下方做符号
1. 用画符类函数,条件成立时在指定高度画一个符号
2. 高度参数决定符号相对价格的位置
3. 该参数按价格区间折算,固定值在不同价位的对象上位置不同
方式二:输出条件本身
条件:上穿;
含义:图上按条件的真假呈现,可用于叠加到其他公式里
第一种方式适合直接观察,第二种方式适合作为中间结果被其他公式引用。若要放到预警里使用,必须用第二种,因为预警需要的是真假值。
四、参数变化把标记挪到哪里
参数不同,标记出现的位置会整体前后移动。这不是公式写错了,而是周期长度改变导致的直接结果。
| 参数调整 | 标记位置的变化 | 标记数量的变化 |
|---|---|---|
| 两个周期都调小 | 标记出现得早 | 数量增加 |
| 两个周期都调大 | 标记出现得晚 | 数量减少 |
| 两个周期拉大差距 | 交叉次数减少 | 数量明显减少 |
| 两个周期缩小差距 | 交叉频繁出现 | 数量显著增加 |
把参数调到差距很小的取值时,两条线会长期贴合,差值在零轴附近反复穿越,标记数量会多到失去可辨识度。这一点在调参时值得先核对一次。
五、过滤条件的作用与代价
叠加过滤条件是减少标记数量的常见做法。
{加一个过滤条件}
原始条件:=上穿;
叠加一个量的约束:
量能:=VOL>MA(VOL,N3)*倍数;
最终:=原始条件 AND 量能;
效果:只在同时满足两个条件的位置标记
过滤条件的代价是可能把符合条件的交叉一起过滤掉。过滤得越严格,剩下的标记越少,但同时也越可能是由特殊情形造成的,而不是一个可以重复出现的形态。过滤条件加了几层之后,需要回头核对剩下的标记是否还有足够的样本量,否则调整参数时就缺少可参照的依据。
六、失效情形
以下情况会让标记与预期不符,属于计算口径层面的问题。
{三类失效情形}
情形一:前置数据不足
均线在最初若干根没有值,差值也无法计算
表现:图表最左侧一段时间内完全不出现标记
情形二:数据缺口
中间存在停牌或数据缺失的位置,引用前一根时取到的是缺口另一端的数据
表现:标记出现在与相邻位置不连贯的地方
情形三:参数取到极端值
两个周期接近相等时差值长时间贴近零轴
表现:标记密集,且位置随数据微小变化而改变
把这三种情形在图上逐个找一次,能对这条公式的适用范围有一个具体的认识。第三步最值得做,因为它决定了参数调整的下限在哪里。
七、结果核对的三步动作
公式写完到能用,中间要过一次核对。按下面三步走,能把常见写法问题挡在前面。
{结果核对}
第一步:验交叉的数量
把「当前成立」与「当前成立且前一根不成立」两个版本分别输出
同一段数据上,后者的标记数应当明显少于前者
若两者数量接近,说明交叉表达式写错了
第二步:验标记与数据对得上
找一个标记位置,把参与比较的两个量同时输出到图上
确认标记的那一根确实是两个量的先后关系发生反转的位置
对不上则检查引用前值的函数用的是几根之前
第三步:验边界不塌陷
把每个参数各调到最小值与最大值跑一次
最小值端不应出现标记密集到无法分辨
最大值端不应出现一整段完全没有标记
第一步最简单也最直观。两种写法的标记数量如果有明显差距,说明交叉判断确实在比较前后两根;数量接近时,问题基本可以定位到表达式本身。第二步把标记与原始数据对上,能排除引用根数写错这类不容易察觉的问题。
八、三种常见的写错方式
下面三种在写法层面就能发现,不需要等图上出问题。
| 写错方式 | 表现 | 原因 |
|---|---|---|
| 只用当前成立 | 标记连成一片 | 没有与前一值比较 |
| 过滤条件写反 | 标记数量异常少 | 比较方向与预期相反 |
| 参数写进代码 | 调整要改源码 | 周期未提成参数 |
第二行的表现与「参数拉到极端」很像,区分方法是先确认过滤条件的比较方向,再动参数。顺序颠倒会把写法问题误判成参数问题。
九、写这类公式时值得固定下来的做法
{固定做法}
1. 交叉一律用「当前成立且前一根不成立」表达
2. 均线周期提成参数,不在代码里写死数字
3. 参数最小值设定为实际有意义的下限,不留给 0 或 1
4. 标记只承载条件成立与否的信息,不在公式里附加别的含义
5. 保存前把两个参数各调到边界试一次,确认不出现密集或空白
第 3 项的作用是把使用范围固化下来。参数的最小值写清楚,后来调整的人就不必重新摸索下限在哪里。
相关延伸:信号类写法的条件组合方式,见 量价形态与信号拆解 一栏;公式的语句结构与基础写法,见 公式编写教程 一栏;把这类条件用于自动提醒时的设置方法,见 选股公式与预警 一栏。
通达信买卖点指标公式的写法本身不复杂,复杂的是对它输出内容的定位:它记录的是某个条件在历史上成立的位置。把这一点与写法分开之后,参数怎么调、过滤加几层,就都变成可控的技术选择。本文只讨论公式写法与计算口径,不构成任何操作依据。
文中目录名、文件后缀与菜单名按通达信 PC 版的常见形态描述;不同版本与券商定制版在目录结构、命名约定与菜单路径上存在差异,具体请以你所用客户端帮助文档为准。本文只讨论操作步骤与文件机制,不构成任何投资建议。
