Join our facebook group for Amibroker afl code discussion https://www.facebook.com/groups/603980776889348

Super Popular Nirvana afl

Super Popular Nirvana afl
Super Popular Nirvana afl



//www.aflcode.com
_SECTION_BEGIN("Chart Settings");
   SetChartOptions(0,chartShowArrows|chartShowDates);
   GraphXSpace=Param("GraphXSpace",10,0,300,1);
   SetChartBkColor(ParamColor("Outer Panel",53));
   SetChartBkGradientFill(ParamColor("Upper Chart",16),ParamColor("Lower Chart",16));
//==========================
_SECTION_BEGIN("Forex Main");
//==========================
   global hO,hH,hL,hC,fO,fH,fL,fC,bc,Lx,x;
   x=BarIndex();  bc=BarCount;  Lx=LastValue(x);
   //Flower OHLC
   fC=EMA((O+H+L+C)/4,3);         fO=EMA((Ref(O,-1)+Ref(fC,-1))/2,3);
   fH=EMA(Max(Max(H,fO),fC),3);   fL=EMA(Min(Min(L,fO),fC),3);
   //Heiken Ashi OHLC
   hC=EMA((O+H+L+C)/4,3);         hO=AMA(Ref(hC,-1),0.5); 
   hH=Max(H,Max(hC,hO));          hL=Min(L,Min(hC,hO)); 
   function ti3(y,t)  {
    s=0.84;
    e1=EMA(y,t);  e2=EMA(e1,t);  e3=EMA(e2,t);
    e4=EMA(e3,t); e5=EMA(e4,t);  e6=EMA(e5,t);
    c1=-s*s*s;    c2=3*s*s+3*s*s*s;
    c3=-6*s*s-3*s-3*s*s*s;
    c4=1+3*s+s*s*s+3*s*s;
   return T3=c1*e6+c2*e5+c3*e4+c4*e3; }
_SECTION_END(); 
//===========================
_SECTION_BEGIN("HEIKIN-ASHI");
//===========================
   //by Dan Valcu S&C Traders Tips Feb, 2004
   bsl=ParamToggle("Candle Type","HA,Std",0);
   olb=ParamToggle("Overlay Bars","Off|On",0);
   sco= ParamToggle("CandleFill Color","Std|Macd",1);
   r1=5;   r2=10;   r3=5;//MACD Fast,Slow & Signal Periods
   ap=4;//ATR & Hi Lo Periods
   pd=7;//HHV LLV Lookback
   atv=ATR(ap);  sup=HHV(LLV(L,ap)+atv,pd);  res=LLV(HHV(H,ap)-atv,pd);
   fC=EMA((O+H+L+C)/4,3);//Flower Close
   hC=(O+H+L+C)/4;        hO=AMA(Ref(fC,-1),0.5);  
   hH=Max(H,Max(fC,hO));  hL=Min(L,Min(fC,hO)); 
   m1=MACD(r1,r2);   s1=Signal(r1,r2,r3);  uc=ColorRGB(230,230,0);
   mco=IIf(m1<0 AND m1>s1,uc,IIf(m1>0 AND m1>s1,55,IIf(m1>0 AND m1<s1,25,24)));
   if(sco)SetBarFillColor(mco);
   if(bsl==1)PlotOHLC(O,H,L,C,"",IIf(C>O,55,32),64);
   if(bsl==0)PlotOHLC(hO,hH,hL,fC,"",IIf(C>sup,55,IIf(C<res,32,42)),64);
   bco=IIf(m1<0 AND m1>s1,uc,IIf(m1>0 AND m1>s1,43,IIf(m1>0 AND m1<s1,32,42)));
   if(bsl==0 AND olb)Plot(C,"",bco,128|4096,0,0,0,1);
_SECTION_END();
//===========================
_SECTION_BEGIN("Line Style's");
//===========================
   nr= ParamToggle("No Rescale","Off|On",1)*2048;
   al= ParamToggle("Axis Labels","On|Off",1)*4096;
   s01=1|al|nr;    s04=4|al|nr;     s08=8|al|nr;
   s32=32|al|nr;   s36=36|al|nr;    s41=41|al|nr;
   s51=512|al|nr;  s52=512|4|al|nr;
   xp=BarCount+2;
//================================
_SECTION_BEGIN("Breakout Setting");
//================================
   bpd=Param("Breakout periods best is usually 18",5,1,100,1,1);
   spd=Param("Exit Breakout",5,1,100,1,1);
   Buy=C>Ref(HHV(H,bpd),-1);   Sell=C<Ref(LLV(L,spd),-1);
   Buy=ExRem(Buy,Sell);        Sell=ExRem(Sell,Buy);
   PlotShapes(Buy*shapeSmallCircle,55,0,hL,-10);
   PlotShapes(Sell*shapeSmallCircle,32,0,hH,10);
