Inputs: WavePcnt(5), Color(Yellow), Thicknes(1),LastWave(0),Firstwave(3); Variables: ll(0),kk(0),ii(0),j(0),SH(0), SL(0), RP(0), RPDate(0), RPTime(0), Switch(0); Input: TextFib(1),TextHL(1),ABC(1),PFTactif(1),ZZon(0); Var: TLStyle(1),Hval(1),Vval(1); Array: RPD[50](0) , RPT[50](0) , RPV[50](0), ZigZag[50](0),FibLevel[50,10](0),FibTxt[50,10](""); Input: NbFib(2),Fib1(-.618),Fib2(-.5),Fib3(.707),Fib4(.5),Fib5(0),Fib6(1),Fib7(.707),Fib8(0),Fib9(1); Array:Fib[10,2](0),Lcolor[10](0); Array: Thl[2,50](0),Ret[50,10](0),TLRet[50,10](0),TLABC[50](0),TxtABC[50](0); Array: Tswing[50](""),Tlevel[50,10](""),TFib[10](""); Array:TLpft[50,5](0),TxtPft[50,5](0),Pft[5,2](0),PFTval[50,5](0); input:History(0),Line1(1),Txt1(1),Varlevel(0.01),Line0(0),Txt0(0),R3(0),Plotline(1),SUP0orRES1(1),DateText(0),TimeText(-60),Will(1); var: oDate(0),oTime(0); var:HValR(1), VValR(0),HValS(1), VValS(1); Var: jj(0); Array: Tx[2](0),Tline[2](0),style[2](0);; Array : Levels[3,21](0),Title[21](""),Colors[21](0),Txt[3,21](0),TL[3,21](0); IF CurrentBar = 1 Then Begin Style[0]=3;Style[1]=1; Tx[0]=Txt0;Tx[1]=Txt1; Tline[0]=line0;Tline[1]=line1; kk=1; Title[kk]="Piv"; Title[kk+1]="S1"; Title[kk+2]="R1"; Title[kk+3]="S2"; Title[kk+4]="R2"; Title[kk+5]="S3"; Title[kk+6]="R3"; Title[kk+7]="S1v"; Title[kk+8]="R1v"; Title[kk+9]="WillSup"; Title[kk+10]="WillRes"; Title[kk+11]="SMA162"; Title[kk+12]="SMA262"; Colors[kk]=LightGray; Colors[kk+1]=Cyan; Colors[kk+2]=Magenta; Colors[kk+3]=Blue; Colors[kk+4]=Yellow; Colors[kk+5]=DarkCyan; Colors[kk+6]=Green; Colors[kk+7]=Cyan; Colors[kk+8]=Magenta; Colors[kk+9]=Red; Colors[kk+10]=Green; Colors[kk+11]=White; Colors[kk+12]=Yellow; RP = MedianPrice; RPDate = Date; RPTime = Time; Fib[1,1]=2;Fib[1,0]=Fib1; Fib[2,1]=3;Fib[2,0]=Fib2; Fib[3,1]=5;Fib[3,0]=Fib3; Fib[4,1]=6;Fib[4,0]=Fib4; Fib[5,1]=10;Fib[5,0]=Fib5; Fib[6,1]=11;Fib[6,0]=Fib6; Fib[7,1]=8;Fib[7,0]=Fib7; Fib[8,1]=7;Fib[8,0]=Fib8; Fib[9,1]=7;Fib[9,0]=Fib9; for ii=1 to 9 begin if Fib[ii,0]=.5 then Lcolor[ii]=cyan else if Fib[ii,0]=.618 then Lcolor[ii]=red else if Fib[ii,0]=.707 then Lcolor[ii]=magenta else if Fib[ii,0]=.382 then Lcolor[ii]=blue else if Fib[ii,0]=1 then Lcolor[ii]=yellow else if Fib[ii,0]=0 then Lcolor[ii]=yellow else if Fib[ii,0]=-.5 then Lcolor[ii]=cyan else if Fib[ii,0]=-.618 then Lcolor[ii]=red else Lcolor[ii]=lightgray; End; Pft[1,0]=.237; Pft[1,1]=magenta; Pft[2,0]=.382; Pft[2,1]=magenta; Pft[3,0]=.5; Pft[3,1]=magenta; Pft[4,0]=.618; Pft[4,1]=magenta; End; SH = SwingHigh(1, High, 1, 2); SL = SwingLow(1, Low, 1, 2); IF SH <> -1 Then Begin IF Switch <> -1 AND SH >= RP * (1+(WavePcnt*.01)) Then Begin Condition1 = True; Switch = -1; Condition2 = True; For Value1 = 48 DownTo 0 Begin RPD[Value1+1] = RPD[Value1]; RPT[Value1+1] = RPT[Value1]; RPV[Value1+1] = RPV[Value1]; Value2=value2+1; End; RPD[0] = RPDate; RPT[0] = RPTime; RPV[0] = RP; End; IF Condition1 = False AND Switch = -1 AND SH >= RP Then Begin RPD[0] = Date[1]; RPT[0] = Time[1]; RPV[0] = SH; Condition2 = True; End; IF Condition2 Then Begin Condition2 = False; RP = SH; RPDate = Date[1]; RPTime = Time[1]; End; End; IF SL <> -1 Then Begin IF Switch <> 1 AND SL <= RP - (RP*(WavePcnt*.01)) Then Begin Condition1 = True; Switch = 1; Condition2 = True; For Value1 = 48 DownTo 0 Begin RPD[Value1+1] = RPD[Value1]; RPT[Value1+1] = RPT[Value1]; RPV[Value1+1] = RPV[Value1]; value2=value2+1; End; RPD[0] = RPDate; RPT[0] = RPTime; RPV[0] = RP; End; IF Condition1 = False AND Switch = 1 AND SL <= RP Then Begin RPD[0] = Date[1]; RPT[0] = Time[1]; RPV[0] = SL; Condition2 = True; End; IF Condition2 Then Begin Condition2 = False; RP = SL; RPDate = Date[1]; RPTime = Time[1]; End; End; IF Condition1 Then Begin RPD[0] = RPDate; RPT[0] = RPTime; RPV[0] = RP; Condition1 = False; End; For ii=0 to 1 Begin Levels[ii,kk]=(HighD(ii)+LowD(ii)+CloseD(ii))/3; Levels[ii,kk+1]=2*Levels[ii,kk]-Highd(ii); Levels[ii,kk+2]=2*Levels[ii,kk]-Lowd(ii); Levels[ii,kk+3]=Levels[ii,kk]+Levels[ii,kk+1]-Levels[ii,kk+2]; Levels[ii,kk+4]=Levels[ii,kk]-Levels[ii,kk+1]+Levels[ii,kk+2]; Levels[ii,kk+5]=Levels[ii,kk+3]+Levels[ii,kk+1]-Levels[ii,kk]; Levels[ii,kk+6]=Levels[ii,kk+4]+Levels[ii,kk+2]-Levels[ii,kk]; if ii>0 then Begin if (closeD(ii)-OpenD(ii-1))/closeD(ii)>=Varlevel then begin Levels[ii,kk+7] = (highD(ii)+closeD(ii)+(2*lowD(ii)))*.5-highD(ii); Levels[ii,kk+8] = (highD(ii)+closeD(ii)+(2*lowD(ii)))*.5-lowD(ii); end; if (closeD(ii)-OpenD(ii-1))/closeD(ii)<=-Varlevel then begin Levels[ii,kk+7] = (lowD(ii)+closeD(ii)+(2*highD(ii)))*.5-highD(ii); Levels[ii,kk+8] = (lowD(ii)+closeD(ii)+(2*highD(ii)))*.5-lowD(ii); end; if (closeD(ii)-OpenD(ii-1))/closeD(ii)-Varlevel then begin Levels[ii,kk+7] = (highD(ii)+lowD(ii)+(2*closeD(ii)))*.5-highD(ii); Levels[ii,kk+8] = (highD(ii)+lowD(ii)+(2*closeD(ii)))*.5-lowD(ii); end; Levels[ii,kk+9]= OpenD(ii-1)-(OpenD(ii)-LowD(ii)); Levels[ii,kk+10]= OpenD(ii-1)+HighD(ii)-Opend(ii); End; Levels[ii,kk+11]=average(C,162); Levels[ii,kk+12]=average(C,262); End; If Plotline<>0 then Begin if history<>0 or (history=0 and date=lastcalcdate )then begin Plot1(Levels[1,kk],"Piv",Colors[kk]); If SUP0orRES1=1 then Begin Plot2(Levels[1,kk+2],"SR1",Colors[kk+2]); Plot3(Levels[1,kk+4],"SR2",Colors[kk+4]); if R3=0 then Plot4(Levels[1,kk+8],"SR1v-3",Colors[kk+8]) else Plot4(Levels[1,kk+6],"SR1v-3",Colors[kk+6]); End Else Begin Plot2(Levels[1,kk+1],"SR1",Colors[kk+1]); Plot3(Levels[1,kk+3],"SR2",Colors[kk+3]); if R3=0 then Plot4(Levels[1,kk+7],"SR1v-3",Colors[kk+7]) else Plot4(Levels[1,kk+5],"SR1v-3",Colors[kk+5]); End; End; End; If date=lastcalcdate and time=lastcalctime then begin for j=LastWave to Minlist(Value2,Firstwave) Begin jj=0; value1=$addDateTime(D,T,DateText,TimeText,oDate,oTime); for jj=0 to 1 begin For ll=0 to 10 Begin if Tline[jj]<>0 then Begin if TL[jj,kk+ll]=0 then TL[jj,kk+ll]=TL_New(oDate,oTime,Levels[jj,kk+ll] ,oDate,lastcalctime,Levels[jj,kk+ll]); TL_setcolor(TL[jj,kk+ll],Colors[kk+ll]); TL_setstyle(TL[jj,kk+ll],style[jj]); TL_setextRight(TL[jj,kk+ll],true); End; If Tx[jj]<>0 then Begin If Txt[jj,kk+ll]=0 then Txt[jj,kk+ll]=Text_New(oDate,oTime,Levels[jj,kk+ll],Title[kk+ll]&" "&numtostr(Levels[jj,kk+ll],1)) else Text_setstring(Txt[jj,kk+ll],Title[kk+ll]&" "&numtostr(Levels[jj,kk+ll],1)); Text_setlocation(Txt[jj,kk+ll],oDate,oTime,Levels[jj,kk+ll]); Text_setstyle(Txt[jj,kk+ll],HValS, VValS); Text_Setcolor(Txt[jj,kk+ll],Colors[kk+ll]); End; End; End; If ZZon<>0 then Begin If ZigZag[j]<=0 then Zigzag[j]= TL_New(RPD[j], RPT[j], RPV[j], RPD[j+1], RPT[j+1], RPV[j+1]); TL_SetSize(ZigZag[j], Thicknes); TL_SetColor(ZigZag[j], Color); TL_SetExtRight(ZigZag[j], False); TL_SetExtLeft(ZigZag[j], False); End; for kk=1 to minlist(NbFib,9) begin FibLevel[j,kk]=RPV[j]+(RPV[j+1]-RPV[j])*Fib[kk,0]; if TLRet[j,kk]<=0 then TLRet[j,kk]=TL_New(RpD[j+1], RpT[j+1], FibLevel[j,kk],RpD[j], RpT[j],FibLevel[j,kk]); TL_setextright(TLret[j,kk],false); TL_SetColor(TLRet[j,kk], Lcolor[kk]); If TextFib<>0 then Begin Tswing[j]=Numtostr(j,0); Tlevel[j,kk]=numtostr($2nb(FibLevel[j,kk]),1); Tfib[kk]=numtostr(Fib[kk,0]*100,1); FibTxt[j,kk]="w"&Tswing[j]&": "&Tlevel[j,kk]&" : "&Tfib[kk]&"%"; if ret[j,kk]<=0 then Ret[j,kk]=Text_New(RpD[j+1], RpT[j+1], FibLevel[j,kk],FibTxt[j,kk]); Text_SetColor(Ret[j,kk], Lcolor[kk]); Text_SetStyle(Ret[j,kk], Hval, Vval); End; end; if TextHL<>0 then begin if Thl[0,j]=0 then Thl[0,j]=Text_New(RPD[j], RPT[j], RPV[j]," "&numtostr($2nb(RPV[j]),1)&" ("&numtostr(RPV[j]-RPV[j+1],1)&" = "&numtostr(100*iff(RPV[j+2]-RPV[j+1]=0,0,(RPV[j]-RPV[j+1])/(RPV[j+2]-RPV[j+1])),1)&"%) "); Text_SetColor(Thl[0,j], color); if RPV[j]>RPV[j+1] then begin Text_SetStyle(Thl[0,j], 0, 0); Text_SetStyle(Thl[1,j], 0, 1); end else begin Text_SetStyle(Thl[0,j], 1, 1); Text_SetStyle(Thl[1,j], 1, 0); End; End; If ABC<>0 then Begin if TLABC[j]<=0 then TLABC[j]=TL_New(RpD[j+1], RpT[j+1],RPV[j+1]+RPV[j+2]-RPV[j],RpD[j], RpT[j],RPV[j+1]+RPV[j+2]-RPV[j]); if TxtABC[j]<=0 then TxtABC[j]=Text_New(RpD[j+1], RpT[j+1],RPV[j+1]+RPV[j+2]-RPV[j],"w"&Tswing[j]&": "&numtostr($2nb(RPV[j+1]+RPV[j+2]-RPV[j]),1)); TL_setextright(TLABC[j],false); TL_SetColor(TLABC[j], color); TL_SetStyle(TLABC[j], 3); Text_SetColor(TxtABC[j], color); Text_SetStyle(TxtABC[j], Hval, Vval); End; If PFTactif<>0 then Begin for ll=1 to 4 begin PFTval[j,ll]=(RPV[j+1]*pft[ll,0]-RPV[j])/(pft[ll,0]-1); if TLpft[j,ll]<=0 then TLpft[j,ll]=TL_New(RpD[j+1], RpT[j+1], PFTval[j,ll],date, time,PFTval[j,ll]); if Txtpft[j,ll]<=0 then TxtPft[j,ll]=Text_New(RpD[j+1], RpT[j+1], PFTval[j,ll],"w"&numtostr(j,0)&" "&numtostr(PFTval[j,ll],1)); TL_setextright(TLABC[j],false); TL_SetColor(TLpft[j,ll], red); TL_SetStyle(TLpft[j,ll], 3); Text_SetColor(Txtpft[j,ll], red); Text_SetStyle(Txtpft[j,ll], Hval, Vval); end; End; End; End; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Inputs: WavePcnt(5),FirstWave(45),LastWave(0),TextHL(1),NbFib(0), Color(Yellow), Thicknes(1); Input: Fib1(.382),Fib2(.5),Fib3(.618),Fib4(.707),Fib5(0),Fib6(1),Fib7(.707),Fib8(0) ,Fib9(1); Input: TextFib(1),Posi(1); Variables: SH(0), SL(0), RP(0), RPDate(0), RPTime(0), Switch(0), NextZig(0),mm(0),kk(0),PosD(0),PosT(0),Hval(1),Vval(1); Var:Tfib(""); Array: RPD[50](0) , RPT[50](0) , RPV[50](0),RPB[50](0),RPM[50](0),RPA[50](0); Array: Thl[2,50](0),Ret[50,10](0),TLRet[50,10](0),Fib[10,2](0), ZigZag[50](0); Array: Tswing[50](""),Tlevel[50,10](""); Fib[1,1]=2; Fib[2,1]=3; Fib[3,1]=5; Fib[4,1]=6; Fib[5,1]=10; Fib[6,1]=11; Fib[7,1]=8; Fib[8,1]=7; Fib[9,1]=7; Fib[1,0]=Fib1; Fib[2,0]=Fib2; Fib[3,0]=Fib3; Fib[4,0]=Fib4; Fib[5,0]=Fib5; Fib[6,0]=Fib6; Fib[7,0]=Fib7; Fib[8,0]=Fib8; Fib[9,0]=Fib9; IF CurrentBar = 1 Then Begin RP = MedianPrice; RPDate = Date; RPTime = Time; NextZig = Text_New(Date, Time, 0, NumToStr(WavePcnt, 0)+"%-"); Text_SetColor(NextZig, Color); End; SH = SwingHigh(1, High, 1, 2); SL = SwingLow(1, Low, 1, 2); IF SH <> -1 Then Begin IF Switch <> -1 AND SH >= RP * (1+(WavePcnt*.01)) Then Begin Condition1 = True; Switch = -1; Condition2 = True; For Value1 = 49 DownTo 0 Begin RPD[Value1+1] = RPD[Value1]; RPT[Value1+1] = RPT[Value1]; RPV[Value1+1] = RPV[Value1]; End; RPD[0] = RPDate; RPT[0] = RPTime; RPV[0] = RP; End; IF Condition1 = False AND Switch = -1 AND SH >= RP Then Begin RPD[0] = Date[1]; RPT[0] = Time[1]; RPV[0] = SH; Condition2 = True; End; IF Condition2 Then Begin Condition2 = False; RP = SH; RPDate = Date[1]; RPTime = Time[1]; End; End; IF SL <> -1 Then Begin IF Switch <> 1 AND SL <= RP - (RP*(WavePcnt*.01)) Then Begin Condition1 = True; Switch = 1; Condition2 = True; For Value1 = 49 DownTo 0 Begin RPD[Value1+1] = RPD[Value1]; RPT[Value1+1] = RPT[Value1]; RPV[Value1+1] = RPV[Value1]; End; RPD[0] = RPDate; RPT[0] = RPTime; RPV[0] = RP; End; IF Condition1 = False AND Switch = 1 AND SL <= RP Then Begin RPD[0] = Date[1]; RPT[0] = Time[1]; RPV[0] = SL; Condition2 = True; End; IF Condition2 Then Begin Condition2 = False; RP = SL; RPDate = Date[1]; RPTime = Time[1]; End; End; IF Condition1 Then Begin RPD[0] = RPDate; RPT[0] = RPTime; RPV[0] = RP; Condition1 = False; End; if date=lastcalcdate and time=lastcalctime then begin for mm=lastwave to firstwave begin If posi=0 then begin PosD=RPD[mm]; PosT=RPT[mm]; end; If posi=1 then begin PosD=RPD[mm+1]; PosT=RPT[mm+1]; end; If posi=2 then begin PosD=lastcalcdate; PosT=lastcalctime; end; if zigzag[mm]=0 then ZigZag[mm] = TL_New(RPD[mm+1],RPT[mm+1],RPV[mm+1], RPD[mm],RPT[mm],RPV[mm]) else begin TL_SetBegin(ZigZag[mm], RPD[mm+1], RPT[mm+1] , RPV[mm+1]); TL_SetEnd(ZigZag[mm], RPD[mm], RPT[mm] , RPV[mm]); end; TL_SetSize(ZigZag[mm], Thicknes); TL_SetColor(ZigZag[mm], Color); TL_SetExtRight(ZigZag[mm], False); TL_SetExtLeft(ZigZag[mm], False); IF False Then Plot1[1](RP, "RP"); for kk=1 to minlist(NbFib,9) begin if TLRet[mm,kk]<=0 then TLRet[mm,kk]=TL_New(RpD[mm+1], RpT[mm+1], RPV[mm]+(RPV[mm+1]-RPV[mm])*Fib[kk,0],date, time,RPV[mm]+(RPV[mm+1]-RPV[mm])*Fib[kk,0]) else Begin TL_setbegin(TLret[mm,kk],RPD[mm+1],RPT[mm+1], RPV[mm]+(RPV[mm+1]-RPV[mm])*Fib[kk,0]); TL_setend(TLret[mm,kk],date, time, RPV[mm]+(RPV[mm+1]-RPV[mm])*Fib[kk,0]); End; TL_setextright(TLret[mm,kk],true); TL_SetColor(TLRet[mm,kk], Fib[kk,1]); if fib[kk,0]=.5 then TL_SetStyle(TLRet[mm,kk],1) else TL_SetStyle(TLRet[mm,kk],3); Tswing[mm]=Numtostr(mm,0); Tlevel[mm,kk]=numtostr($2nb(RPV[mm]+(RPV[mm+1]-RPV[mm])*Fib[kk,0]),1); Tfib=numtostr(Fib[kk,0]*100,1); if ret[mm,kk]<=0 then Ret[mm,kk]=Text_New(RPDate, RPTime, RPV[mm]+(RPV[mm+1]-RPV[mm])*Fib[kk,0],"w"&Tswing[mm]&": "&Tlevel[mm,kk]&" :"&Tfib&"%") else begin if TextFib<>0 then Text_SetString(Ret[mm,kk],"w"&Tswing[mm]&":"&Tlevel[mm,kk]&" : "&Tfib&"%") else Text_SetString(Ret[mm,kk],leftstr(numtostr(Fib[kk,0]*100,1),1)); end; Text_SetLocation(Ret[mm,kk], PosD, PosT, RPV[mm]+(RPV[mm+1]-RPV[mm])*Fib[kk,0]); Text_SetColor(Ret[mm,kk], Fib[kk,1]); Text_SetStyle(Ret[mm,kk], Hval, Vval); end; if TextHL<>0 then begin if Thl[0,mm]=0 then Thl[0,mm]=Text_New(RPD[mm], RPT[mm], RPV[mm],""&numtostr($2nb(RPV[mm]),1)&" ("&numtostr(RPV[mm]-RPV[mm+1],1) &" ="&numtostr(100*iff(RPV[mm+2]-RPV[mm+1]=0,0,(RPV[mm]-RPV[mm+1])/(RPV[mm+1])),1)&"%) ") else text_SetString(Thl[0,mm]," "&numtostr($2nb(RPV[mm]),1)&"("&numtostr(RPV[mm]-RPV[mm+1],1) &" ="&numtostr(100*iff(RPV[mm+2]-RPV[mm+1]=0,0,(RPV[mm+0]-RPV[mm+1])/(RPV[mm+1])),1)&"%) "); Text_SetLocation(Thl[0,mm], RPD[mm], RPT[mm], RPV[mm]); Text_SetColor(Thl[0,mm], color); if RPV[mm]>RPV[mm+1] then begin Text_SetStyle(Thl[0,mm], 0, 0); Text_SetStyle(Thl[1,mm], 0, 1); end else begin Text_SetStyle(Thl[0,mm], 1, 1); Text_SetStyle(Thl[1,mm], 1, 0); End; End; End; End;