龙听期货论坛's Archiver

龙听 发表于 2018-1-29 16:04

程序交易 - 指标背离判断方式

关于背离…简单的来说,背离的条件就是在价格创新高的情况下,指标没有创新高;或是价格创新低时,指针没有跟着创新低。这样的条件说来简单…自己看图也可以很简单的指出哪边背离哪边又背离的…可是当要写成程序就不这么简单了。

    用了很多的方法想写出背离的程序…连 Array 都差点拿来用了,结果都不太正确…一直到最近跟某个高手讨论才写出了下面的判断方法…


这个程序只算是一半,只有写出背离的判断…至于判断产生背离后要怎么去做,那就让大家自行发挥了。


首先看一下这一段判断高点背离的程序代码:
if high > highest(high[1], 70) then
begin
    value1 = barnumber;
    value2 = highest(high[21], 50);
    for value3 = 21 to 70 begin
      if high[value3] = value2 then value4 = value3;
    end;
    if high > value2 and KD < KD[value4] then LongDC = 1;
end;
if LongDC = 1 and KD > KD[barnumber - value1 + value4] then LongDC = 0;


看完了程序代码应该很多人头昏了…解释一下这段程序代码在作什么。


首先,如果目前的高点是最近 70 根 k 线的高点的话…就把目前的 barnumber 记录下来,并且抓出次高点。在这边我所抓的次高点是离新高的 20 根 k 线之前的 50 根 k 线。接着再用一个 for 循环把次高点出现的距离算出来。


到这边可以知道目前有的数据就是当根为新高,另外也知道了次高点所在的位置,就开始判断一下两者的指标是不是也有跟着创新高,或是有背离的产生。


LongDC 为一个变量…用来记录目前是不是有背离的产生…


最后一部份就是什么时候这个背离是失效的。这边写入了…目前如果 LongDC = 1 (也就是背离的情况) 之后指标又创新高了…那当然这个背离就是失效了。就跟着把 LongDC 的值改回为 0 啰。


程序说明就到这边…低点背离的情况就反着写就行了…有兴趣就自行玩玩看啰。

页: [1]