SetChartOptions(0,chartShowDates);
SetChartBkColor(16);
GraphXSpace=Param("GraphXSpace",10,-100,100,1);
SetBarFillColor(IIf(O>C,24,19));
Plot(C,"Price",IIf(O>C,32,34),64);
dtn=DateNum();
haC=EMA((O+H+L+C)/4,3); haO=AMA(Ref(haC,-1),0.5);
haH=Max(H,Max(haC,haO)); haL=Min(L,Min(haC,haO));
_SECTION_BEGIN("Name");
GfxSetOverlayMode(1);
pxh= Status("pxHeight"); pxw=Status("pxWidth");
GfxSelectFont("Tahoma",pxh/8);
GfxSetTextColor(ColorHSB(42,42,42));
GfxSetTextAlign(6); GfxSetBkMode(0);
//GfxTextOut(Name(),pxw/2,pxh/12);
GfxSelectFont("Tahoma",pxh/18);
//GfxTextOut(IndustryID(1),pxw/2,pxh/4);
GfxSelectFont("Tahoma",pxh/18);
GfxSelectFont("Tahoma",pxh/36);
GfxTextOut("Sup/Res",pxw/2,pxh/3);
_SECTION_END();
//==============================
_SECTION_BEGIN("HL Pivots");
//==============================
psh= ParamToggle("Pivot Shapes","Off|On",1);
plb= ParamToggle("Pivot Labels","Off|On",1);
snd= ParamToggle("Sound Alerts","Off|On",1);
lbk= Param("Hi Lo Lookback",350,50,5000,10);
nbz= Param("Swing Bars",20,5,150,1);
tht= Param("Hi Label Adjust",0.65,0.10,5,0.05)*ATR(5);
lbk= Min(BarCount-1,Lbk);
bc=BarCount-1;
//================
xH=H-H; xL=L-L; yH=H-H; yL=L-L; xR=H-H; xS=L-L;
xrb=0; xSb=0; yR0=0; yS0=0; xR0=0; xS0=0; xx=0;
xHH= HHVBars(H,nbz); xLL= LLVBars(L,nbz);
yHH= HHV(H,nbz); yLL= LLV(L,nbz);
viz= Status("BarVisible");
vbz= LastValue(Highest(IIf(viz,BarIndex(),0)));
_TRACE("Last visible bar: "+ vbz);
bct= (BarCount-1); dir = "";
if(xLL[bc]<xHH[bc]) { dir="D"; } else { dir="U"; }
for(i=0; i<lbk; i++) { bc=bct-i;
if(xLL[bc]<xHH[bc]) { if(dir=="U"){dir="D";
xx=bc-xLL[bc]; xL[xx]=1;
yL[xSb]=L[xx]; xS[xSb]=xx; xSb++; }
} else { if(dir=="D") { dir = "U";
xx=bc-xHH[bc]; xH[xx]=1; yH[xrb]=H[xx]; xR[xrb]=xx;xrb++; }}}
xP= 0; yP= 0; xS0= xS[0]; yS0=yL[0]; xR0= xR[0]; yR0= yH[0];
if(xS0>xR0) { xP=bc-xHH[bc]; yP= yHH[bc];
if(yR0<yP AND xP>xS0 AND xP<bc) { xH[xP]=1;
for(j=0; j<xrb; j++) { yH[xrb-j]= yH[xrb-(j+1)];
xR[xrb-j]= xR[xrb-(j+1)]; }
yH[0]= yP; xR[0]= xP; xrb++; }
} else { xP= bc-xLL[bc]; yP= yLL[bc];
if(yS0>yP AND xP>xR0 AND xP<bc) { xL[xP]=1;
for(j=0; j<xSb; j++) { yL[xSb-j]= yL[xSb-(j+1)]; xS[xSb-j]= xS[xSb-(j+1)]; }
yL[0]=yP; xS[0]=xP; xSb++; }}
ushp=shapeHollowUpArrow; dshp=shapeHollowDownArrow;
if(psh) { PlotShapes(xH*dshp,42,0,H,-10); PlotShapes(xL*ushp,43,0,L,-10); }
if(snd) {
AlertIf(xL==1,"SOUND C:\\Windows\\Media\\Windows XP Startup.wav","Audio alert",2);
AlertIf(xH==1,"SOUND C:\\Windows\\Media\\Ringin.wav","Audio alert",2); }
Buy=(xL); Sell=(xH); Cover=(xL); Short=(xH); Long=Flip(Buy,Sell); Shrt=Flip(Sell,Buy);
SellPrice=ValueWhen(Sell,H,1); BuyPrice= ValueWhen(Buy,L,1);
if(plb) {
for(i=0; i<BarCount; i++) {
if(Buy[i] )PlotText("\n\n"+ StrRight(NumToStr(L[i],6.2),5),i-1,L[i],43,16);
if(Sell[i])PlotText(StrRight(NumToStr(H[i],6.2),5),i-1,H[i]+tht[i],32,16); }
}
_SECTION_END();
//===========================
_SECTION_BEGIN("Sup & Res");
//===========================
plt= ParamToggle("Sup_Res","Off|On",1);
rpd= Param("Res Periods",2,0,200,1);
spd= Param("Sup Periods",2,0,200,1);
rsc= ParamToggle("Sup_Res","Off|On",1)*2048;
sty= ParamStyle("Style",1)|rsc;
rco= ParamColor("Res Color",22);
sco= ParamColor("Sup Color",22);
if(plt){
pma= TEMA(H,rpd);
pk= pma>Ref(pma,-1)AND Ref(pma,1)<H;//Peak
yp0= ValueWhen(pk,haH,0);
yp1= ValueWhen(pk,haH,1);
yp2= ValueWhen(pk,haH,2);
pkM= yp2<yp1 AND yp1>yp0; prq=Ref(pkM,-1)==0 AND pkM==1;//MajorPeak
yR1= ValueWhen(prq,yp1,1); xR1= ValueWhen(prq,dtn,1);
yR1= IIf(dtn<SelectedValue(xR1),Null,SelectedValue(yR1));
yR2= ValueWhen(prq,yp1,2); xR2= ValueWhen(prq,dtn,2);
yR2= IIf(dtn<SelectedValue(xR2),Null,SelectedValue(yR2));
yR3= ValueWhen(prq,yp1,3); xR3= ValueWhen(prq,dtn,3);
yR3= IIf(dtn<SelectedValue(xR3),Null,SelectedValue(yR3));
yR4= ValueWhen(prq,yp1,4); xR4= ValueWhen(prq,dtn,4);
yR4= IIf(dtn<SelectedValue(yR4),Null,SelectedValue(yR4));
yR5= ValueWhen(prq,yp1,5); xR5= ValueWhen(prq,dtn,5);
yR5= IIf(dtn<SelectedValue(xR5),Null,SelectedValue(yR5));
yR6= ValueWhen(prq,yp1,6); xR6=ValueWhen(prq,dtn,6);
yR6= IIf(dtn<SelectedValue(xR6),Null,SelectedValue(yR6));
Plot(yR1,"R1",rco,1);
Plot(IIf(yR2!=yR1,yR2,Null),"R2",rco,sty);
Plot(IIf(yR3!=yR2 AND yR3!=yR1,yR3,Null),"R3",rco,sty);
Plot(IIf(yR4!=yR3 AND yR4!=yR2 AND yR4!= yR1,yR4,Null),"R4",rco,sty);
Plot(IIf(yR5!=yR4 AND yR5!=yR3 AND yR5!=yR2 AND yR5!=yR1,yR5,Null),"R5",rco,sty);
Plot(IIf(yR6!=yR5 AND yR6!=yR4 AND yR6!=yR3 AND yR6!=yR2 AND yR6!=yR1,yR6,Null),"R6",rco,sty);
//=========================
//======== SUPPORT ========
//=========================
tma= TEMA(L,spd);
tr= Ref(tma,1)>L AND tma<Ref(tma,-1);//Trough
yt0= ValueWhen(tr,haL,0);
yt1= ValueWhen(tr,haL,1);
yt2= ValueWhen(tr,haL,2);
trM= yt2>yt1 AND yt1<yt0;
psq= Ref(trM,-1)==0 AND trM==1;
yS1= ValueWhen(psq,yt1,1); xS1= ValueWhen(psq,dtn,1);
yS1= IIf(dtn<SelectedValue(xS1),Null,SelectedValue(yS1));
yS2= ValueWhen(psq,yt1,2); xS2= ValueWhen(psq,dtn,2);
yS2= IIf(dtn<SelectedValue(xS2),Null,SelectedValue(yS2));
yS3= ValueWhen(psq,yt1,3); xS3= ValueWhen(psq,dtn,3);
yS3= IIf(dtn<SelectedValue(xS3),Null,SelectedValue(yS3));
yS4= ValueWhen(psq,yt1,4); xS4= ValueWhen(psq,dtn,4);
yS4= IIf(dtn<SelectedValue(xS4),Null,SelectedValue(yS4));
yS5= ValueWhen(psq,yt1,5); xS5= ValueWhen(psq,dtn,5);
yS5= IIf(dtn<SelectedValue(xS5),Null,SelectedValue(yS5));
yS6= ValueWhen(psq,yt1,6); xS6= ValueWhen(psq,dtn,6);
yS6= IIf(dtn<SelectedValue(xS6),Null,SelectedValue(yS6));
Plot(yS1,"S1",sco,sty);
Plot(IIf(yS2!=yS1,yS2,Null),"S2",sco,sty);
Plot(IIf(yS3!=yS2 AND yS3!=yS1,yS3,Null),"S3",sco,sty);
Plot(IIf(yS4!=yS3 AND yS4!=yS2 AND yS4!= yS1,yS4,Null),"S4",sco,sty);
Plot(IIf(yS5!=yS4 AND yS5!=yS3 AND yS5!=yS2 AND yS5!=yS1,yS5,Null),"S4",sco,sty);
Plot(IIf(yS6!=yS5 AND yS6!=yS4 AND yS6!=yS3 AND yS6!=yS2 AND yS6!=yS1,yS6,Null),"S4",sco,sty);
}
_SECTION_END();