双底的通用算法

双底的算法很多,如何取舍呢?更多的时间里觉得,看起来越傻的思路反而是最优的,请看网友的留言截图:

网友的留言

留言的需求是,当KDJ的J值小于0后并形成双底时,进行数据的筛选,算法如何建立呢?

思路步骤

  1. 引用系统指标KDJ,并对原有输出进行赋值处理;
  2. 应用价格的第一个谷的位置来界定当前J值双底发生的时间范围;
  3. 在价格的第一个谷的位置时间范围内,应用函数LLVBARS计算J值的第一个底点的位置;
  4. 在J值的第一个底点的时间范围内,应用函数BARSSINCEN计算J值的第二个底点的位置;

5.进行数据筛选的条件罗列,完成算法建立。

算法建立

1. 引用系统指标KDJ,并对原有输出进行赋值处理:

RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;

K:=SMA(RSV,M1,1);

D:=SMA(K,M2,1);

J:=3*K-2*D;

2. 价格的第一个谷的位置:

FW:=CONST(TROUGHBARS(2,转向比/100,1));{范围}

3. 计算J值的第一个底点的位置:

WZ1:=IF(J<0,CONST(LLVBARS(J,FW)),DRAWNULL);

4. 计算J值的第二个底点的位置:

WZ2:=IF(J<0,CONST(BARSSINCEN(J

5. 进行数据筛选的条件罗列:

J<0 AND WZ1-WZ2<=5;

五个参数与完整代码

参数表1

参数表2

{一周内双底,所以“双底间隔”缺省值为5}

RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;

K:=SMA(RSV,M1,1);

D:=SMA(K,M2,1);

J:=3*K-2*D;

FW:=CONST(TROUGHBARS(2,转向比/100,1));{范围}

WZ1:=IF(J<0,CONST(LLVBARS(J,FW)),DRAWNULL);

WZ2:=IF(J<0,CONST(BARSSINCEN(J

J<0 AND WZ1-WZ2<=双底间隔;


效果示意

效果图1

效果图2

效果图3

效果图4


计算创造价值,分享助力成功,代码均可运行。

江丰鱼的文章只在今日头条首发,未经授权禁止引用或者转载。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章