_SECTION_END();
//===========================
_SECTION_BEGIN("Pivot Box");
//===========================
   Hi=Param("Hi Periods",7,1,50,1);
   Lo=Param("Lo Periods",7,1,50,1);
   A1=ExRemSpan(Ref(H,-2)==HHV(H,Hi),3);
   A2=ExRemSpan(Ref(L,-2)==LLV(L,Lo),3);
   A3=Cross(A1,0.9);   A4=Cross(A2,0.9);
   Top=Ref(hH,-BarsSince(A3));  
   tbk=Param("Hi Breakout Periods",10,2,30,0.1);
   yr=IIf(x>=bc-tbk,EndValue(Top),Null);
   Plot(yr,"",ParamColor("Line Color",25),s52);
   //Plot(top,"",11,styleDots+styleLine+styleThick);
   bot=Ref(hL,-BarsSince(A4));
   bbk=Param("Lo Breakout Periods",10,2,30,0.1);
   ys=IIf(x>=bc-bbk,EndValue(bot),Null);
   Plot(ys,"",ParamColor("Support Color",43) ,s52);
   //Plot(bot,"",6,styleDots+styleLine);
_SECTION_END();
//============================
_SECTION_BEGIN("Price Line");
//============================
   p= ParamField("Price Field",3); 
   bk= Param("Bars Back",500,10,900,1); 
   yy=IIf(x>=bc-bk,EndValue(p),Null); 
   Plot(yy,"Price",colorGrey40,s36); 
_SECTION_END();
//===========================
_SECTION_BEGIN("MA Averages");
//===========================
   if(ParamToggle("Plot MA-21","Off|On",0))Plot(MA(C,21),"",27,s01);
   if(ParamToggle("Plot MA-55","Off|On",0))Plot(MA(H,55),"",55,s01);
   if(ParamToggle("Plot MA-233","Off|On",0))Plot(MA(H,233),"",52,s01);
_SECTION_END();
//===========================
_SECTION_BEGIN("WMA Averages");
//===========================
   if(ParamToggle("Plot WMA-20","Off|On",0))Plot(WMA(C,20),"",26,s08,0,0,1);
   if(ParamToggle("Plot WMA-60","Off|On",0))Plot(WMA(C,60),"",19,s08,0,0,1);
   if(ParamToggle("Plot WMA-100","Off|On",0))Plot(WMA(C,100),"",30,s08,0,0,1);
   if(ParamToggle("Plot WMA-120","Off|On",0))Plot(WMA(C,120),"",12,s08,0,0,1);
   if(ParamToggle("Plot WMA-180","Off|On",0))Plot(WMA(C,180),"",31,s08,0,0,1);
   if(ParamToggle("Plot WMA-500","Off|On",0))Plot(WMA(C,500),"",47,s08,0,0,1);
//===========================
_SECTION_BEGIN("Avg I Select");
//===========================
   s=ParamList("AverageType","Off|DEMA|EMA|HMA|Lagless|LinReg|MA|TEMA|Weighted|Wilders",0);
   t=Param("Periods",20,2,200);
   d=Param("Displacement",1,0,50,1);
   p=hC;     m=Null;
   if(s=="DEMA")m=DEMA(p,t);   if(s=="EMA")m=EMA(p,t);  if(s=="HMA")m=WMA(2*(WMA(P,t/2))-WMA(p,t),4);
   if(s=="Lagless")m=2*EMA(p,t)-EMA(EMA(p,t),t);        if(s=="LinReg")m=LinearReg(p,t);
   if(s=="MA")m=MA(p,t);                                if(s=="TEMA")m=TEMA(P,t);
   if(s=="Weighted")m=WMA(p,t);                         if(s=="Wilders")m=Wilders(p,t);
   Plot(m,"",ParamColor("Color",26),s01,d);
_SECTION_END();
//===========================
_SECTION_BEGIN("Avg II Select");
//===========================
   s=ParamList("AverageType","Off|DEMA|EMA|HMA|Lagless|LinReg|MA|TEMA|Weighted|Wilders",0);
   t=Param("Periods",60,2,200);
   d=Param("Displacement",1,0,50,1);
   p=hC;     m=Null;
   if(s=="DEMA")m=DEMA(p,t);   if(s=="EMA")m=EMA(p,t);  if(s=="HMA")m=WMA(2*(WMA(P,t/2))-WMA(p,t),4);
   if(s=="Lagless")m=2*EMA(p,t)-EMA(EMA(p,t),t);        if(s=="LinReg")m=LinearReg(p,t);
   if(s=="MA")m=MA(p,t);                                if(s=="TEMA")m=TEMA(P,t);
   if(s=="Weighted")m=WMA(p,t);                         if(s=="Wilders")m=Wilders(p,t);
   Plot(m,"",ParamColor("Color",27),s01,d);
