无论有多忙,当看到评论区网友那天马行空的奇思妙想,总会让人升腾起无尽的力量,一定要实现算法的建立,请看留言:
网友的留言
(资料图)
网友留言的思路是: 7天内有6天收盘价创出新高---出现单根阴线时过滤掉仍然视同为7连阳,建立筛选算法。
思路步骤:
简单理解,当前的七个收盘数据存在有六个“连续”向上; 输出收盘价格线; 输出“日前的”收盘价格线; 题目里的思路所需要达到的空间性质,请见如下示意图: 上图中的“所需要”的空间位置,使用反过来的 排除法 ,允许有一个交易日不成立:如果第6个数据的收盘价相对第7个数据的收盘价是向上的,那么上图中最近5个数据中的三条线最多只能有一个交易日出现交叉;
2.如果第6个数据的收盘价相对第7个数据的收盘价是向下的,那么上图中最近5个数据中的三条线不存在交叉;
3.我们只需要使用COUNT函数,限定7个数据中
a.如果第6个数据的收盘价相对第7个数据的收盘价是向上的
三条线发生交叉的次数小于等于1或者不交叉的次数>=4(或者等于5)即可;
b.如果第6个数据的收盘价相对第7个数据的收盘价是向下的
三条线发生交叉的次数小于等于1或者不交叉的次数等于5即可。
本文选用“不交叉”也即“C>REF(C,1)>REF(C,1=2)”的空间序列来建立思路。
算法建立
1. 输出收盘价格线;输出“1日前的”收盘价格线;输出“2日前的”收盘价格线;
七个收盘线:=IF(CURRBARSCOUNT<=7,C,DRAWNULL);
六个收盘线:=IF(CURRBARSCOUNT<=6,REF(C,1),DRAWNULL);
五个收盘线:=IF(CURRBARSCOUNT<=5,REF(C,2),DRAWNULL);
2. 如果第6个数据的收盘价相对第7个数据的收盘价是向上的
REF(七个收盘线,5)>REF(六个收盘线,5)
COUNT(RANGE(六个收盘线,五个收盘线,七个收盘线)=1,5)>=4
3. 如果第6个数据的收盘价相对第7个数据的收盘价是向下的