我们先对上一节内容做个回顾。在上一节,我们分析了关键位中可能存在引用未来数据的问题,然后为了解决这一问题,我们结合实际情况,对关键位的定义设定了四个条件。那么,本节,我们就尝试将四个条件编写成通达信公式。由于是画关键位,公式编写中会用到未来函数,正文也会具体解释。

一、关键位指标公式编写步骤详解

1、确定最近的拐点

我们首先要找到距离当前价格最近的一个有效拐点。

按照条件要求,第一个有效拐点,是距离当前价格最近的一个转折点,这个转折点可以是波段的最高值,也可以是波段的最低值。但是上一个波段的周期是多少,我们并不知道。因此这里,我们采用两个函数PEAK和函数TROUGH来获取上一个波峰和波谷的值。

比如:

VAR1:PEAK(1,10,1),DOTLINE;{波峰值}

VAR2:TROUGH(2,10,1),DOTLINE;{波谷值}

需要注意的是PEAK、TROUGH在通达信中属于未来函数,其作用就是获取波段的转折点,通过这两个函数,我们可以获取到上面定义的拐点。

2、获取最近的一个有效拐点

通过上面一步,当前的行情走势一定是落在上面var1和var2之间的区间内。因此,我们需要进一步确认谁是最近的那个拐点。

我们通过比较当前最新的收盘价与var1与var2的绝对值的差值,谁绝对偏差值越小,那么谁就是我们需要的最近的那个拐点。

因此,通过一个IF语句来做判断赋值:

VAR3:IF(ABS(C-VAR1)-ABS(C-VAR2)>=0,VAR2,VAR1),DOTLINE,COLORWHITE;{获取最近一个有效拐点}

3、判断是否为关键位拐点

上面的var3实际上已经将历史上所以的有效拐点都找出来了。接下来,我们要对拐点做进一步的确认,判断其是否满足关键位拐点的要求。

关于关键位拐点的具体定义,详见《裸k交易指标编写五:关键位的指标公式的设计思路》,此处不在赘述。

在关键位判断上,我们实际上有个迭代的过程,由于通达信中无法使用for循环函数,所以,我们此处依然采用自定义函数的方式,通过动态参数N来获取不同位置的有效拐点。

我们新建一个副图公式,在画线方式上选择副图(叠加k线),给副图公式随便取个名字,比如我这里叫keyline,然后设置1个动态参数N,最小值为1,最大值为5,缺省设置为1。

然后继续编写如下公式:

{判断是否为关键位拐点}

VAR41:=MIN(C,O)>=CONST(VAR3) AND L<=CONST(VAR3);{下影线触及拐点}

VAR42:=MIN(C,O)

VAR4:=VAR41 AND VAR42;

VAR51:=MAX(C,O)<=CONST(VAR3) AND H>=CONST(VAR3);{上影线触及拐点}

VAR52:=MAX(C,O)>REF(MAX(C,O),1) AND MAX(C,O)>REFX(MAX(C,O),1);{波段顶}

VAR5:=VAR51 AND VAR52;

VAR6:=VAR4 OR VAR5;{满足穿过拐点的情况为有效点,找出所有的可能有效拐点}

这个模块是判断是否为关键位拐点的核心代码,为了便于理解,同样做了注释。

我们来对上面代码块的意思做个解释。因为关键位可能是阴线,也可能是阳线,可能是底部,也可能在顶部,其最主要的特征概括起来有两类,一是在底部,由下影线构成的支撑位,二是在顶部,由上影线构成的压力位。代码块中的var4和var5就是对应这两种情况。

此处,我们用到了一个函数REFX,这个函数在通达信中也会标示为未来函数,意思是获取下一个k线的行情,在此处的作用是判断该位置是一个有效的转折点。

此处虽然为未来函数,但是不用担心信号的漂移问题。具体原因我们在上一节已经做了详细的解释。此处再说明一下,因为我们在判断关键位的拐点的时候,实际行情已经走完了整个拐点周期,也就是说,此处引用次日的数据实际是已经发生的历史数据,并不会对最新的行情产生影响。

4、确认有效关键位

再下一步,就是对关键位信号的确认。通过VAR9:=COUNT(VAR8,250)>=3 AND VAR8;来进一步要求,该处的拐点所在水平线在过去一年内至少经过了3次及以上的反复确认。

5、考虑新高的情况

最后,我们还需要考虑新高的可能性。如果当前的价格是最近一年的新高,那么此时的价格一定是在关键位水平线上方,且没有下一个关键位。

此时,我们采用黄金分割线的比例23.6%来作为未来的关键位,当突破后再次按比例上调,具体比例如下图:

二、关键位的通达信副图公式:

我们将上述步骤汇总到一起,编写最终通达信公式如下图:

三、实际示例图

【风险提示:文中所分享案例及过往历史案例,均只作为逻辑和思路的学习辅助,观点仅供参考,不构成任何投资建议,也不作为操作依据,据此入市,后果自担;投资有风险,入市需谨慎。】

下图中,洋红色线即为最新的关键位,随着行情的变动,该关键位会自动调整,其中N=1,即第一个拐点即为关键位。

有时候第一个拐点,并不能通过关键位的条件验证,当N=1时无法得到关键位,比如下图:

第一个拐点验证失败了,按照逻辑,将验证第二个拐点,我们将参数N的缺省值修改为2,修改后我们得到了关键位线,也即第二个拐点符合裸k交易法中的关键位的定义。

四、小结

通过上面的分析和实例,可以看到我们基本已经解决了裸k中最重要的一个环节,关键位的自动画线的编程设计。

在关键位的自动画线的设计中,我们采用了几个未来函数。经过分析,我们也知道该未来函数的引用并不会影响最终的结果的判断。

记住,行情是走出来的,不是通过历史画出来的。

虽然,我们解决了关键位的编程,但是,由于需要迭代,所以采用的是自定义函数的方式,因此,该副图只是中间的一个过程,还需要通过函数调用的方式继续整合到pinbar的副图中去。

具体的操作,我们下一节再继续深入。

【END】

【END】

裸k专题文章目录:

1、裸k交易指标编写一:pinbar的定义

2、裸k交易指标编写二:组合形态的pinbar的公式编写

3、裸k交易指标编写三:新建副图整合不同形态的pinbar

4、裸k交易指标编写四:pinbar信号有效性研判的八个条件

5、裸k交易指标编写五:关键位的指标公式的设计思路

喜欢本文的亲们,请在页尾点哦!





追加内容

本文作者可以追加内容哦 !