_SECTION_END();
//===========================
_SECTION_BEGIN("Bands Short");
//===========================
   sb= ParamToggle("Short Bands Cloud","Off|On",1);
   bl= ParamToggle("Short Bands Lines","Off|On",1);
   bk= Param("Periods",40,10,900,1);
   if(sb OR bl) {  st=32|512|2048|4096;
    Hi=HHV(H,bk);  Lo=LLV(L,bk);  kM=(Hi+Lo)/2;  kH=(kM+Hi)/2;  kL=(kM+Lo)/2;
   if(bl) {
    nhi= IIf(Hi>Ref(Hi,-1),1,IIf(Hi<Ref(Hi,-1),-1,0));  hco=IIf(ValueWhen(nhi!=0,nhi)==-1,32,34);
    nlo= IIf(Lo>Ref(Lo,-1),1,IIf(Lo<Ref(Lo,-1),-1,0));  lco=IIf(ValueWhen(nlo!=0,nlo)==-1,32,43);
    nkh= IIf(kH>Ref(kH,-1),1,IIf(kH<Ref(kH,-1),-1,0));  khc=IIf(ValueWhen(nkh!=0,nkh)==-1,25,34);
    nkm= IIf(kM>Ref(kM,-1),1,IIf(kM<Ref(kM,-1),-1,0));  kmc=IIf(ValueWhen(nkm!=0,nkm)==-1,42,34);
    nkl= IIf(kL>Ref(kL,-1),1,IIf(kL<Ref(kL,-1),-1,0));  klc=IIf(ValueWhen(nkl!=0,nkl)==-1,40,34);
    Plot(Hi,"",hco,s32);  Plot(Lo,"",lco,s32);  Plot(kM,"",kmc,s32);
    Plot(kH,"",khc,s32);  Plot(kL,"",klc,s32);  }
    uc1=ParamColor("Up Cloud Color 1",ColorRGB(0,55,55));
    uc2=ParamColor("Up Cloud Color 2",ColorRGB(60,15,0));
    dc1=ParamColor("Dn Cloud Color 1",ColorRGB(0,0,83));
    dc2=ParamColor("Dn Cloud Color 2",ColorRGB(43,43,89));
   if(sb) {
    Lo=LLV(L,22);   kL=(kM+Lo)/2;
    if(bl) {
     nkl= IIf(kL>Ref(kL,-1),1,IIf(kL<Ref(kL,-1),-1,0));  klc=IIf(ValueWhen(nkl!=0,nkl)==-1,11,43);
     nlo= IIf(Lo>Ref(Lo,-1),1,IIf(Lo<Ref(Lo,-1),-1,0));  lco=IIf(ValueWhen(nlo!=0,nlo)==-1,11,43);
     Plot(Lo,"",lco,s32,0,0,0,1);   Plot(kL,"",klc,s32,0,0,0,1);  }
    st= styleCloud||512|2048|4096|styleNoTitle;
    PlotOHLC(Hi,Hi,kH,kH,"",uc1,st);   PlotOHLC(kH,kH,kM,kM,"",uc2,st);
    PlotOHLC(kM,kM,kL,kL,"",dc1,st);   PlotOHLC(kL,kL,Lo,Lo,"",dc2,st);  }
   }
_SECTION_END();
//===========================
_SECTION_BEGIN("Bands Long");
//===========================
   pl= ParamToggle("Long Bands Cloud","Off|On",1);
   bl= ParamToggle("Long Bands Lines","Off|On",1);
   srf=Param("Sup-Res Short",30,0,100,1);
   ret=Param("Res Long",160,0,350,1);
   sut=Param("SupLong",60,0,350,1);
   x0=Param("Cloud Bar Length",300,1,500,1);
   co=ParamColor("Cloud Color",23);
   st=512|2048|4096;
   Hf=HHV(hH,srf);   Lf=LLV(hL,srf);    Hr=HHV(hH,ret);  Ls=LLV(hL,sut);
   if(bl) { Plot(Hr,"",47,s32); Plot(Ls,"",47,32); }
   if(pl) {
    for(i=0;i<BarCount-x0;i++) { co[i] = colorBlack; }//hide the line except most recent 10 bars
     PlotOHLC(Ls,Ls,Hr,Hr,"",co,styleCloud|st); }
