指标修改技巧——指标减肥法
【声明:此乃转自网上“中国其货”先生!不知道是先生??女士??】
感觉对于编写指标的人有很大帮助!———版主能置顶最好!!!
指标修改技巧(3)
指标减肥法
指标公式是由若干条语句组成的,在网上我们常常看到有的指标少则几十条,多则近百条,指标大的让人望而生畏。因为指标语句之间关联密切,互相调用,层层嵌套,有时编者也搞不清楚哪些语句被调用哪些没被调用,或者来不及校对,遗留下许多废语句也在所难免。要知道,我们在使用指标时计算机对每条语句都要进行计算后才得出结果,太多的废语句会使计算速度降低(当然我们凭肉眼是看不出来的),而且占用空间。说不定你现在使用的指标就肥指标,特别是很长的指标,有时间还是给指标减肥吧!下面结合实例介绍减肥的方法:
{VAR2:=1;
VAR3:=MA(CLOSE,13);
VAR4:=100-ABS(((CLOSE-VAR3)/(VAR3))*(100));
VAR5:=LLV(LOW,75);
VAR6:=HHV(HIGH,75);
VAR7:=(VAR6-VAR5)/(100);
VAR8:=SMA((CLOSE-VAR5)/(VAR7),20,1);
VAR9:=SMA((OPEN-VAR5)/(VAR7),20,1);
VARA:=(3)*(VAR8)-(2)*(SMA(VAR8,15,1));
VARB:=(3)*(VAR9)-(2)*(SMA(VAR9,15,1));
VARC:=100-VARB;
VARE:=(REF(LOW,1))*(0.89999997);
VARF:=(LOW)*(0.89999997);
VAR10:=((VARF)*(VOL)+(VARE)*(CAPITAL-VOL))/(CAPITAL);
VAR11:=EMA(VAR10,30);
VAR12:=CLOSE-REF(CLOSE,1);
VAR13:=MAX(VAR12,0);
VAR14:=ABS(VAR12);
VAR15:=((SMA(VAR13,7,1))/(SMA(VAR14,7,1)))*(100);
VAR16:=((SMA(VAR13,13,1))/(SMA(VAR14,13,1)))*(100);
VAR17:=BARSCOUNT(CLOSE);
VAR18:=((SMA(MAX(VAR12,0),6,1))/(SMA(ABS(VAR12),6,1)))*(100);
VAR19:=(((-200))*(HHV(HIGH,60)-CLOSE))/(HHV(HIGH,60)-LLV(LOW,60))+100;
VAR1A:=((CLOSE-LLV(LOW,15))/(HHV(HIGH,15)-LLV(LOW,15)))*(100);
VAR1B:=SMA((SMA(VAR1A,4,1)-50)*(2),3,1);
VAR1C:=((INDEXC-LLV(INDEXL,14))/(HHV(INDEXH,14)-LLV(INDEXL,14)))*(100);
VAR1D:=SMA(VAR1C,4,1);
VAR1E:=SMA(VAR1D,3,1);
VAR1F:=((HHV(HIGH,30)-CLOSE)/(CLOSE))*(100);
VAR20:=(VAR18<=25) AND (VAR19<(-95)) AND (VAR1F>20) AND (VAR1B<(-30)) AND (VAR1E<30) AND (VAR11-
CLOSE>=(-0.25)) AND (VAR15<22) AND (VAR16<28) AND (VAR17>50);
VAR21:=(HIGH+LOW+CLOSE)/(3);
VAR22:=(VAR21-MA(VAR21,14))/((0.015)*(AVEDEV(VAR21,14)));
VAR23:=(VAR21-MA(VAR21,70))/((0.015)*(AVEDEV(VAR21,70)));
VAR24:=IF((VAR22>=150) AND (VAR22<200) AND (VAR23>=150) AND (VAR23<200),10,0);
VAR25:=IF((VAR22<=(-150)) AND (VAR22>(-200)) AND (VAR23<=(-150)) AND (VAR23>(-200)),(-10),VAR24);
VAR20,Color0000FF,Linethick2;
CROSS(VAR20,0.5) AND (COUNT((VAR20=1),10)=1),Color00FFFF,Linethick2;}
VAR26:=((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27)))*(100);
{VAR27:=REVERSE(VAR26);}
VAR28:=SMA(VAR26,3,1);
快线:SMA(VAR28,3,1),Color0000FF;
慢线:SMA(快线,3,1),Color00FFFF;
金叉买:IF(CROSS(快线,慢线) AND (快线<40),35,0),Color0000FF,Linethick2;
这是一个经测试能通过的指标,那么公式还有问题吗?我们来分析一下就知道了。
第一步:打开指标编辑器,把指标源码复制粘贴到指标编辑器里,给指标随便取个名,》》 测试通过,说明这个指标可用,没有不可识别的标示符,》》 确认,回到K线图上调出该指标,看图形的效果。
第二步:在图形上看到了两条线和一个脉冲信号,那么这两条线和脉冲信号都调用了哪些指标语句呢?从指标的最后一条语句逐条往上看,金叉买这条语句调用了慢线和快线语句,慢线调用了快线语句,快线调用了VAR28语句,VAR28调用了VAR26语句,而VAR26往上没有调用任何语句,那么就可以认定这个指标是由VAR26、VAR28、快线、慢线、金叉买这5条语句构成的一个指标,其它的全是无用的废语句。
第三步:为了验证自己的判断是否正确,用大括号{}将VAR26上面的语句至VAR2全部括起来,再把VAR27括起来,点测试通过,再点确认,验证一下图形,效果如初,OK!
第四步:打开指标编辑器,把用大括弧括起的那部分(在指标编辑器里显示的是绿色[见下图])删除,点测试通过,确认,OK!
这是减肥后的指标:
VAR26:=((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27)))*(100);
VAR28:=SMA(VAR26,3,1);
快线:SMA(VAR28,3,1),Color0000FF;
慢线:SMA(快线,3,1),Color00FFFF;
金叉买:IF(CROSS(快线,慢线) AND (快线<40),35,0),Color0000FF,Linethick2;
再看这个指标:
{var2:=1/WINNER(CLOSE);}
var3:=MA(CLOSE,13);
var4:=100-ABS((CLOSE-var3)/var3*100);
{var5:=LLV(LOW,75);
var6:=HHV(HIGH,75);
var7:=(var6-var5)/100;
var8:=SMA((CLOSE-var5)/var7,20,1);
var9:=SMA((OPEN-var5)/var7,20,1);
varA:=3*var8-2*SMA(var8,15,1);
varB:=3*var9-2*SMA(var9,15,1);
varC:=100-varB;}
动力线: MA(WINNER(CLOSE*0.95)*100,3),LINETHICK2 ;
{varD:=动力线>var4;
varE:=REF(LOW,1)*0.9;
varF:=LOW*0.9;
var10:=(varF*VOL+varE*(CAPITAL-VOL))/CAPITAL;
var11:=EMA(var10,30);
var12:=CLOSE-REF(CLOSE,1);
var13:=MAX(var12,0);
var14:=ABS(var12);
var15:=SMA(var13,7,1)/SMA(var14,7,1)*100;
var16:=SMA(var13,13,1)/SMA(var14,13,1)*100;
var17:=BARSCOUNT(CLOSE);
var18:=SMA(MAX(var12,0),6,1)/SMA(ABS(var12),6,1)*100;
var19:=(-200)*(HHV(HIGH,60)-CLOSE)/(HHV(HIGH,60)-LLV(LOW,60))+100;
var1A:=(CLOSE-LLV(LOW,15))/(HHV(HIGH,15)-LLV(LOW,15))*100;
var1B:=SMA((SMA(var1A,4,1)-50)*2,3,1);
var1C:=(INDEXC-LLV(INDEXL,14))/(HHV(INDEXH,14)-LLV(INDEXL,14))*100;
var1D:=SMA(var1C,4,1);
var1E:=SMA(var1D,3,1);
var1F:=(HHV(HIGH,30)-CLOSE)/CLOSE*100;
var20:=var18<=25 AND var19<-95 AND var1F>20 AND var1B<-30 AND var1E<30 AND var11-CLOSE>=-0.25 AND var15<22 AND var16<28 AND var17>50;
var21:=(HIGH+LOW+CLOSE)/3;
var22:=(var21-MA(var21,14))/(0.015*AVEDEV(var21,14));
var23:=(var21-MA(var21,70))/(0.015*AVEDEV(var21,70));
var24:=IF(var22>=150 AND var22<200 AND var23>=150 AND var23<200,10,0);
var25:=IF(var22<=-150 AND var22>-200 AND var23<=-150 AND var23>-200,-10,var24);}
var26:=(CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100;
{var27:=REVERSE(var26);}
var28:=SMA(var26,3,1);
短线: SMA(var28,3,1),linethick2,COLORFF00FF;
鱼身: SMA(短线,3,1),linethick2,COLORWHITE;
买入信号: IF(CROSS(短线,鱼身) AND 短线<40 AND C>O,35,0),linethick2,COLORRED;
卖出信号: IF(CROSS(鱼身,短线) AND 鱼身>75,70,100),linethick2,COLOR00DD00;
这也是一个经测试能通过的指标,看看它有没有废语句。
第一步:打开指标编辑器,把指标源码复制粘贴到指标编辑器里,给指标随便取个名,》》 测试通过,说明这个指标可用,没有不可识别的标示符,》》 确认,回到K线图上调出该指标,看图形的效果。
第二步:在图形上看到了三条线和两个脉冲信号,那么这三条线和两个脉冲信号都调用了那些指标语句呢?先从动力线这条语句逐条往上看,动力线这条语句调用了VAR3和VAR4语句,VARC--VAR5和VAR2没有调用,用大括弧{}括起来,》》 测试能通过,说明动力线以下那部分的语句也没有调用。接下来再看短线、鱼身、买入信号、卖出信号调用了哪些语句,卖出信号和买入信号调用了短线、鱼身语句,鱼身调用了短线语句,短线语句调用了VAR28,VAR28调用了VAR26,而VAR26往上没有调用任何语句,那么就可以认定这个指标是由VAR3、VAR4、动力线、VAR26、VAR28、短线、快线、慢线、鱼身、买入信号和卖出信号金叉买这9条语句构成的一个指标,其它的全是无用的废语句。
第三步:为了验证自己的判断是否正确,用大括号{}将VAR27和VAR25--VARD全部括起来,点测试通过,再点确认,验证一下图形,效果如初,OK!
第四步:打开指标编辑器,把用大括弧括起的那部分(在指标编辑器里显示的是绿色)删除,点测试通 |