大智慧引用函数FILTER、SUMBARS运用
1、函数:FILTER 信号过滤 过滤连续出现的信号。 用法:FILTER(X,N),X满足条件后,删除其后N周期内的数据置为0。 例如:FILTER(CLOSE>OPEN,5),查找阳线,5天内再次出现的阳线不被记录在内。请看下面指标: 顶底背离:0,COLORYELLOW; A1:=BARSLAST(ref(cross("macd.diff"(12,26,9),"macd.dea"(12,26,9)),1)); B1:=ref(c,A1+1)>c and ref("macd.diff"(12,26,9),A1+1)<"macd.diff"(12,26,9) and cross("macd.diff"(12,26,9),"macd.dea"(12,26,9)); MACD底背离:STICKLINE(FILTER(B1>0,5),0,0.75,3,0),COLOR00FF00;{5天内B1>0的条件不被记录在内,在当前周期内出现B1>0画绿色柱线} DRAWTEXT(FILTER(B1>0,5),0.57,'MACD底背离'),COLOR00FF00; A2:=BARSLAST(ref(cross("kdj.k"(9,3,3),"kdj.d"(9,3,3)),1)); B2:=ref(c,A2+1)>c and ref("kdj.k"(9,3,3),A2+1)<"kdj.k"(9,3,3) and cross("kdj.k"(9,3,3),"kdj.d"(9,3,3)); KDJ底背离:STICKLINE(FILTER(B2>0,5),0,1,3,0),COLORYELLOW;{5天内B2>0的条件不被记录在内,在当前周期内出现B>0画黄色柱线} DRAWTEXT(FILTER(B2>0,5),0.80,'KDJ底背离'),COLORYELLOW; A3:=BARSLAST(ref(cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24)),1)); B3:=ref(c,A3+1)>c and ref("RSI.RSI1"(6,12,24),A3+1)<"RSI.RSI1"(6,12,24) and cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24)); RSI底背离:STICKLINE(FILTER(B3>0,5),0,0.5,3,0),COLORFFCC66;{5天内B3>0的条件不被记录在内,在当前周期内出现B3>0画青色柱线} DRAWTEXT(FILTER(B3>0,5),0.25,'RSI底背离'),COLORFFCC66; 2,COLORRED; C1:=BARSLAST(ref(cross("macd.dea"(12,26,9),"macd.diff"(12,26,9)),1)); D1:=ref(c,C1+1) MACD顶背离:STICKLINE(FILTER(D1>0,5),2,1.25,3,0),COLOR0066FF;{5天内D1>0的条件不被记录在内,在当前周期内出现D1>0画橘黄色柱线} DRAWTEXT(FILTER(D1>0,5),1.47,'MACD顶背离'),COLOR0066FF; C2:=BARSLAST(ref(cross("kdj.d"(9,3,3),"kdj.k"(9,3,3)),1)); D2:=ref(c,C2+1) KDJ顶背离:STICKLINE(FILTER(D2>0,5),2,1,3,0),COLORRED;{5天内D2>0的条件不被记录在内,在当前周期内出现D2>0画红色柱线} DRAWTEXT(FILTER(D2>0,5),1.2,'KDJ顶背离'),COLORRED; C3:=BARSLAST(ref(cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24)),1)); D3:=ref(c,C3+1) RSI顶背离:STICKLINE(FILTER(D3>0,5),2,1.5,3,0),COLORFF00FF;{5天内D3>0的条件不被记录在内,在当前周期内出现D3>0画粉色柱线} DRAWTEXT(FILTER(D3>0,5),1.75,'RSI顶背离'),COLORFF00FF; 这是一个引用FILTER函数比较多的指标,请认真研究和体会一下语句的用法。 2、函数:SUMBARS 累加到指定周期数 向前累加到指定值到现在的周期数。 用法:SUMBARS(X,A),将X向前累加直到大于等于A,返回这个区间的周期数。 例如:SUMBARS(VOL,CAPITAL),求完全换手到现在的周期数。 这个函数好用,在于它不但能精确地得到统计结果,而且能得到“模糊”的结果。 就以SUMBARS(VOL,CAPITAL)为例: 日期数:SUMBARS(VOL,CAPITAL);{返回成交量累加到流通盘的日期数} 验证:SUM(V,日期数)/CAPITAL;{把返回的日期数之内的成交量累计,再除以流通盘} 运行的结果中,我们可以看到,“验证”的输出,除了SUMBARS起算点附近之外,从来没有小于1的。可见SUMBARS只往多算,不往少算。请看下面指标: Var1:=(CLOSE-LLV(LOW,45))/(HHV(HIGH,45)-LLV(LOW,45))*100; Var2:=SMA(Var1,3,1); Var3:=SMA(Var2,3,1); VarB:=SUM(IF(CLOSE>REF(CLOSE,7),VOL,IF(CLOSE<> VarC:=SUMBARS(VOL,CAPITAL);{求完全换手到现在的周期数} VarD:=IF(CLOSE>LLV(CLOSE,VarC),1,-1); VarE:=IF(VarB>LLV(VarB,VarC),1,-1); VarF:=VarD*VarE; Var10:=IF(VarF=-1,1,0); 关注:IF(Var10 AND CLOSE=LLV(CLOSE,20) AND Var3<12,70,1),colorffcc66;{在图上0--70的坐标处显示青色脉冲信号} V1:=SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE<> V2:=SUMBARS(VOL,CAPITAL);{求完全换手到现在的周期数} V3:=IF(CLOSE>LLV(CLOSE,V2),1,-1); V4:=IF(V1>LLV(V1,V2),1,-1); V5:=V3*V4; V6:=IF(V5=-1,1,0); V7:=COUNT(V6=1,8)>2; V8:=AMOUNT/VOL/100; V9:=(3*HIGH+LOW+OPEN+2*CLOSE)/7; VA:=SUM(AMOUNT,13)/V8/100; VB:=DMA(V9,VOL/VA); VC:=(CLOSE-VB)/VB*100<-15; VD:=(CLOSE-MIN(REF(CLOSE,5)*0.865,REF(CLOSE,21)*0.772))/CLOSE<0.05; 长针:(VC AND VD AND V7)*60,coloryellow;{在图上0--60的坐标处显示黄色脉冲信号} |
|