_SECTION_END();
//=============================
_SECTION_BEGIN("Rose Pivots");
//=============================
  //Original Code by Gordon Rose
  //Modified by D. Keleher 2008
   plb= ParamToggle("Pivot Price Text","Off|On",1);
   txl= ParamToggle("Last Price Text","Off|On",1);
   plf= ParamToggle("Fib Retracements","Off|On",1); 
   nbz= Param("Swing Bar Min",12,5,40);
   stn= Param("Digit Length",5,1,10,1);
   xMn= Param("Minimum Pivot Bars",1,1,10,1);
   th= Param("Adjust Hi Label",1.4,0,10,0.1)*TickSize;
   td=1.2;//String Decimals
   tol= 0.01;//Price Tolerance
   tpr= 0.005;//Retrace % Adjust Tolerance
   lbk= 120;
   expX= 0;  expD= 0;//Explore Bar Index and Explore Date
   dnc= 0;   dn= DateNum();  ulv=1; //Use Last Visible Bar
   Long=False;  Shrt=False;  rTitle="";
   if(plf OR txl OR plf) {
    // 1= Indicator  2= Commentary  3= Scan 4= Explore  5= Backtest / Optimize 
    if(Status("action")==1) {plf=True; } else { plf=False; ulv= False; trc= False;
  expD= Status("RangeToDate");
  for(i=LastValue(BarIndex());i>=0;i--) { dnc=dn[i];
     if(dnc==expD) { expX=i;} }
    }
    //======== Initialize Arrays ========
    xp= 0;     xhp= 0;   xlp=0;  yr0=0;  
    xr0= 0;    ys0= 0;   xs0=0;
    yR=H-H;    xR=H-H;   yS=L-L;   xS=L-L;
    pk= H-H;  xr1=H-H;  tr=L-L;  xs1=L-L; 
    //======================
    HHx= HHVBars(H,nbz);   LLx= LLVBars(L,nbz);
    lvb= LastValue(Highest(IIf(Status("BarVisible"),x,0)));
    xx= IIf(lvb>0 AND ulv,lvb,IIf(Status("action")==4 AND expX>0,expX,LastValue(x)));
    dir= "";
    if(LLx[xx]<HHx[xx])dir="D"; else dir="U";
    //======== Find Main Pivots ========
    if(xx>=lbk) { for(i=0; i<lbk; i++) { // xx>=lbk insures enough bars exist
     xx= IIf(lvb>0 AND ulv,lvb-i,IIf(Status("action")==4 AND expX>0,expX-i,LastValue(x)-i));
     if(LLx[xx]<HHx[xx]) { //LLV bars < HHV Bars == Down
      if(dir=="U") { dir= "D";//If direction was up change it to down
       xp= xx-LLx[xx]; tr[xp]=1; yS[xlp]=L[xp]; xS[xlp]=xp; xlp++; }  } //Capture pivot information
      else { if(dir=="D") { dir= "U";// or if Dir was Down change it to up
    xp=xx-HHx[xx]; pk[xp]=1;  yR[xhp]=H[xp]; xR[xhp]=xp; xhp++; } } }  }//== Found Main Pivots 
    //======= Find Missed Pivot(s) ======
   //Start at last bar. Reestablish xx
    xx= IIf(lvb>0 AND ulv,lvb,IIf(Status("action")==4 AND expX>0,expX,LastValue(x)));
    if(xhp>= 2 AND xlp>= 2) { //at least two of each must exist.
     xs0= xS[0];      ys0=yS[0];           xr0=xR[0];    yr0=yR[0];    xmx=Max(xs0,xr0);  cbz=xx-xmx;
     LLy=LLV(L,cbz);  LLb=LLVBars(L,cbz);  yLo=LLy[xx];  xLo=xx-LLb[xx];
     HHy=HHV(H,cbz);  HHb=HHVBars(H,cbz);  yHi=HHy[xx];  xHi=xx-HHb[xx];
     if(xr0>xs0) {
     if (yR[0]<yR[1]) { //Current Hi < Previous Hi
      if(yLo<yS[0] AND (xLo-xr0-1)>=xMn AND xLo!=xx) { tr[xLo]=1; xs1[xLo]=1;
       for(j=0; j<xlp; j++) { yS[xlp-j]=yS[xlp-(j+1)]; xS[xlp-j] = xS[xlp-(j+1)]; }
         yS[0]= yLo; xS[0]= xLo; xlp++; }  } 
        else { if(yLo>yS[0] AND (xLo-xr0-1)>=xMn AND xLo!= xx) { tr[xLo]=1;  xs1[xLo]=1;
         for(j=0; j<xlp; j++) {yS[xlp-j]=yS[xlp-(j+1)];  xS[xlp-j]= xS[xlp-(j+1)]; }
          yS[0]= yLo;  xS[0]=xLo;  xlp++;  }  }  } 
        else { if(yR[0]<yR[1]) { if(yHi<yR[0] AND (xHi-xs0-1)>=xMn AND xHi!= xx) { pk[xHi]=1; xr1[xHi]=1;
         for(j=0;j<xhp; j++) { yR[xhp-j]= yR[xhp-(j+1)];  xR[xhp-j]= xR[xhp-(j+1)]; }
          yR[0]=yHi;  xR[0]=xHi;  xhp++;  }  } 
        else {  if(yHi>yR[0] AND (xHi-xs0-1)>=xMn AND xHi!=xx) {  pk[xHi]=1;  xr1[xHi]=1;
         for(j=0; j<xhp; j++) {  yR[xhp-j]= yR[xhp-(j+1)];xR[xhp-j]= xR[xhp-(j+1)]; }
          yR[0]=yHi;  xR[0]=xHi;xhp++;  }  }  } 
    } 

     //Retracements
    bars=0;     prcR= H-H;  retP=0;   retB= H-H;  
    retX=0;     retC=0;     retY=C;    
    rt0Pts=0;   rt0brz=0;   rt1Pts=0;  rt1brz=0;
    i50=Null;   i62=Null;   i78=Null;
    //Retracement calcs. Arrangement of pivs very specific for this setup.
    if(xhp>=2 AND xlp>=2 AND yR[0]>yR[1] AND yS[0]>yS[1]) {
     i50=(yR[0]-(0.50*(yR[0]-yS[1])));  
     i62=(yR[0]-(0.62*(yR[0]-yS[1])));
     i78=(yR[0]-(0.79*(yR[0]-yS[0])));
     bars=xx-xR[0];   prcR=LLV(L,bars);   retB=LLVBars(L,bars);
     retP=prcR[xx];   retX=xx-retB[xx];   retC=retY[retX];
     Long=(i50>=(i78*(1-tpr))AND i62<=(i78*(1+tpr))AND retC >=((1-tol)*i62)AND retP<=((1+tol)*i50));  } 
     //Lower Highs and Lower Lows
     else if(xhp>=2 AND xlp>=2 AND yR[0]<yR[1] AND yS[0]<yS[1]) {
      i50= (yR[1]-(0.500*(yR[1]-yS[0])));
      i62= (yR[0]-(0.618*(yR[1]-yS[0])));
      i78= (yR[0]-(0.786*(yR[0]-yS[0])));
      bars= xx-xS[0];   prcR= HHV(H,bars);   retB= HHVBars(H,bars);
      retP= prcR[xx];   retX= xx-retB[xx];   retC= retY[retX];
      //For Short Setups .500 is below .786 & .618 is above .786, Close is <= High & High >= Low of Ret range
      //Risk is top of zone - low of signal bar 
      Shrt=( i50<=(i78*(1+tpr))AND i62>=(i78*(1-tpr))AND retC<=((1+tol)*i62)AND retP>=((1-tol)*i50)); }
    if(Shrt OR Long)  { // Show zone if present
     if(Shrt) { // Check Symmetry
      if(xS[0]>xR[0]) { rt0Pts=yR[0]-yS[1];  rt0brz=xR[0]-xS[1]+1;  rt1Pts=retP-yS[0];  rt1brz=retX-xS[0]+1; }
       else { rt0Pts=yR[1]-yS[1];  rt0brz=xR[1]-xS[1]+1;  rt1Pts=yR[0]-yS[0];  rt1brz=xR[0]-xS[0]+1; }  }
       else { // Long Setup
      if(xS[0]>xR[0]) { rt0Pts=yR[0]-yS[1];  rt0brz=xR[0]-xS[1]+1;  rt1Pts=retP-yS[0];  rt1brz=retX-xS[0]+1; }
       else { rt0Pts=yR[1]-yS[0]; rt0brz=xS[0]-xR[1]+1;  rt1Pts=yR[0]-yS[0];  rt1brz=xS[0]-xR[0]+1; }  }
    }
    if(plf) {
      // .50 is above .786  & .62 is below .786 for long setups
      // .50 is below .786  & .62 is above .786 for short setups
     Plot(LineArray(IIf(Long,xR[0],xS[0]),i50,xx,i50,0),"i50",11,1|2048,0,0,0,1);
     Plot(LineArray(IIf(Long,xR[0],xS[0]),i62,xx,i62,0),"i62",43,1|2048,0,0,0,1);
     Plot(LineArray(IIf(Long,xR[0],xS[0]),i78,xx,i78,0),"i78",41,1|2048,0,0,0,1);
     PlotText(StrRight(NumToStr(i50,td),stn)+ " - 50%",xx+2,i50,11,1);
     PlotText(StrRight(NumToStr(i62,td),stn)+ " - 62%",xx+2,i62,43,1);
     PlotText(StrRight(NumToStr(i62,td),stn)+ " - 78%",xx+2,i78,41,1);  }
    if(plb) {
     for(i=LastValue(BarIndex()); i>=0;i--) {
      if(tr[i] )PlotText("\n\n"+ StrRight(NumToStr(L[i],td),5),i-1,L[i],43,1); 
      if(pk[i])PlotText(StrRight(NumToStr(H[i],td),5),i-1,H[i]+th,42,1);  } }
    if(plf) {
     sq=shapeHollowSmallSquare; da=shapeDownArrow;  ua=shapeUpArrow;
     PlotShapes(pk*sq,11,0,H,8);  PlotShapes(xr1*sq,42,0,H,8);
     PlotShapes(tr*sq,10,0,L,-8);  PlotShapes(xs1*sq,43,0,L,-8);   }
    if(txl) {
     pb=LastValue(BarsSince(pk));       tb=LastValue(BarsSince(tr));
     fL=LastValue(LowestSince(pk,L));   xL=LastValue(ValueWhen(L==fL,x));
     fH=LastValue(HighestSince(tr,H));  xH=LastValue(ValueWhen(H==fH,x));
     Plot(LineArray(xL-3,fL,Lx,fL),"",43,36|4096|2048,0,0,2,1);
     Plot(LineArray(xH-3,fH,Lx,fH),"",40,36|4096|2048,0,0,2,1);
     PlotText(StrRight(NumToStr(fH,td),stn),Lx+2,fH,40,1);
     PlotText(StrRight(NumToStr(fL,td),stn),Lx+2,fL,43,1);  }

    Filter= (Shrt OR Long);
    AddColumn(C, "Close");
    AddColumn(IIf(Long,76,83),"L/S",formatChar);
   rTitle="\\c55\nRtrc 0/1 Pts: " + WriteVal(rt0Pts,2.1)  + "\\c42 / \\c55" + WriteVal(rt1Pts,2.1)+
          "   Rtrc 0/1 Bars: "    + WriteVal(rt0brz, 2.0) + " \\c42/ \\c55" + WriteVal(rt1brz,2.0);
  }
