Posted By: SFF
ZigZag - 02/22/13 11:39
It says an error which is:
syntax error
< case 1: // look for peak
>
.
I don't know why this happen while cace 0 is fine?.
syntax error
< case 1: // look for peak
>
.
I don't know why this happen while cace 0 is fine?.
Code:
function run(){ BarPeriod = 15; LookBack = 500; StartDate = 20120201; NumDays = 1; set(TICKS); int ExtDepth=12; int ExtDeviation=5; int ExtBackstep=3; int whatlookfor; var curlow; var curhigh; var lastlow; var lasthigh; int lasthighpos; int lastlowpos; var res; vars ZigzagBuffer= series(0.0); vars LowMapBuffer=series(0.0); vars HighMapBuffer=series(0.0); var val=LL(ExtDepth); if(val==lastlow) val=0.0; else { lastlow=val; if((priceLow()-val)>(ExtDeviation*PIP)) val=0.0; else { int back; for(back=1; back<=ExtBackstep; back++) { res=LowMapBuffer[0+back]; if((res!=0)&&(res>val)) LowMapBuffer[0+back]=0.0; } } } if (priceLow()==val) LowMapBuffer[0]=val; else LowMapBuffer[0]=0.0; val=HH(ExtDepth); if(val==lasthigh) val=0.0; else { lasthigh=val; if((val-priceHigh())>(ExtDeviation*PIP)) val=0.0; else { int back; for(back=1; back<=ExtBackstep; back++) { res=HighMapBuffer[0+back]; if((res!=0)&&(res<val)) HighMapBuffer[0+back]=0.0; } } } if (priceHigh()==val) HighMapBuffer[0]=val; else HighMapBuffer[0]=0.0; if (whatlookfor==0) { lastlow=0; lasthigh=0; } else { lastlow=curlow; lasthigh=curhigh; } res=0.0; switch(whatlookfor) { case 0: if (lastlow==0 && lasthigh==0) { if (HighMapBuffer[0]!=0) { lasthigh=priceHigh(); lasthighpos=0; whatlookfor=-1; ZigzagBuffer[0]=lasthigh; res=1; } if (LowMapBuffer[0]!=0) { lastlow=priceLow(); lastlowpos=0; whatlookfor=1; ZigzagBuffer[0]=lastlow; res=1; } } break; case 1: if (LowMapBuffer[0]!=0.0 && LowMapBuffer[0]<lastlow && HighMapBuffer[0]==0.0) { ZigzagBuffer[lastlowpos]=0.0; lastlowpos=0; lastlow=LowMapBuffer[0]; ZigzagBuffer[0]=lastlow; res=1; } if (HighMapBuffer[0]!=0.0 && LowMapBuffer[0]==0.0) { lasthigh=HighMapBuffer[0]; lasthighpos=0; ZigzagBuffer[0]=lasthigh; whatlookfor=-1; res=1; } break; case -1: // look for lawn if (HighMapBuffer[0]!=0.0 && HighMapBuffer[0]>lasthigh && LowMapBuffer[0]==0.0) { ZigzagBuffer[lasthighpos]=0.0; lasthighpos=0; lasthigh=HighMapBuffer[0]; ZigzagBuffer[0]=lasthigh; } if (LowMapBuffer[0]!=0.0 && HighMapBuffer[0]==0.0) { lastlow=LowMapBuffer[0]; lastlowpos=0; ZigzagBuffer[0]=lastlow; whatlookfor=1; } break; default: return; } plot("Signal", HighMapBuffer[0], 0, RED); plot("Signal2", LowMapBuffer[0], 0, RED); }