打开一份自带的顶部类指标,把源码从上往下读,最先要弄明白的不是条件写了几个,而是这个高点是怎么被确认的。通达信顶部信号拆解的核心分歧就在这里:判据依赖的是左侧已经走完的数据,还是把后一根的取值也拉了进来。前者在图上标出的点是事后才稳定的,后者会随着新数据出现而移动。把这一层分清,后面讲参数、讲误判才有落点。

一、顶部判据依赖哪一侧数据

高点确认需要一段回看窗口,窗口里的数据都已经走完,这类判据只用到左侧数据,是稳定的。麻烦出在另一类写法上:为了让拐点更「提前」,源码会用 REF 取后面若干根的值来参与比较。

写法 取数方向 图上表现
只用回看窗口 只取当前根与左侧根 标记位置固定,不随新数据移动
用负位移取右侧 取当前根右侧若干根 标记会移动,历史位置随时间改写

第二类写法在读取历史时,读到的是当根之后已经发生的数据,在实盘运行时读不到未来,所以两种状态下同一段源码给出的标记位置不同。这就是判断顶部类指标时最先要确认的一件事。

二、顶部判据的常用构造

常见的构造有三层,写法不同,依赖的数据侧也不同。

窗口内极值比较

用一段回看窗口取最高价,再判断当前根是否等于这个极值。这类写法只用左侧数据,是稳定的那一类。

窗口极值加确认根

在极值判据后面加一个确认条件,要求极值出现之后再过若干根才标记。加入确认根之后,标记位置会滞后若干根,代价是滞后,换来的是不移动。

拐点类函数

用专门的拐点识别函数取波峰位置。这类函数的实现方式决定了它是否依赖右侧数据,具体行为以本机函数说明为准,不同版本的实现存在差异。

{窗口内极值比较:只用左侧数据,标记不移动}
N := 20;
HH := HHV(H, N);

{当前根创出窗口内新高}
NEWHIGH: H > REF(HHV(H, N), 1);

{加入确认根:极值出现之后再等两根才标记}
CONFIRM: REF(NEWHIGH, 2);

把这三层的写法分开看,顶部类源码的结构就清楚了:前面取极值,中间定判据,后面加确认。三层里哪一层引入了右侧数据,整段判据的稳定与否就取决于它。判断一段顶部类源码可不可信,与其逐行读完,不如先定位它落在哪一层,再针对性核对。

把这三层的写法分开看,顶部类源码的结构就清楚了:前面取极值,中间定判据,后面加确认。读源码时按这三层定位,比从头逐行读效率高。

三、未来函数特征怎么识别

顶部信号拆解绕不开未来函数的识别,因为顶部天然是一个「事后才知道」的位置,源码作者为了让标记更贴合极值,容易引入右侧数据。

识别办法有两条。第一条是看 REF 的位移参数。REF(X, N) 里 N 为正取左侧,N 为负取右侧,出现负位移就说明用到了当前根之后的数据。第二条是看是否用了专门的未来函数,这类函数的名称与行为可以在本机函数说明里查到。

还有一个不写在源码里的识别办法:把这段指标挂到图上,记下它在某一段历史区间的标记位置,过一段时间再看同一个区间。标记位置变了,就是用到了右侧数据;位置没变,就是稳定的那一类。这个办法不需要读源码,但要等一段时间,且需要同一段数据保持可比。

指标带未来函数不等于写错了。问题在于读图时会把它当成实时的标记,把事后才出现的位置当成当时就有的信号。写这类指标时,在说明栏里注明依赖哪一侧数据,比在源码里修掉这个特性更实际。

四、三类误判场景

顶部判据的误判来自三个方向,各自的核对办法不同。

  • 把右侧数据的标记当成实时信号。表现是复盘时看着标记位置很准,实盘时同一个位置还没出现。核对办法是做一次错位对照,见下一节。
  • 把窗口下沿的点当成顶部。窗口取二十根时,二十根之内的最高点也会被标记,其中有一部分并不是一个真正的高点。这类误判会随着窗口变大而减少,代价是标记更滞后。
  • 把走平的一段当成拐点。价格在一个窄幅区间里横向走动时,窗口内的极值会反复被刷新,标记密集出现。这类误判的根源是判据用的是「等于极值」而不是「明显高出」,两者在走平区间的表现差别明显。

三类误判都不产生报错,指标照常画标记,只有在具体区段上做对照才看得出来。

三类误判里,第二类最容易被忽略,因为窗口下沿的点在图上确实是一个局部高点,肉眼看不出问题。要把它挑出来,得换一个角度:把同一段判据用两个相差一倍的窗口长度各跑一次,两次都标记的位置是两种窗口都确认的,只在长窗口里出现的位置多半就是短窗口的下沿点。这一步不做,判据的疏密是否合理就没有参照。

五、用错位对照做验证

通达信顶部信号拆解读到这一层,下一步是验证:判据到底稳不稳定,用错位对照最直接。做法是把同一段判据的输出,与它向右平移若干根之后的结果放在一起比较。

{把原判据与向右平移的版本并排放在一起}
SIG := H > REF(HHV(H, 20), 1);

{原判据}
RAW: SIG;

{用 REF 向右平移两根的版本,两个信号都画出来对比}
SHIFT: REF(SIG, 2);

如果两个信号在位图上完全重合,说明原判据本身就是滞后两根的,没有用到右侧数据。如果两者不重合,说明原判据的位置早于真实可得的时点,其中就包含右侧数据。这个对照只用左侧数据,任何版本都能跑。

错位对照的另一个用处是比较两个窗口。同一个判据用二十根窗和六十根窗各跑一次,两个信号重合的部分是两种窗口都能确认的位置,只出现一个的部分说明窗口选择在起作用。

六、核对顺序与记录

把上面几节收成一份顺序,每次读一份新的顶部类源码都走一遍。

  1. 读源码里所有 REF 的位移参数,找出有没有负值。
  2. 核对用到的函数名,在函数说明里查它是否依赖右侧数据。
  3. 按三层结构定位:取极值、定判据、加确认,看哪一层的写法与预期不同。
  4. 做一次错位对照,把原判据与平移两根的版本并排画出来。
  5. 换一次窗口长度重跑,确认标记的疏密变化符合预期,把两次的窗口值记在说明栏里。

这五步走完,通达信顶部信号拆解的两个核心问题就各自有了读数:判据依赖哪一侧数据、滞后又有多长。把这两项读出来,一段源码的脾气就摸清了。需要说明的是,函数名称与实现细节在不同版本和券商定制版之间存在差异,具体以本机函数说明为准;界面入口也请按自己的客户端核对。

本文只作技术研究口径,全部内容围绕信号构造与数据依赖展开,不涉及也不构成对任何标的的判断或取舍建议。通达信顶部信号拆解的最后一步,是把判据依赖的数据侧、窗口长度、滞后根数这三项写进公式说明栏。这三项写清楚了,后面无论谁读这段源码,都不需要重新走一遍上面的顺序。

站内还有 量价形态与信号拆解、指标原理与参数 与 公式编写与语法 可以对照阅读。

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