_SECTION_END();


   x= BarIndex();
   function PkID(nn)   {
    pk=H==HHV(H,2*nn) AND Ref(HHV(H,nn),nn)<H;
   return pk AND LastValue(x)-ValueWhen(pk,x)>nn;  }
   function TrID(nn)  {
    tr=L==LLV(L,2*nn) AND Ref(LLV(L,nn),nn)>L;
   return tr AND LastValue(x)-ValueWhen(tr,x)>nn;  }
   //====== Selected Value Function ======
   function svp(y,x,Lb){ return SelectedValue(ValueWhen(y,x,Lb));  }
   //====== Extended Line Function ======
   function exln(x1,y1,x0,y0,ex,co,st) {
    Plot(la=LineArray(x1-ex,y1,x0-ex,y0,1),"",co,st,0,0,ex,1);
   return la; }
//===========================
_SECTION_BEGIN("Fractal Wedge");
//===========================

   pl= ParamToggle("Wedge Lines","Off|On",0);
   pvt=ParamToggle("Pivot Types","Fractal|Zig %",0);
   pct=Param("Percent",0.20,0.01,5,0.01);
   nb= Param("Fractal Bars",5,2, 200,1); 
   ex= Param("Extend Right",1,0,50,1);
   rs= ParamToggle("No Rescale ","Off|On",1)*2048;
   st= ParamStyle("Style",4|4096)|rs;  s32=36|2048;
 if(pl)  {
     S=L;   R=H;
    if(pvt==0) { pS=TrID(nb);                pR=PkID(nb); }
    if(pvt==1) { pS=TroughBars(S,pct,1)==0;  pR=PeakBars(R,pct,1)==0; }
    xs1=svp(pS,x,1);   xs2=svp(pS,x,2);   xs3=svp(pS,x,3);
    xr1=svp(pR,x,1);   xr2=svp(pR,x,2);   xr3=svp(pR,x,3);
    ys1=svp(pS,L,1);   ys2=svp(pS,L,2);   ys3=svp(pS,L,3);
    yr1=svp(pR,H,1);   yr2=svp(pR,H,2);   yr3=svp(pR,H,3);
    exln(xs2,ys2,xs1,ys1,2,34,st);  exln(xr2,yr2,xr1,yr1,2,32,st);
    exln(xs3,ys3,xs1,ys1,2,55,st);  exln(xr3,yr3,xr1,yr1,2,55,st);
    exln(xs3,ys3,xs2,ys2,2,27,st);  exln(xr3,yr3,xr2,yr2,2,25,st);
   }
