从网友的留言思路的建立,到最后算法的实现,显而易见,给出了清晰的“条件限定”的重要性这样一个提醒,请看网友的留言截图:
网友的留言
网友的思路需求是说: 最高价下跌下来的30天内,出现了2次上穿五日均线 ,如何建立算法来表达?
(资料图片)
(一)、思路步骤:
1.出现两次上穿5日均线的时间区间是“发生在最近的30个数据之内”;
2. “发生在最近的30个数据之内”,这个条件又是发生在自最高点向下的过程之中;
3.“最高价向下”的这个最高价的取得,使用HHVBARS函数来确定,大于等于30个数据即可;
4.“2次”的确定,使用COUNT函数等于2。
(二)、算法的建立:
1.计算左侧高点的位置,这里采用100个数据的最高价的位置,可以改变,但是不能小于等于30
HHVBARS(H,100)
2.该高点位置要大于等于30个数据位,以保证后续条件的成立有30个数据的时间区间
HHVBARS(H,100)>=30
3.在最近的30个数据中统计上穿的次数为2
COUNT(CROSS(C,MA(C,5)),30)=2;
(三)、完整的表达:
A.数据筛选算法
代码流程1
HWZ:=CONST(HHVBARS(H,100));
HWZ>=30 AND COUNT(CROSS(C,MA(C,5)),30)=2;
B.主图标注算法
代码流程2
HWZ:=CONST(HHVBARS(H,100));
MA5:MA(C,5);
DRAWICON(HWZ>=30 AND CROSS(C,MA5)=1,L,11);
(四)、最后的筛选效果示意图:
效果示意图1
效果示意图2
效果示意图3