如何做好双底模型(双底的通用算法)
双底的算法很多,如何取舍呢?更多的时间里觉得,看起来越傻的思路反而是最优的,请看网友的留言截图:
网友的留言
留言的需求是,当KDJ的J值小于0后并形成双底时,进行数据的筛选,算法如何建立呢?
思路步骤
- 引用系统指标KDJ,并对原有输出进行赋值处理;
- 应用价格的第一个谷的位置来界定当前J值双底发生的时间范围;
- 在价格的第一个谷的位置时间范围内,应用函数LLVBARS计算J值的第一个底点的位置;
- 在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<REF(J,1) AND J<REFX(J,1),WZ1)),DRAWNULL);
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<REF(J,1) AND J<REFX(J,1),WZ1)),DRAWNULL);
J<0 AND WZ1-WZ2<=双底间隔;
效果示意
效果图1
效果图2
效果图3
效果图4
计算创造价值,分享助力成功,代码均可运行。
江丰鱼的文章只在今日头条首发,未经授权禁止引用或者转载。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com