_SECTION_END(); 
//=============================
_SECTION_BEGIN("Daily Trend");
//=============================
   GfxSelectFont("Arial",10,100);   GfxSetBkMode(1);  GfxSetTextColor(42);
   tf=5;   ts=8;
   TimeFrameSet (inDaily);    
   tf=ti3(C,tf);   ts=ti3(C,ts);         
   TimeFrameRestore();
   Bear= WriteIf(C<tf AND C<ts,"Bear","");   revD= WriteIf(C<tf AND C>ts,"revD","");
   Bull= WriteIf(C>tf AND C>ts,"Bull","");   revU= WriteIf(C>tf AND C<ts,"revU","");
   if(revU=="revU") { GfxSelectSolidBrush(55); }
    else if(Bull=="Bull"){ GfxSelectSolidBrush(ColorRGB(113,255,113)); }
    else if(revD=="revD"){ GfxSelectSolidBrush(colorGrey40); }
    else if(Bear=="Bear"){ GfxSelectSolidBrush(ColorRGB(255,113,113));  OP="M"; }
   GfxSelectPen(42,1);     GfxCircle(70,90,6);
//GfxTextOut( OP ,92,235) ;
   RequestTimedRefresh(0);
_SECTION_END(); 
//=============================
_SECTION_BEGIN("Weekly Trend");
//=============================
   TimeFrameSet(inWeekly);
   fa=ti3(C,4);  sa=ti3(C,5);       
   TimeFrameRestore();
   Bear= WriteIf(C<fa AND C<sa,"Bearish","");   revD= WriteIf(C<fa AND C>sa,"Reverse Dn",""); 
   Bull= WriteIf(C>fa AND C>sa,"Bullish","");   revU= WriteIf(C>fa AND C<sa,"Reverse Up","");
   if(revU=="Rev Up")      { GfxSelectSolidBrush(42);}
    else if(Bull=="Bull")  { GfxSelectSolidBrush(ColorRGB(0,50,0)); }
    else if(revD=="Rev Dn"){ GfxSelectSolidBrush(colorGrey40);  }
    else if(Bear=="Bear")  { GfxSelectSolidBrush(ColorRGB(50,0,0));  }
   GfxSelectPen(20,2);       GfxCircle(70,90,60);
   //GfxRoundRect(2,320,150,200,5,5);
   RequestTimedRefresh(0);
_SECTION_END();
//=============================
_SECTION_BEGIN("Trending Ribbon");
//=============================
   TimeFrameSet (inDaily);
   up=PDI()>MDI()AND Signal()<MACD();   dn=MDI()>PDI()AND Signal()>MACD();
   uw=WriteIf(Up,"Up","");              dw=WriteIf(Dn,"Dn","");
   if(uw=="Up")            { GfxSelectSolidBrush( ColorRGB(0,70,0));  }
    else if(dw=="Dn")      { GfxSelectSolidBrush( ColorRGB(70,0,0));  }
    else if(dw=="")        { GfxSelectSolidBrush(colorPaleBlue); }
   GfxSelectPen(16,0);       GfxCircle(70,90,54);
   TimeFrameRestore();
   //GfxRoundRect(15,305,135,215,5,5);
   RequestTimedRefresh(0);
_SECTION_END();
//==============================
_SECTION_BEGIN("ti3 Flower Trends");
//==============================
   ti5=ti3(fC,5);     ti7=ti3(fC,7);    ti9=ti3(fC,9);//Trend Averages
   upC5= WriteIf(fC>ti5,"upC5","");   dnC5= WriteIf(fC<ti5,"dnC5","");
   Up57= WriteIf(ti5>ti7,"Up57","");  Dn57= WriteIf(ti7>ti5,"Dn57","");
   Up79= WriteIf(ti7>ti9,"Up79","");  Dn79= WriteIf(ti9>ti7,"Dn79","");
   xxC5= WriteIf(Cross(fC,ti5),"xxC5","");
   xx75= WriteIf(Cross(ti7,ti5),"xx75","");
   //======== Slow Trend ========
   if(Up79=="Up79")        { GfxSelectSolidBrush(ColorRGB(0,90,0)); }
    else if(Dn79=="Dn79")  { GfxSelectSolidBrush(ColorRGB(90,0,0)); }
    else if(Dn79=="")      { GfxSelectSolidBrush(colorYellow);  }
   GfxSelectPen(16,1);       GfxCircle(70,90,48);
   //======== Mid Trend ========
   if(Up57=="Up57")        { GfxSelectSolidBrush(ColorRGB(0,120,0)); }
    else if(Dn57=="Dn57")  { GfxSelectSolidBrush(ColorRGB(120,0,0)); }
    else if(xx75=="xx75")  { GfxSelectSolidBrush(colorYellow); }
   GfxSelectPen(16,1);      GfxCircle(70,90,42);
   //======== Fast Trend ========
   if(upC5=="upC5")        { GfxSelectSolidBrush( ColorRGB(0,150,0));  }
    else if(dnC5=="dnC5")  { GfxSelectSolidBrush(ColorRGB(150,0,0));  }
    else if(xxC5=="xxC5")  { GfxSelectSolidBrush(colorYellow);  }
   GfxSelectPen(16,1);       GfxCircle(70,90,36);
_SECTION_END();
//=============================
_SECTION_BEGIN("Rays");
//=============================
   pd=3;   ap=2;   su=LLV(fH,pd);   av=ATR(ap);
   upATR= WriteIf(fC>HHV(su-av,4),"upATR","");
   dnATR= WriteIf(HHV(su-av,4)>fC,"dnATR","");
   if(upATR=="upATR")      { GfxSelectSolidBrush(ColorRGB(0,180,0));  }
    else if(dnATR=="dnATR"){ GfxSelectSolidBrush(ColorRGB(180,0,0));  }
    else if(upATR=="")     { GfxSelectSolidBrush(colorGrey40);  }
   GfxSelectPen(16,1);       GfxCircle(70,90,30);
_SECTION_END();
//=============================
_SECTION_BEGIN("Profit Taker");
//=============================
   pds=10;  atv=1.9*ATR(10);
   Ent= C>(LLV(fL,pds)+atv);     Xit= C<(HHV(fH,pds)-atv);
   EntU= WriteIf(Ent,"Ent","");  XitD= WriteIf(Xit,"Xit","");
   if(EntU=="Ent")         { GfxSelectSolidBrush(ColorRGB(0,210,0)); }
    else if(XitD=="Xit")   { GfxSelectSolidBrush(ColorRGB(210,0,0)); }
    else if(XitD=="")      { GfxSelectSolidBrush(colorGrey40); }
   GfxSelectPen(16,1);       GfxCircle(70,90,24);
   RequestTimedRefresh(0);
_SECTION_END();
//=============================
_SECTION_BEGIN("CCI 9-2 Trend");
//=============================
   up=WriteIf(CCI(9)>0,"upCCI","");   dn=WriteIf(CCI(8)<0,"dnCCI","");
   if(up=="upCCI")         { GfxSelectSolidBrush(ColorRGB(0,240,0)); }
    else if(dn=="dnCCi")   { GfxSelectSolidBrush(ColorRGB(240,0,0)); }
    else if(dn=="")        { GfxSelectSolidBrush(colorGrey40); }
   GfxSelectPen(16,1);       GfxCircle(70,90,18);
   RequestTimedRefresh(0);
_SECTION_END();
//=============================
_SECTION_BEGIN("% Bol Bands 7");
//=============================
   GfxSelectFont("Tahoma",12,100);  GfxSetBkMode(1);  GfxSetTextColor(55);
   GfxSelectFont("Arial",10,100);   GfxSetBkMode(1);  GfxSetTextColor(16);
   p=7;   dv=((C+2*StDev(C,p)-MA(C,p))/(4*StDev(C,p)))*100;
   upBB=WriteIf(dv>40,"upBB","");   dnBB=WriteIf(dv<40,"dnBB","");
   if(upBB=="upBB")        { GfxSelectSolidBrush(ColorRGB(62,255,62)); }
    else if(dnBB=="bd")    { GfxSelectSolidBrush(ColorRGB(255,62,62)); }
    else if(dnBB=="")      { GfxSelectSolidBrush(colorGrey40); }
   GfxSelectPen( 16,1);      GfxCircle(70,90,12);
   RequestTimedRefresh(0);
_SECTION_END();


   up=C> Ref(C, -1);  df=C-Ref(C,-1);
Title= "\\c55" + Name () + "   |   \\c42" + Date() + "\\c55   |   Open: \\c10" + O + "\\c55   |   Hi: \\c43 " + H +
       "\\c55   |   Close: \\c42 " + C + "\\c55   |   Change: ("+ WriteIf(up,"\\c43 ","\\c32 ") + df +
       "\\c55   /" + WriteIf(up,"\\c43","\\c32") + WriteVal(ROC(C,1)) + "\\c55 % )   |   Volume: " +
       WriteIf(V>Ref(V,-1),"\\c43 ","\\c32 ") + WriteVal(V,1) + rTitle; 
Previous
Next Post »