// Downloaded From https://www.WiseStockTrader.com Explorer= ParamToggle("Explorer","buysell exp|market exp",1); font = ParamToggle("font","Show|Hide",1); TrendLines= ParamToggle("TrendLines","Show|Hide",0); LinearRegression= ParamToggle("LinearRegression","Show|Hide",0); Buyselllable= ParamToggle("Buyselllable","Show|Hide",0); ChangeTitle= ParamToggle("ChangeTitle","Show|Hide",1); _SECTION_BEGIN("Background_Setting"); SetChartBkGradientFill( ParamColor("BgTop", colorDarkYellow), ParamColor("BgBottom", colorDarkTeal),ParamColor("titleblock",colorDarkGrey )); SetChartBkColor(colorTeal); // color of outer border _SECTION_END(); SetChartOptions(0,chartShowArrows | chartShowDates); if(TrendLines==1) { _SECTION_BEGIN("Trend Lines"); p1 = Param("TL 1 Periods", 20, 5, 50, 1); p2 = Param("TL 2 Periods", 5, 3, 25, 1); TL1 = LinearReg(C, p1); TL2 = EMA(TL1, p2); Col1 = IIf(TL1 > TL2, ParamColor("TL Up Colour", colorGreen), ParamColor("TL Dn Colour", colorRed)); Plot(TL1, "TriggerLine 1", Col1, styleLine|styleThick|styleNoLabel); Plot(TL2, "TriggerLine 2", Col1, styleLine|styleThick|styleNoLabel); _SECTION_END(); } //================================================End Chart Configuration=============================================================================== if(font==0) { _SECTION_BEGIN("Name"); GfxSetOverlayMode(0); GfxSelectFont("Tahoma", Status("pxheight")/8 ); GfxSetTextAlign( 6 );// center alignment GfxSetTextColor( ColorHSB( 42, 42, 42 ) ); GfxSetBkMode(0); // transparent GfxTextOut( Name(), Status("pxwidth")/2, Status("pxheight")/12 ); GfxSelectFont("Tahoma", Status("pxheight")/18 ); GfxTextOut("" , Status("pxwidth")/2, Status("pxheight")/4 ); GfxSelectFont("Tahoma", Status("pxheight")/18 ); GfxSelectFont("Tahoma", Status("pxheight")/36 ); GfxTextOut( "", Status("pxwidth")/2, Status("pxheight")/3 ); _SECTION_END(); //Magfied Market Price FS=Param("Font Size",72,11,100,1); GfxSelectFont("Times New Roman", FS, 700, True ); GfxSetBkMode(0); // transparent GfxSetTextColor( ColorHSB( 42, 42, 42 ) ); Hor=Param("Horizonta Position",615,1,1200,1); Ver=Param("Vertica Position",152,1,830,1); GfxTextOut(""+C, Hor , Ver ); YC=TimeFrameGetPrice("C",inDaily,-1); DD=Prec(C-YC,2); xx=Prec((DD/YC)*100,2); FS2=Param("Font Size2",35,11,100,1); GfxSelectFont("Times New Roman", FS2,11, 700, True ); GfxSetBkMode( colorBlack ); Hor1=Param("Horizontal Position",615,1,1200,1); Ver1=Param("Vertical Position",188,1,830,1); GfxSetTextColor( ColorHSB( 42, 42, 42 ) ); GfxTextOut(""+DD+" ("+xx+"%)", Hor1 , Ver1+45 ); } else {{ //Magfied Market Price fse=Param("Font Sizee",35,11,100,1); GfxSelectFont("Times New Roman", fse, 700, True ); GfxSetBkMode( colorGold ); GfxSetTextColor( ParamColor("Color",colorGold) ); Hora=Param("Horizontal Positiona",525,1,1200,1); Vera=Param("Vertical Positiona",17,1,830,1); GfxTextOut(""+C, Hora , Vera ); YCa=TimeFrameGetPrice("C",inDaily,-1); DDa=Prec(C-YCa,2); xxa=Prec((DDa/YCa)*100,2); FSb=Param("Font Sizeb",16,11,100,1); GfxSelectFont("Times New Roman",fsb, 700, True ); GfxSetBkMode( colorBlack ); GfxSetTextColor(ParamColor("Color",colorYellow) ); GfxTextOut(""+DDa+" ("+xxa+"%)", Hora , Vera+45 ); _SECTION_END(); }} //====================================Start of Linear Regression Code================================================================================== if(LinearRegression==1) { P = ParamField("Price field",-1); Length = 150; Daysback = Param("Period for Liner Regression Line",Length,1,240,1); shift = Param("Look back period",0,0,240,1); //=============================== Math Formula ======================================================================================================== x = Cum(1); lastx = LastValue( x ) - shift; aa = LastValue( Ref(LinRegIntercept( p, Daysback), -shift) ); bb = LastValue( Ref(LinRegSlope( p, Daysback ), -shift) ); y = Aa + bb * ( x - (Lastx - DaysBack +1 ) ); //==================Plot the Linear Regression Line ==================================================================================================== LRColor = ParamColor("LR Color", colorCycle ); LRStyle = ParamStyle("LR Style"); LRLine = IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y, Null ); LRStyle = ParamStyle("LR Style"); Angle = Param("Angle", 0.05, 0, 1.5, 0.01);// A slope higher than 0.05 radians will turn green, less than -0.05 will turn red and anything in between will be white. LRLine = IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y, Null ); Pi = 3.14159265 * atan(1); // Pi SlopeAngle = atan(bb)*(180/Pi); LineUp = SlopeAngle > Angle; LineDn = SlopeAngle < - Angle; if(LineUp) { Plot(LRLine, "Lin. Reg. Line Up", IIf(LineUp, colorBrightGreen, colorWhite), LRStyle); } else { Plot(LRLine, "Lin. Reg. Line Down", IIf(LineDn, colorDarkRed, colorWhite), LRStyle); } //========================== Plot 1st SD Channel ====================================================================================================== SDP = Param("Standard Deviation", 1.5, 0, 6, 0.1); SD = SDP/2; width = LastValue( Ref(SD*StDev(p, Daysback),-shift) ); //Set width of inside chanels here. SDU = IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y+width , Null ) ; SDL = IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y-width , Null ) ; SDColor = ParamColor("SD Color", colorCycle ); SDStyle = ParamStyle("SD Style"); Plot( SDU , "Upper Lin Reg", colorWhite,SDStyle ); //Inside Regression Lines Plot( SDL , "Lower Lin Reg", colorWhite,SDStyle ); //Inside Regression Lines //========================== Plot 2d SD Channel ======================================================================================================== SDP2 = Param("2d Standard Deviation", 2.0, 0, 6, 0.1); SD2 = SDP2/2; width2 = LastValue( Ref(SD2*StDev(p, Daysback),-shift) ); //Set width of outside chanels here. SDU2 = IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y+width2 , Null ) ; SDL2 = IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y-width2 , Null ) ; SDColor2 = ParamColor("2 SD Color", colorCycle ); SDStyle2 = ParamStyle("2 SD Style"); Plot( SDU2 , "Upper Lin Reg", colorWhite,SDStyle2 ); //OutSide Regression Lines Plot( SDL2 , "Lower Lin Reg", colorWhite,SDStyle2 ); //OutSide Regression Lines Trend = IIf(LRLine > Ref(LRLine,-1),colorGreen,colorRed);//Changes LR line to green if sloping up and red if sloping down. Plot( LRLine , "LinReg", Trend, LRSTYLE ); //============================ End Indicator Code ========= } _SECTION_BEGIN("Flower"); Show_color = ParamToggle("Display CandleColor", "No|Yes", 1); r1 = Param( "ColorFast avg", 5, 2, 200, 1 ); r2 = Param( "ColorSlow avg", 10, 2, 200, 1 ); r3 = Param( "ColorSignal avg", 5, 2, 200, 1 ); Prd1=Param("ATR Period",4,1,20,1); Prd2=Param("Look Back",7,1,20,1); green = HHV(LLV(L,Prd1)+ATR(Prd1),Prd2); red = LLV(HHV(H,Prd1)-ATR(Prd1),Prd2); flowerClose = EMA((Open+High+Low+Close)/4,3) ; flowerOpen = EMA((Ref(Open,-1) + Ref(flowerClose,-1))/2,3); Temp = Max(High, flowerOpen); flowerHigh = EMA(Max(Temp, flowerClose),3); Temp = Min(Low,flowerOpen); flowerLow = EMA(Min(Temp, flowerClose),3); m1=MACD(r1,r2); s1=Signal(r1,r2,r3); mycolor=IIf(m1<0 AND m1>s1, colorYellow,IIf(m1>0 AND m1>s1,colorGreen,IIf(m1>0 AND m1Green ,colorBrightGreen,IIf(C < RED,colorRed,colorWhite)); PlotOHLC( IIf(flowerOpen= Firstbar,EndValue(PriceLevel),Null); Plot(YY,"Current Price",PriceLineColor,ParamStyle("LineStyle",styleLine|styleDashed|styleNoTitle|styleNoLabel|styleThick,maskAll)); side = Param("side",1,0,1000,1); dist = 0; for( i = 0; i < BarCount; i++ ) { if(i+side== BarCount) PlotText( "\n " + PriceLevel[ i ], i, YY[ i ]-dist[i], colorLightBlue ); } _SECTION_END(); _SECTION_BEGIN("Color_Me_Bad"); a =5; //Param("Average Pds", 5, 1, 10, 1 ); n =8; //Param("Short Pds", 8, 5, 21, 1 ); m =60; //Param("Long Pds", 60, 0, 90, 1 ); Var4 =(Low+High+2*Close)/4; OP = EMA(Var4,a); res1 = HHV(OP,n); res2 =HHV(OP,m); sup2 =LLV(OP,m); sup1 =LLV(OP,n); Linecolor1 = IIf(Op==sup1,ColorRGB(48,0,81),IIf(Op==res1,colorGreen,ColorRGB(80,80,80))); Linecolor2 = IIf(Op==sup1,ColorRGB(38,0,60),IIf(Op==res1,colorGreen,colorDarkGrey)); Linecolor3 = IIf(Op==sup1,ColorRGB(27,0,70),IIf(Op==res1,colorGreen,ColorRGB(77,70,75))); _SECTION_END(); _SECTION_BEGIN("ATR"); ParmCloud1 = ParamToggle("TrailingCloud", "No|Yes", 1); Pp1=Param("Ray_Period1",2,1,20,1); // or 4 Pp2=Param("ATR_Period1",3,1,20,1); // or 2 avgClose = EMA((Open+High+Low+Close)/4,3) ; avgOpen = EMA((Ref(Open,-1) + Ref(avgClose,-1))/2,3); Temp = Max(High, avgOpen); avgHigh = EMA(Max(Temp, avgClose),3); Temp = Min(Low,avgOpen); avgLow = EMA(Min(Temp, avgClose),3); Plot(HHV(LLV(avgHigh,Pp1)-ATR(Pp2),4),"",Linecolor1 ,ParamStyle("styleLine 1",styleLine|styleThick|styleNoTitle|styleNoLabel,maskAll)); Plot(HHV(LLV(avgHigh,Pp1)-ATR(Pp2),5),"",Linecolor2 ,ParamStyle("styleLine 2",styleLine|styleThick|styleNoTitle|styleNoLabel,maskAll)); Plot(HHV(LLV(avgHigh,Pp1)-ATR(Pp2),6),"",Linecolor1 ,ParamStyle("styleLine 3",styleLine|styleThick|styleNoTitle|styleNoLabel,maskAll)); Plot(HHV(LLV(avgHigh,Pp1)-ATR(Pp2),7),"",Linecolor1 ,ParamStyle("styleLine 4",styleLine|styleThick|styleNoTitle|styleNoLabel,maskAll)); CS33=HHV(LLV(avgHigh,Pp1)-ATR(Pp2),4); CR33=HHV(LLV(avgHigh,Pp1)-ATR(Pp2),5); CT33=HHV(LLV(avgHigh,Pp1)-ATR(Pp2),6); CM33=HHV(LLV(avgHigh,Pp1)-ATR(Pp2),7); if(parmCloud1 == 1) { PlotOHLC( CS33, CS33, CR33,CR33, "Band1", LineColor1, styleCloud | styleNoLabel|styleNoTitle); PlotOHLC( CR33, CR33, CT33, CT33, "Band2", LineColor2, styleCloud | styleNoLabel|styleNoTitle); PlotOHLC( CR33, CR33, CM33, CM33, "Band3", LineColor3, styleCloud | styleNoLabel|styleNoTitle); } _SECTION_END(); _SECTION_BEGIN("Bands"); SupResB =Param("Sup-Res Short",6,0,100,1); nn=SupResB; Bandlinecol=ParamColor("SupResLineColor",ColorRGB(82,82,82)); ParmCloud = ParamToggle("Cloud", "No|Yes", 0); BoxCloudColor=ParamColor("BoxCloudColor",ColorRGB(27,27,27)); Line2=Param("ResLineLength",100,2,500,0.1); Daysback1 = Line2; FirstBar1 = BarCount - DaysBack1; Hh=HHV(flowerHigh,nn); LL=LLV(flowerLow,nn); Res2=Hh; Sup2=LL; BandRes=IIf(BarIndex() >= Firstbar1,EndValue(Res2),Null); BandSup=IIf(BarIndex() >= Firstbar1,EndValue(Sup2),Null); Plot(BandRes,"",Bandlinecol,ParamStyle("ShortSupBand",styleLine|styleDashed|stylehidden|styleNoTitle|styleNoLabel|styleThick,maskAll)); Plot(BandSup,"",Bandlinecol,ParamStyle("ShortResBand",styleLine|styleDashed|stylehidden|styleNoTitle|styleNoLabel|styleThick,maskAll)); CS=BandRes; CR=BandSup; if(parmCloud == 1) { PlotOHLC( CS, CS, CR,CR, "Band",BoxCloudColor, styleCloud | styleNoLabel|styleNoTitle); } _SECTION_END(); _SECTION_BEGIN("TSKPPIVOT4"); CHiPr = 0; CLoPr = 9999999; blsLong = 0; PrevCOBar = 0; NumBars = 0; PrePP = 0; PrevLowVal = 9999999; BuySig = 0; blsShort = 0; PrevHiVal = 0; blsNewCO = 0; BarDif = 0; KPA900Val = MA(C,10); KPAutoStopVal = IIf(High,Low,Close); // -- Create 0-initialized arrays the size of barcount aHPivs = H - H; aLPivs = L - L; aHiVal = H - H; aLoVal = L - L; Ctmpl=Param("Ctmpl",45,1,20,1); tskp_colortmplcnd0=colorTan; tskp_colortmplcnd1=colorWhite; tskp_colortmplcnd2=colorTan; tskp_colortmplcnd3=colorWhite; tskp_colortmplcnd4=colorTan; tskp_colortmplcnd5=colorWhite; tskp_colortmplcnd6=colorTan; tskp_colortmplcnd7=colorWhite; tskp_colortmplcnd8=colorTan; sctotal = 0; sctotal = sctotal + IIf(tskp_colortmplcnd0 > 0, 1, -1); sctotal = sctotal + IIf(tskp_colortmplcnd1 > 0, 1, -1); sctotal = sctotal + IIf(tskp_colortmplcnd2 > 0, 1, -1); sctotal = sctotal + IIf(tskp_colortmplcnd3 > 0, 1, -1); sctotal = sctotal + IIf(tskp_colortmplcnd4 > 0, 1, -1); sctotal = sctotal + IIf(tskp_colortmplcnd5 > 0, 1, -1); sctotal = sctotal + IIf(tskp_colortmplcnd6 > 0, 1, -1); sctotal = sctotal + IIf(tskp_colortmplcnd7 > 0, 1, -1); sctotal = sctotal + IIf(tskp_colortmplcnd8 > 0, 1, -1); for (curBar=0; curBar < BarCount-1; curBar++) { if ( curBar == 0 ) { CHiPr = flowerHigh[curBar]; CHiBar = curBar; CLoPr = flowerLow[curBar]; CLoBar = curBar; blsLong = 0; blsShort = 0; blsNewCO = 0; PrePP = 0; PrevCOBar = 0; PrevHiVal =flowerHigh[curBar]; PrevLowVal = flowerLow[curBar]; BuySig = 0; SellSig = 0; blsLL = 0; } if (flowerHigh[CurBar] >= CHiPr) { CHiPr = flowerHigh[CurBar]; ChiBar = CurBar; } if (flowerLow[CurBar] <= CLoPr) { CLoPr = flowerLow[CurBar]; CLoBar = CurBar; } if ( (KPA900Val[curBar] >= KPAutoStopVal[curbar]) AND (PrePP != -1) AND (blsLong != 1) ){ BarDif = CurBar - PrevCOBar; if (BarDif >= NumBars) { blsLong = 1; blsShort = 0; blsNewCO = 1; PrevCOBar = CurBar; } } if ( (KPA900Val[curBar] <= KPAutoStopVal[curbar]) AND (PrePP != 1) AND (blsShort != 1) ){ BarDif = CurBar - PrevCOBar; if (BarDif >= NumBars) { blsLong = 0; blsShort = 1; blsNewCO = 1; PrevCOBar = CurBar; } } if ( (blsNewCO == 1) AND (sctotal[CurBar] >= 5) AND (blsLong == 1) ) { LVal = CurBar - CLoBar; for (j= CLoBar-1; j <= CLoBar+1; j++) { if (j >=0) { aLPivs[j] = 1; aLoVal[j] = CLoPr; } } PrePP = -1; blsNewCO = 0; CHiPr = flowerHigh[CurBar]; CHiBar = CurBar; CLoPr = flowerLow[Curbar]; CLoBar = CurBar; } else if ((blsNewCO == 1) AND (sctotal[CurBar] <= -5) AND (blsShort == 1) ) { HVal = CurBar - CHiBar; for (j= CHiBar-1; j <= CHiBar+1; j++) { if (j >=0) { aHPivs[j] = 1; aHiVal[j] = CHiPr; } } PrePP = 1; blsNewCO = 0; CHiPr = flowerHigh[CurBar]; CHiBar = CurBar; CLoPr = flowerLow[Curbar]; CLoBar = CurBar; } } PlotShapes( IIf(aHPivs == 1,shapeHollowSmallCircle,shapeNone),colorYellow ,0, aHiVal+0.05, offset = 5); PlotShapes( IIf(aLPivs == 1,shapeHollowSmallCircle,shapeNone), colorPink,0, aLoVal-0.05, Offset = -5); _SECTION_END(); _SECTION_BEGIN("SupRes_Short"); supresshortcolor=ParamColor("SupResShort",ColorRGB(82,82,82)); //this is for short term support line TimeFrameSet(inWeekly); ShortSupLenght=Param( "ShortResistLength", 4, 1, 55 ,1); ShortSupCond1=HHV(High,ShortSupLenght); ShortSupCond2=CloseRef(ShortSupCond2,-1),1,IIf(HRef(HHV(High,4),-1); ShortResCond2=LLV(Low,ShortResLenght); ShortResA=IIf(H>Ref(ShortResCond1,-1),1,IIf(LRef(LongResCond2,-1),1,IIf(HRef(HHV(High,4),-1); LongSupCond2=LLV(Low,LongSupLenght); LongSupA=IIf(H>Ref(LongSupCond1,-1),1,IIf(L Ref(C, -1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ C + " | " +EncodeColor(colorTurquoise)+ "Change : ("+ WriteIf(C> Ref(C, -1),EncodeColor(colorBrightGreen),EncodeColor(colorRed)) + WriteVal(C-Ref(C,-1))+" Tk." +EncodeColor(colorTurquoise)+ " /"+ WriteIf(C> Ref(C, -1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal( ROC( C, 1 ))+""+ " % " +EncodeColor(colorTurquoise)+ ") | Volume : " + WriteIf(V> Ref(V, -1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(V,1) ; ///////////////////////////////////////////////////////// // // // General Market Exploration by XeL // // // // Ver: 1.00.beta // // // // Free to Distribute under LGPL 2012 . // // Portions of Code are property of their original // // authors, Cleaning, some new code and Preparation // // are derived by @XeL_Arjona. // // Some Original Code credits: // // // // * Volume Price Analysis by Karthikmarar // // http://vpanalysis.blogspot.mx/ // // // // * Jurik Research DMX (Free) // // http://jurikres.com/catalog/ms_dmx.htm // // // // * Extract of some exploration Methodology // // by Manish. // // // // // ///////////////////////////////////////////////////////// ///////////////// // AFL START // ///////////////// //_SECTION_BEGIN("VPA, Momentum & Signal Explorer by XeL"); ////////////////////// // Main Variables // ////////////////////// // Count Index value for TrendScore i = 0; // Display Colors // Main Color Color_buy = colorLime ; Color_bull = colorGreen ; Color_bull1 = colorDarkYellow ; Color_bear1 = colorLightOrange ; Color_bear = colorOrange ; Color_sell = colorRed ; Color_prev = colorGold ; Color_acc = colorPaleTurquoise ; Color_null = colorLightGrey ; // Background Colors BColor_vpa = colorBlack ; BColor_mas = colorDefault ; BColor_mam = colorDefault ; BColor_mal = colorDefault ; // Alternate Colors Color_acc1 = colorBlueGrey ; // 52 High Low High52 = HHV(High,250); Low52 = LLV(Low,250); // T3 Function function T3(price,periods) { s = 0.84; e1=EMA(price,periods); e2=EMA(e1,Periods); e3=EMA(e2,Periods); e4=EMA(e3,Periods); e5=EMA(e4,Periods); e6=EMA(e5,Periods); 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; Ti3=c1*e6+c2*e5+c3*e4+c4*e3; return ti3; } //////////////////////////////////////////////// // Time to Date % Change and Beta Correlation // //////////////////////////////////////////////// _SECTION_BEGIN("P/L % Change over Time with Beta Correlation"); // PARAMETERS TtD_Param = ParamList("Period","Day to Date|Week to Date|Month to Date|Year to Date",0); IDX_Param = ParamStr("Reference Market Index Symbol","$IME-MEX"); // VARIABLES FDayMonth = BarsSince(Month() != Ref(Month(),-1)); FDayYear = BarsSince(Year() != Ref(Year(),-1)); TtD_Period = IIf(TtD_Param == "Day to Date",1, IIf(TtD_Param == "Week to Date",DayOfWeek(), IIf(TtD_Param == "Month to Date",FDayMonth, IIf(TtD_Param == "Year to Date",FDayYear,0)))); IDX_Close = Foreign(IDX_Param,"Close"); // FORMULA // P/L % Change TtD_Change = 100 * (Close - Ref(Close, -TtD_Period) ) / Ref(Close, -TtD_Period); // Beta Correlation in Time from Index Beta = (( TtD_Period * Sum(ROC( C,1) * ROC(IDX_Close,1),TtD_Period )) - (Sum(ROC(C,1),TtD_Period) * Sum(ROC( IDX_Close,1),TtD_Period))) / ((TtD_Period * Sum((ROC(IDX_Close,1)^2 ),TtD_Period)) - (Sum(ROC(IDX_Close,1 ),TtD_Period)^2 )); _SECTION_END(); /////////////////////////// // Volume Price Analysis // /////////////////////////// _SECTION_BEGIN("Volume Price Analysis"); // FORMULA SetChartOptions(0,chartShowArrows|chartShowDates); DTL=Param("Linear regression period",60,10,100,10); wbf=Param("WRB factor",1.5,1.3,2.5,.1); nbf=Param("NRB factor",0.7,0.3,0.9,0.1); TL=LinRegSlope(MA(C, DTL),2); Vlp=Param("Volume lookback period",30,20,300,10); Vrg=MA(V,Vlp); St = StDev(Vrg,Vlp); Vp3 = Vrg + 3*st; Vp2 = Vrg + 2*st;; Vp1 = Vrg + 1*st;; Vn1 = Vrg -1*st; Vn2 = Vrg -2*st; rg=(H-L); arg=Wilders(rg,30); wrb=rg>(wbf*arg); nrb=rg<(nbf*arg); Vl=VRef(C,-1); dnbar=CRef(V,-1) AND Ref(V,-1)>Ref(V,-2); Cloc=C-L; x=rg/Cloc; x1=IIf(Cloc=0,arg,x); Vb=V>Vrg OR V>Ref(V,-1); ucls=x1<2; dcls=x1>2; mcls=x1<2.2 AND x1>1.8 ; Vlcls=x1>4; Vhcls=x1<1.35; j=MA(C,5); TLL=LinRegSlope(j,40) ; Tlm=LinRegSlope(j,15) ; tls=LinRegSlope(j,5); mp=(H+L)/2; // VOLUME VARIABLES // TrendScore Count IIf( V>Vp2, i+3,i); IIf( V>Vp1, i+2,i); IIf( V>VRG, i+1,i); // Indicators VPAv_Status = WriteIf( V>Vp2, "VERY HIGH", WriteIf( V>Vp1, "High", WriteIf( V>Vrg, "Above Average", WriteIf( VVn1, "Less than Average", WriteIf( VVp2, Color_buy, IIf( V>Vp1, Color_bull, IIf( V>Vrg, Color_bull1, IIf( VVn1, Color_bear, IIf( V(arg*2), i+2,i); IIf( rg>arg, i+1,i); VPAs_Status = WriteIf( rg>(arg*2), "Wide", WriteIf( rg>arg, "Above Average","Narrow")); VPAs_Color = IIf( rg>(arg*2), Color_buy, IIf( rg>arg, Color_bull,Color_bear)); // CLOSE VARIABLES // TrendScroe Count IIf( Vhcls, i+2,i); IIf( ucls, i+1,1); // Indicators VPAc_Status = WriteIf( Vhcls, "VERY HIGH", WriteIf( ucls, "High", WriteIf( mcls, "Mid", WriteIf( dcls, "Down","VERY LOW")))); VPAc_Color = IIf( Vhcls, Color_buy, IIf( ucls, Color_bull, IIf( mcls, Color_bull1, IIf( dcls, Color_bear,Color_sell)))); // VOLUME ZONE // FORMULA C1 = Ref(C, -1); uc = C > C1; dc = C <= C1; ud = C > O; dd = C <= O; green = 1; blue = 2; yellow = 3; red = 4; white = 5; VType = IIf(ud, IIf(uc, green, yellow), IIf(dd, IIf(dc, red, blue), white)); /* green volume: up-day and up-close*/ gv = IIf(VType == green, V, 0); /* yellow volume: up-day but down-close */ yv = IIf(VType == yellow, V, 0); /* red volume: down-day and down-close */ rv = IIf(VType == red, V, 0); /* blue volume: down-day but up-close */ bv = IIf(VType == blue, V, 0); uv = gv + bv; uv1 = Ref(uv, -1); /* up volume */ dv = rv + yv; dv1 = Ref(dv, -1); /* down volume */ VolPer = Param("Adjust Vol. MA per.", 34, 1, 255, 1);//12 ConvPer = Param("Adjust Conv. MA per.", 9, 1, 255, 1);//6 MAuv = TEMA(uv, VolPer ); mauv1 = Ref(mauv, -1); MAdv = TEMA(dv, VolPer ); madv1 = Ref(madv, -1); MAtv = TEMA(V, VolPer );//total volume Converge = (TEMA(MAuv - MAdv, ConvPer)); Converge1 = Ref(Converge, -1); ConvergeUp = Converge > Converge1; ConvergeOver = Converge > 0; rising = ConvergeUp AND ConvergeOver; falling = !ConvergeUp AND ConvergeOver; // VOLUME ZONE // VARIABLES // TrendScore Count IIf( rising, i+1,i); // Indicators VPAz_Status = WriteIf(rising,"Accumulation", WriteIf(falling,"Distribution","Flat")); VPAz_Color = IIf(rising,Color_acc, IIf(falling,Color_prev,Color_null)); // VOLUME STATUS // PARAMETERS Pp1=Param("Number Of Days",30,1,200,1); Pp2=Param("Volume Of Days",15,1,200,1); // FORMULA numDays = Pp1; dwWideSpread = 1.8; dwNarrowSpread = 0.8; dwSpreadMiddle = 0.5; dwHighClose = 0.7; dwLowClose = 0.3; volNumDays = Pp2; dwUltraHighVol = 2; dwVeryHighVol = 1.75; // was 1.8 dwHighVol = 1.75; // was 1.8 dwmoderateVol = 1.10; // was 1.8 dwLowVol = 0.75; // was 0.8 /* Classify each bar... */ upBar = C > Ref(C,-1); downBar = C < Ref(C,-1); spread = H-L; avgRange = Sum(spread, numDays) / numDays; wideRange = spread >= (dwWideSpread * avgRange); narrowRange = spread <= (dwNarrowSpread * avgRange); testHighClose = L + (spread * dwHighClose); testLowClose = L + (spread * dwLowClose); testCloseMiddle = L + (spread * dwSpreadMiddle); upClose = C > testHighClose; downClose = C < testLowClose; middleClose = C >= testLowClose AND C <= testHighClose; avgVolume = EMA(V, volNumDays); highVolume = V > (avgVolume * dwHighVol); moderateVol= V > (avgVolume * dwmoderateVol); veryHighVolume = V > (avgVolume * dwVeryHighVol); ultraHighVolume = V > (avgVolume * dwUltraHighVol); LowVolume = V < (avgVolume * dwLowVol); /* direction AND Title */ /* Basic patterns... */ upThrustBar = downClose AND H > Ref(H,-1) AND (C == L) AND downClose AND (NOT narrowRange); noDemandBar = narrowRange AND LowVolume AND upBar AND (NOT upClose); //noDemandBar = narrowRange AND LowVolume AND upBar AND (V < Ref(V,-1)) AND (V < Ref(V,-2)); noSupplyBar = narrowRange AND LowVolume AND downBar AND (V < Ref(V,-1)) AND (V < Ref(V,-2)); absorption = Ref(downbar, -1) AND Ref(highVolume, -1) AND upBar; support = Ref(downBar,-1) AND (NOT Ref(downClose,-1)) AND Ref(highVolume,-1) AND upBar; stoppingVolume = Ref(downBar,-1) AND Ref(highVolume,-1) AND C > testCloseMiddle AND (NOT downBar); bullishsign=moderateVol+UpThrustBar;//OR moderateVol+upBar; //rallyEnd = (Ref(highVolume,-1) AND Ref(upBar,-1) AND wideRange AND downBar) OR // (narrowRange AND highVolume AND H > Ref(HHV(H, 250), -1)); /* Strength AND Weakness */ weakness = upThrustBar OR noDemandBar OR (narrowRange AND (H > Ref(H,-1)) AND highVolume) OR (Ref(highVolume,-1) AND Ref(upBar,-1) AND downBar AND (H < Ref(H,-1))); // VARIABLES // TrendScore Count IIf( bullishsign, i+3,i); IIf( upThrustBar, i+2,i); IIf( absorption, i+1,i); // Indicators VPAst_Status = WriteIf(Weakness,"W e a k", WriteIf(StoppingVolume,"Stopping Volume", WriteIf(noSupplyBar,"No Supply", WriteIf(support,"Support", WriteIf(noDemandBar,"No Demand", WriteIf(absorption,"Absorption", WriteIf(upThrustBar,"Up Thrust", WriteIf(bullishsign,"-=STRONG=-","Neutral")))))))); VPAst_Color = IIf(Weakness,Color_sell, IIf(StoppingVolume,Color_bear, IIf(noSupplyBar,Color_bear1, IIf(support,Color_bear, IIf(noDemandBar,Color_prev, IIf(absorption,Color_bull1, IIf(upThrustBar,Color_bull, IIf(bullishsign,Color_buy,Color_null)))))))); _SECTION_END(); ////////////////////////// // EMA Terms and Trend // ////////////////////////// _SECTION_BEGIN("EMA Short, Mid and Long Terms and Trend"); // PARAMETERS EMAs1Pds = Param("1st. Short Term Period",9,5,14,1); EMAs2Pds = Param("2nd. Short Term Period",20,15,45,1); EMAmPds = Param("Mid Term Period",50,46,90,1); EMAlPds = Param("Long Term Perdiod",200,100,300,1); // FORMULA // EMA Short term signals EMAsBuy = Cross(EMA(C,EMAs1Pds), EMA(C,EMAs2Pds)); EMAsSell = Cross(EMA(C,EMAs2Pds),EMA(C,EMAs1Pds)); EMAsBuy = ExRem(EMAsBuy, EMAsSell); EMAsSell = ExRem(EMAsSell, EMAsBuy); EMAsBull = EMA(C,EMAs1Pds) > EMA(C,EMAs2Pds); EMAsBear = EMA(C,EMAs1Pds) < EMA(C,EMAs2Pds); // EMA Mid term signals EMAmBuy = Cross(EMA(C,(EMAs1Pds+EMAs2Pds)/2), EMA(C,EMAmPds)); EMAmSell = Cross(EMA(C,EMAmPds), EMA(C,(EMAs1Pds+EMAs2Pds)/2)); EMAmBuy = ExRem(EMAmBuy, EMAmSell); EMAmSell = ExRem(EMAmSell, EMAmBuy); EMAmBull = C > EMA(C,EMAmPds); EMAmBear = C < EMA(C,EMAmPds); // EMA Long term signals EMAlBuy = Cross(EMA(C,EMAmPds), EMA(C,EMAlPds)); EMAlSell = Cross(EMA(C,EMAlPds), EMA(C,EMAmPds)); EMAlBuy = ExRem(EMAlBuy, EMAlSell); EMAlSell = ExRem(EMAlSell, EMAlBuy); EMAlBull = C > EMA(C,EMAlPds); EMAlBear = C < EMA(C,EMAlPds); // EMA Positional Price Trend (Long-Term) EMA_rc = C > EMA (C,EMAmPds) AND C < EMA(C,EMAlPds) AND EMA(C,EMAmPds) < EMA(C,EMAlPds); EMA_ac = C > EMA (C,EMAmPds) AND C > EMA(C,EMAlPds) AND EMA(C,EMAmPds) < EMA(C,EMAlPds); EMA_bl = C > EMA (C,EMAmPds) AND C > EMA(C,EMAlPds) AND EMA(C,EMAmPds) > EMA(C,EMAlPds); EMA_pr = C < EMA (C,EMAmPds) AND C > EMA(C,EMAlPds) AND EMA(C,EMAmPds) > EMA(C,EMAlPds); EMA_ds = C < EMA (C,EMAmPds) AND C < EMA(C,EMAlPds) AND EMA(C,EMAmPds) > EMA(C,EMAlPds); EMA_br = C < EMA (C,EMAmPds) AND C < EMA(C,EMAlPds) AND EMA(C,EMAmPds) < EMA(C,EMAlPds); // VARIABLES // TrendScore Count IIf(EMAsBuy,i+1,i); IIf(EMAmBuy,i+1,i); IIf(EMAlBuy,i+1,i); IIf(EMA_rc,i+3,i); IIf(EMA_ac,i+2,i); IIf(EMA_bl,i+1,1); EMAs_Status = WriteIf(EMAsBuy, "-=BUY=-", WriteIf(EMAsSell, "-=SELL=-", WriteIf(EMAsBull, "Bullish", WriteIf(EMAsBear, "Bearish","Neutral")))); EMAs_Color = IIf(EMAsBuy, Color_buy, IIf(EMAsBull, Color_bull, IIf(EMAsBear, Color_bear, IIf(EMAsSell, Color_sell,Color_null)))); EMAm_Status = WriteIf(EMAmBuy, "-=BUY=-", WriteIf(EMAmSell, "-=SELL=-", WriteIf(EMAmBull, "Bullish", WriteIf(EMAmBear, "Bearish","Neutral")))); EMAm_Color = IIf(EMAmBuy, Color_buy, IIf(EMAmBull, Color_bull, IIf(EMAmBear, Color_bear, IIf(EMAmSell, Color_sell,Color_null)))); EMAl_Status = WriteIf(EMAlBuy, "-=BUY=-", WriteIf(EMAlSell, "-=SELL=-", WriteIf(EMAlBull, "Bullish", WriteIf(EMAlBear, "Bearish","Neutral")))); EMAl_Color = IIf(EMAlBuy, Color_buy, IIf(EMAlBull, Color_bull, IIf(EMAlBear, Color_bear, IIf(EMAlSell, Color_sell,Color_null)))); EMAp_Status = WriteIf(EMA_rc, "RECOVERY", WriteIf(EMA_ac, "Accumulation", WriteIf(EMA_bl, "Bullish", WriteIf(EMA_pr, "Preventive", WriteIf(EMA_ds, "Distribution", WriteIf(EMA_br, "Bearish","Neutral")))))); EMAp_Color = IIf(EMA_rc, Color_buy, IIf(EMA_ac, Color_acc1, IIf(EMA_bl, Color_bull, IIf(EMA_pr, Color_prev, IIf(EMA_ds, Color_bear1, IIf(EMA_br, Color_bear,Color_null)))))); _SECTION_END(); //////////////////////// // Initial Buy signal // //////////////////////// _SECTION_BEGIN("IBuy Signal"); // FORMULA I_buy = Cross(RSI(14), EMA(RSI(14),9)); I_sell = Cross(EMA(RSI(14),9), RSI(14)); I_buy = ExRem(I_buy, I_sell); I_sell = ExRem(I_sell, I_buy); I_bull = RSI(14) > EMA(RSI(14),9); I_bear = RSI(14) < EMA(RSI(14),9); // VARIABLES // TrendScore Count IIf(I_buy,i+2,i); IIf(I_bull,i+1,i); // Indicators I_Status = WriteIf(I_buy,"-=BUY=-", WriteIf(I_bull,"Bullish", WriteIf(I_bear,"Bearish", WriteIf(I_sell,"-=SELL=-","Neutral")))); I_Color = IIf(I_buy,Color_buy, IIf(I_bull,Color_bull, IIf(I_bear,Color_bear, IIf(I_sell,Color_sell,Color_null)))); _SECTION_END(); ///////////////////// // Price Smoothing // ///////////////////// _SECTION_BEGIN("T3 Price Smoothing Signal"); // FORMULA T3_buy = Cross (T3(C,3), T3(C,5)); T3_sell = Cross (T3(C,5), T3(C,3)); T3_buy = ExRem(T3_buy, T3_sell); T3_sell = ExRem(T3_sell, T3_buy); // VARIABLES // TrendScore Count IIf(T3_buy,i+1,i); // Indicators T3_Status = WriteIf(T3_buy,"-=BUY=-", WriteIf(T3_sell,"-=SELL=-","Neutral")); T3_Color = IIf(T3_buy,Color_buy, IIf(T3_sell,Color_sell,Color_null)); _SECTION_END(); //////////////////// // Bollinger Band // //////////////////// _SECTION_BEGIN("Bollinger Bands"); // FORMULA BB1 = C>BBandTop(C,20,2) AND Ref(C,-1)Ref(BBandBot(C,20,2),-1); // VARIABLES // TrendScore Count IIf(BB1,i+1,i); // Indicators BB_Status = WriteIf(BB1,"Above Top", WriteIf(BB2,"Below Bottom", WriteIf(IsNull(MA(C,20)),"N/A","Neutral"))); BB_Color = IIf(BB1,Color_bull, IIf(BB2,Color_bear,Color_null)); _SECTION_END(); ////////// // MACD // ////////// _SECTION_BEGIN("MACD Signal"); // FORMULA MACDBull = MACD(12,26)>Signal(12,26,9); // VARIABLES // TrendScore Count IIf(MACDBull,i+1,i); // Indicators MACD_Status = WriteIf(MACDBull,"Bullish", WriteIf(IsNull(MACD(12,26)),"N/A","Bearish")); MACD_Color = IIf(MACDBull,Color_bull, IIf(IsNull(MACD(12,26)),Color_null,Color_bear)); _SECTION_END(); ///////////////// // RSI of MACD // ///////////////// _SECTION_BEGIN("RSI of MACD Signal"); // PARAMETERS RSItPds=Param("Period",14,7,33,1); RSItOb_Parm=Param("OverBought Level",70,-200,200,5); RSItOs_Parm=Param("OverSold Level",30,-200,200,5); // FORMULA Var=MACD(); Up=IIf(Var>Ref(Var,-1),abs(Var-Ref(Var,-1)),0); Dn=IIf(Var Ref(RSIt,-1); //RSItOs = RSIt < RSItOs_Parm AND RSIt < Ref(RSIt,-1); //RSItNu = RSIt < RSItOs_Parm AND RSIt > RSItOb_Parm AND RSIt > Ref(RSIt,-1); //RSItNd = RSIt < RSItOs_Parm AND RSIt > RSItOb_Parm AND RSIt < Ref(RSIt,-1); //RSItOb = RSIt < RSItOb_Parm AND RSIt > Ref(RSIt,-1); //RSItSell = RSIt < RSItOb_Parm AND RSIt < Ref(RSIt,-1); RSItOs = RSIt < RSItOs_Parm; RSItOb = RSIt > RSItOb_Parm; // VARIABLES // TrendScore Count IIf(RSItOs, i+1,i); // Indicators RSIt_Status = WriteIf(RSItOs,"OverSold", WriteIf(RSItOb,"OverBought","In Range")); RSIt_Color = IIf(RSItOs,Color_bull, IIf(RSItOb,Color_sell,Color_null)); _SECTION_END(); /////////// // Aroon // /////////// //_SECTION_BEGIN("AROON Signal"); //// PARAMETERS // ArPeriod=Param("Period",14,7,33,1); //// FORMULA // LLVBarsSince=LLVBars(L,ArPeriod)+1; // HHVBarsSince=HHVBars(H,ArPeriod)+1; // AroonDown=100*(ArPeriod-LLVBarsSince)/(ArPeriod-1); // AroonUp=100*(ArPeriod-HHVBarsSince)/(ArPeriod-1); // AroonOsc=AroonUp-AroonDown; // Aroon=AroonOsc>0; //// VARIABLES // IIf(Aroon,i+1,i); // AROON_Status = WriteIf(Aroon,"Bullish", // WriteIf(IsNull (RSI(14)),"N/A","Bearish")); // AROON_Color = IIf(Aroon,Color_bull, // IIf(IsNull(RSI(14) ),Color_null,Color_bear)); //_SECTION_END(); ///////// // WAD // ///////// //_SECTION_BEGIN("Williams Accumulation-Distribution Signal"); // PARAMETERS // WADPds=Param("Period",20,7,33,1); // FORMULA // TrueRangeHigh=Max( Ref(Close,-1), High ); // TrueRangeLow=Min( Ref(Close,-1), Low ); // WAD = Cum(IIf(C > Ref(C,-1),C-TrueRangeLow, IIf(C < Ref(C,-1),C-TrueRangeHigh,0))); // wadup = WAD > EMA (WAD,WADPds); // waddn = WAD < EMA (WAD,WADPds); // wadbl = Cross(WAD, EMA(WAD,WADPds)); // wadbr = Cross(EMA(WAD,WADPds), WAD); // VARIABLES // WAD_Status = WriteIf(wadup, "Bullish Zone", // WriteIf(waddn, "Bearish Zone", // WriteIf(wadbl, "Bullish Cross", // WriteIf(wadbr, "Bearish Cross","Neutral")))); // WAD_Color = IIf(wadup,Color_bull, // IIf(wadbl,Color_bear, // IIf(wadbr,Color_bull1, // IIf(waddn,Color_bear1,Color_null)))); //_SECTION_END(); ///////////// // Coppock // ///////////// _SECTION_BEGIN("Coppock Indicator"); // FORMULA CKr1=ROC(C,14); CKr2=ROC(C,11); CK=EMA((CKr1+CKr2),10); CK_upt=IIf(ck>0 AND ROC(ck,1)>0,ck,0); CK_ups=IIf(ck>0 AND ROC(ck,1)<0,ck,0); CK_dws=IIf(ck<0 AND ROC(ck,1)>0,ck,0); CK_dwt=IIf(ck<0 AND ROC(ck,1)<0,ck,0); // VARIABLES // TrendScore Count IIf(CK_upt,i+2,i); IIf(CK_ups,i+1,i); // Indicators Coppock_Status = WriteIf( CK_upt,"UPTREND", WriteIf( CK_ups,"UpT Sideways", WriteIf( CK_dws,"DnT Sideways", WriteIf( CK_dwt,"DownTrend","Flat")))); Coppock_Color = IIf( CK_upt,Color_buy, IIf( CK_ups,Color_bull, IIf( CK_dws,Color_bear, IIf( CK_dwt,Color_sell,Color_null)))); _SECTION_END(); //////////////// // Stochastic // //////////////// _SECTION_BEGIN("Stochastic %D %K Signal"); // FORMULA StochKBull = StochK(14,3)>StochD(14,3,3); // VARIABLES // TrendScore Count IIf(StochKBull,i+1,i); // Indicators STOCH_Status = WriteIf( StochKBull,"Bullish", WriteIf( IsNull(StochK(14,3)),"N/A","Bearish")); STOCH_Color = IIf(StochKBull,Color_bull, IIf( IsNull(StochK(14,3)),Color_null,Color_bear)); _SECTION_END(); ////////// // ARSI // ////////// _SECTION_BEGIN("ARSI Signal"); // PARAMETERS ARSI_Pds = Param("Period",14,7,33,1); ARSIOb_Parm = Param("OverBought Level",70,-200,200,5); ARSIOs_Parm = Param("OverSold Level",30,-200,200,5); // FORMULA Chg = C - Ref( C, -1 ); UpCount = Sum( Chg >= 0, ARSI_Pds ); DnCount = ARSI_Pds - UpCount; UpMove = AMA( Max( Chg, 0 ), Nz(1/UpCount) ); DnMove = AMA( Max( -Chg, 0 ), Nz(1/DnCount) ); RS = UpMove/DnMove; ARSI = 100-(100/(1+RS)); ARSIOs = ARSI < ARSIOs_Parm; ARSIOb = ARSI > ARSIOb_Parm; //ARSIUt = ARSI > Ref(ARSI,-1); //ARSIDt = ARSI < Ref(ARSI,-1); //ARSIBuy = ARSI < ARSIOs AND ARSIUt; //ARSISell = ARSI > ARSIOb AND ARSIDt; //ARSIBuy = ExRem(ARSIBuy, ARSISell); //ARSISell = ExRem(ARSISell,ARSIBuy); // VARIABLES // TrendScroe Count IIf(ARSIOs,i+1,i); // Indicators ARSI_Status = WriteIf(ARSIOs,"OverSold", WriteIf(ARSIOb,"OverBought","In Range")); //WriteIf(ARSIBuy,"-=BUY=-", //WriteIf(ARSI>ARSIOs,"OverSold", //WriteIf(ARSIUt,"Improving", //WriteIf(ARSIDt,"Declining", //WriteIf(ARSIARSIOs,Color_bull, //IIf(ARSIUt,Color_bull1, //IIf(ARSIDt,Color_bear1, //IIf(ARSIRSIOs AND Ref(RSI(RSIPds),-1)RSIOb AND Ref(RSI(RSIPds),-2)>RSIOb; // VARIABLES // IIf(R1,i+1,i); // RSI_Status = WriteIf(R1,"Improving", // WriteIf(R2,"Declining", // WriteIf(IsNull(RSI(14)),"N/A","Neutral"))); // RSI_Color = IIf(R1,Color_bull1, // IIf(R2,Color_bear1,Color_null)); //_SECTION_END(); ///////// // MFI // ///////// _SECTION_BEGIN("MFI Signal"); // PARAMETERS MFIPds=Param("Period",14,7,33,1); MFIOb=Param("OverBought Level",80,-200,200,5); MFIOs=Param("OverSold Level",20,-200,200,5); // FORMULA M1=MFI(MFIPds)>MFIOb; M2=MFI(MFIPds) 0; ADX_dn = MA(C,ADX_Parm) < 0; ADX_ch = MA(C,ADX_Parma) < MA(C,ADX_Parmb) AND MA(C,ADX_Parmc) < MA(C,ADX_Parmd); ADX_Buy = Cross(MA(C,ADX_Parm), MA(C,ADX_Parmb)); ADX_Sell = Cross(MA(C,ADX_Parmb), MA(C,ADX_Parm)); ADX_Buy = ExRem(ADX_Buy, ADX_Sell); ADX_Sell = ExRem(ADX_Sell, ADX_Buy); ADX_bull = MA(C,ADX_Parm) > MA(C,ADX_Parmb); ADX_bear = MA(C,ADX_Parm)> MA(C,ADX_Parma); // ADX Trend Confirmation Signal ADXwk = ADX(ADX_Parm) < 25; ADXst = ADX(ADX_Parm) > 25 AND ADX(ADX_Parm) < 50; ADXvs = ADX(ADX_Parm) > 50 AND ADX(ADX_Parm) < 75; ADXex = ADX(ADX_Parm) > 75 AND ADX(ADX_Parm) < 100; ADXchoppy = ADX(ADX_Parm) < PDI(ADX_Parm) AND ADX(ADX_Parm) < MDI(ADX_Parm); // VARIABLES // TrendScore Count IIf(ADX_Buy,i+2,i); IIf(ADX_bull,i+1,i); // IIf(ADXst,i+1,i); // Indicators ADX_Status = WriteIf(ADX_Buy,"-=BUY=-", WriteIf(ADX_bull,"Bullish", WriteIf(ADX_bear,"Bearish", WriteIf(ADX_Sell,"-=SELL=-","Neutral")))); ADX_Color = IIf(ADX_Buy,Color_buy, IIf(ADX_bull,Color_bull, IIf(ADX_bear,Color_bear, IIf(ADX_Sell,Color_sell,Color_null)))); //ADXc_Status = WriteIf(ADXwk,"Weak", // WriteIf(ADXst,"Good", // WriteIf(ADXvs,"Strong", // WriteIf(ADXex,"EXCELENT", // WriteIf(ADXchoppy,"Choppy","Neutral"))))); //ADXc_Color = IIf(ADXwk,Color_sell, // IIf(ADXst,Color_bull1, // IIf(ADXvs,Color_bull, // IIf(ADXex,Color_buy, // IIf(ADXchoppy,Color_prev,Color_null))))); _SECTION_END(); _SECTION_BEGIN("Unnamed 1"); threshold = 5; uptrend = StochK(39,3) > StochD(39,3,3); downtrend =StochK(39,3) < StochD(39,3,3); Buy = uptrend AND H >= Ref(H,-1) + threshold; BuyPrice = Max(O,Ref(H,-1) + threshold); Sell = downtrend AND L <= Ref(L,-1) - threshold; SellPrice = Min(O,Ref(L,-1) - threshold); Buy = ExRem(Buy,Sell); Sell = ExRem(Sell,Buy); Cover=Buy; Short=Sell; SellPrice=ValueWhen(Short,C,1); BuyPrice=ValueWhen(Buy,C,1); PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40); PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50); PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45); PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=40); PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50); PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45); /////////////////////// // Trend Score Count // /////////////////////// _SECTION_BEGIN("Trend Score Count"); TrendScore = IIf(V>Vp2,3,0) + IIf(V>Vp1,2,0) + IIf(V>VRG,1,0) + IIf(rg>(arg*2),2,0) + IIf(rg>arg,1,0) + IIf(rising,1,0) + IIf(bullishsign,3,0) + IIf(upThrustBar,2,0) + IIf(absorption,1,0) + IIf(EMAsBuy,1,0) + IIf(EMAmBuy,1,0) + IIf(EMAlBuy,1,0) + IIf(EMA_rc,3,0) + IIf(EMA_ac,2,0) + IIf(EMA_bl,1,0) + IIf(I_buy,2,0) + IIf(I_bull,1,0) + IIf(T3_buy,1,0) + IIf(BB1,1,0) + IIf(MACDBull,1,0) + //IIf(Aroon,1,0) + IIf(CK_upt,2,0) + IIf(CK_ups,1,0) + IIf(StochKBull,1,0) + IIf(RSItOs,1,0) + IIf(ARSIOs,1,0) + //IIf(R1,1,0) + IIf(M2,1,0) + IIf(ADX_Buy,2,0); IIf(ADX_bull,1,0); //IIf(ADXst,1,0); ScoreRank = 100 * TrendScore / 30; _SECTION_END(); if(Explorer==0) { ////////////////////// // Exploration Code // ////////////////////// _SECTION_BEGIN("Explorer"); // PARAMETERS EXPfil_Parm = ParamList ( "Filter","All Symbols|Buy Signals|Sell Signals",0); EXPvol_Parm = Param ( "20 Day Min. Vol. Cap.", 50000,0,100000000,1000); EXPvol_Parm = Param ( "Min. Price Close",15,0,5000000,1); // FILTER Filter = 1; // DISPLAY COLUMNS //AddColumn (High52,"52 Week High"); //AddColumn (Low52,"52 Week Low"); AddColumn (C,"P.Close",1.2,IIf(C>Ref(C,-1), colorGreen,colorRed)); AddColumn (V,"Volume",1,IIf(V>Ref(V,-1), colorGreen,colorRed)); AddTextColumn (VPAv_Status,"VPA Volume",1, VPAv_Color,BColor_vpa); AddTextColumn (VPAs_Status,"VPA Spread",1, VPAs_Color,BColor_vpa); AddTextColumn (VPAc_Status,"VPA Close",1, VPAc_Color,BColor_vpa); AddTextColumn (VPAz_Status,"VPA Zone",1, VPAz_Color,BColor_vpa); AddTextColumn (VPAst_Status,"VPA Status",1, VPAst_Color,BColor_vpa); AddTextColumn (EMAs_Status,"EMA Short",1, EMAs_Color,BColor_mas); AddTextColumn (EMAm_Status,"EMA Mid",1, EMAm_Color,BColor_mam); AddTextColumn (EMAl_Status,"EMA Long",1, EMAl_Color,BColor_mal); AddTextColumn (EMAp_Status,"EMA Trend",1, colorWhite,EMAp_Color); AddTextColumn (I_Status,"I Signal",1, colorWhite,I_Color); AddTextColumn (T3_Status,"T3 Signal",1, colorWhite,T3_Color); AddTextColumn (BB_Status,"Bol. Band",1, colorWhite,BB_Color); AddTextColumn (MACD_Status,"MACD",1, colorWhite,MACD_Color); AddTextColumn (RSIt_Status,"MACD(RSI)",1, colorWhite,RSIt_Color); //AddTextColumn (AROON_Status,"Aroon",1, colorWhite,AROON_Color); //AddTextColumn (WAD_Status,"Williams A/D",1, colorWhite,WAD_Color); AddTextColumn (COPPOCK_Status,"Coppock",1, colorWhite,COPPOCK_Color); AddTextColumn (STOCH_Status,"Stochastic",1, colorWhite,STOCH_Color); AddTextColumn (ARSI_Status,"ARSI",1, colorWhite,ARSI_Color); //AddTextColumn (RSI_Status,"RSI",1, colorWhite,RSI_Color); AddTextColumn (MFI_Status,"MFI(14)",1, colorWhite,MFI_Color); AddTextColumn (ADX_Status,"DMX (ADX)",1, colorWhite,ADX_Color); //AddTextColumn (ADXc_Status,"ADX Confirm",1, colorWhite,ADXc_Color); //AddColumn (RSIt,"TEST L",1, colorWhite,colorBlack); AddColumn (TtD_Change,"P/L %",1.2,IIf(TtD_Change>0, colorGreen,colorRed)); AddColumn (Beta,"( ß )",1.2,IIf(Beta>0,colorGreen,colorRed)); AddColumn (ScoreRank,"% Rank",1.0,colorWhite,colorBlue); _SECTION_END(); } else { AlertIf( Buy, "", "BUY @ " + C, 1 ); AlertIf( Sell, "", "SELL @ " + C, 2 ); no=Param( "Swing", 8, 1, 55 ); tsl_col=ParamColor( "Color", colorLightGrey ); res=HHV(H,no); sup=LLV(L,no); avd=IIf(C>Ref(res,-1),1,IIf(CRef(res,-1),1,IIf(C Ref(DayEMA, -1) AND Histogram > Ref(Histogram, -1); Impulse_Down = DayEMA < Ref(DayEMA, -1) AND Histogram < Ref(Histogram, -1); Impulse_None = (NOT Impulse_UP) AND (NOT Impulse_Down); // Compute Weekly MACD and determine whether rising or falling // Note: uses "non-standard" parameters! TimeFrameSet(inWeekly); if (Std_MACD == 0) { MACD_val = MACD(5, 8); Signal_val = Signal(5, 8, 5); } else { MACD_val = MACD(12, 26); Signal_val = Signal(12, 26, 9); } Hist_in_w = MACD_val - Signal_val; wh_rising = Hist_in_w > Ref(Hist_in_w, -1); wh_falling = Hist_in_w < Ref(Hist_in_w, -1); TimeFrameRestore(); // Now get Monthly MACD Histogram.... TimeFrameSet(inMonthly); MACD_val = MACD(5, 8); Signal_val = Signal(5, 8, 5); Hist_in_m = MACD_val - Signal_val; mh_rising = Hist_in_m > Ref(Hist_in_m, -1); mh_falling = Hist_in_m < Ref(Hist_in_m, -1); TimeFrameRestore(); wh_rising = TimeFrameExpand( wh_rising, inWeekly, expandLast ); wh_falling = TimeFrameExpand( wh_falling, inWeekly, expandLast); mh_rising = TimeFrameExpand(mh_rising, inMonthly, expandLast); mh_falling = TimeFrameExpand(mh_falling, inMonthly, expandLast); kol = IIf( wh_rising, colorGreen, IIf(wh_falling, colorRed, colorLightGrey)); mkol = IIf( mh_rising, colorBlue, IIf(mh_falling, colorYellow, colorLightGrey)); // Plot them all! if (Plot_fashion == 1) { Plot(Close, "Close", colorTeal, styleBar); PlotShapes(shapeUpArrow * Impulse_Up, colorBlue, 0, Low, -12); PlotShapes(shapeDownArrow * Impulse_Down, colorRed, 0, High, -12); PlotShapes(shapeSmallCircle * Impulse_None, colorWhite, 0, High, 5); } else { bar_kol = IIf(impulse_UP, colorBlue, IIf(impulse_Down, colorRed, colorWhite)); //Plot(C, "Close", bar_kol, styleBar); } Plot(10, "ribbon", kol, styleOwnScale|styleArea|styleNoLabel, WR_P1, WR_P2);//Weekly trend Plot(10, "ribbon", mkol, styleOwnScale|styleArea|styleNoLabel, MR_P1, MR_P2); // Monthly Trend // Explorer Section // Determine if Impulse status is bullish, neutral or bearish. Display as Text Column. Impulse_State = WriteIf(Impulse_Up, "Bul", WriteIf(Impulse_Down, "Bear", "Neut")); // Set the background color for Impulse Status Column Impulse_Col = IIf(Impulse_Up, colorGreen, IIf(Impulse_Down, colorRed, colorLightGrey)); // Determine Weekly Trend. Display as Text Column Weekly_Trend = WriteIf(wh_rising, "Rising", WriteIf(wh_falling, "Falling", "Flat!")); Weekly_Col = IIf(wh_rising, colorGreen, IIf(wh_falling, colorRed, colorLightGrey)); // Determine Monthly Trend. Display as Text Column Monthly_Trend = WriteIf(mh_rising, "Rising", WriteIf(mh_falling, "Falling", "Flat!")); Monthly_Col = IIf(mh_rising, colorGreen, IIf(mh_falling, colorRed, colorLightGrey)); // Determine how many bars has the current state existed bars_in_bull = Min(BarsSince(impulse_none), BarsSince(impulse_down)); bars_in_bear = Min(BarsSince(impulse_up), BarsSince(impulse_none)); bars_in_neut = Min(BarsSince(impulse_down), BarsSince(impulse_up)); // Set a single variable to show number of bars in current state depending upon // actual Impulse Status - Bullish, Bearish or Neutral bars_in_state = IIf(Impulse_Up,bars_in_bull, IIf(Impulse_down, bars_in_bear,bars_in_neut)); //AddColumn(Close,"Close",1.2); // Columns for display in Explorer //AddTextColumn(Impulse_State, "Status", 1, colorWhite, Impulse_Col); //AddColumn(bars_in_state, "Bars", 1, colorWhite, Impulse_col); //Action = WriteIf(Buy, "BUY", WriteIf(Sell, "SELL", " ")); //i=0; //bars_in_statee = IIf(Buy, BarCount[i], IIf(Sell, BarCount[i],bars_in_neut)); //bars=BarsSince(IIf(Buy+BarCount+1),OR( Sell-BarCount+1)); AddColumn(bars_in_state ,"Bars", 1, colorWhite, Impulse_col); //AddTextColumn(Weekly_Trend, "W Trend", 1, colorWhite, Weekly_Col); //AddTextColumn(Monthly_Trend, "M Trend", 1, colorWhite, Monthly_Col); //Filter = 1; _SECTION_END(); //Settings for exploration H1 = SelectedValue( TimeFrameGetPrice( "H", inDaily, -1 ) ); L1 = SelectedValue( TimeFrameGetPrice( "L", inDaily, -1 ) ); C1 = SelectedValue( TimeFrameGetPrice( "C", inDaily, -1 ) ); H2 = SelectedValue( TimeFrameGetPrice( "H", inDaily, 0 ) ); L2 = SelectedValue( TimeFrameGetPrice( "L", inDaily, 0 ) ); O1 = SelectedValue( TimeFrameGetPrice( "open", inDaily, 0 ) ); F4 = 0; D1 = ( H1 - L1 ); D2 = ( H2 - L2 ); F1 = D1 * 0.433; F2 = D1 * 0.766; F3 = D1 * 1.35; if ( D2 <= F1 ) F4 = F1; else if ( D2 <= F2 ) F4 = F2; else F4 = F3; S_P = ( O1 - F4 ); B_P = ( O1 + F4 ); BP = ( L2 + F4 ); BPTGT = ( BP + ( BP * .0065 ) );//.0015 brokerage BPSTPLS = ( BP - ( BP * .0085 ) ); SP = ( H2 - F4 ); SPTGT = ( SP - ( SP * .0065 ) ); SPSTPLS = ( SP + ( SP * .0085 ) ); p = ( H1 + L1 + C1 ) / 3; s1 = ( H1 ); r1 = ( L1 ); r2 = SelectedValue( L2 ); s2 = SelectedValue( H2 ); //CONDITION if (ParamToggle("Tooltip shows", "All Values|Only Prices")) { ToolTip = StrFormat("Open: %g\nHigh: %g\nLow: %g\nClose: %g (%.1f%%) \nVolume: " + NumToStr(V, 1), O, H, L, C, SelectedValue(ROC(C, 1))); } //space = Param("Space on Chart", 20, - 15, 50, 1); //GraphXSpace = space; //SetChartBkColor(ParamColor("Background Color", colorBlack)); // ================= Rasheed's original code (with Lookback and Shift default set to his specs) ================= H0 = H; L0 = L; C0 = C; O0 = O; Lookback = Param("LookBack", 10, 10, 50, 1); // Default for interday commodity currency trading shift = Param("Shift", 5, 1, 50, 1); // ? x0 = LastValue(Cum(1)); x1 = x0 - shift; H = Ref(H, - shift + 1); L = Ref(L, - shift + 1); H1 = LastValue(Ref(HHV(H, Lookback), - 1)); L1 = LastValue(Ref(LLV(L, Lookback), - 1)); Plot(H1, "H1", colorYellow); Plot(L1, "L1", colorYellow); H = H0; L = L0; C = C0; O = O0; up = Cross(H, H1)AND Cum(1) > x1; dn = Cross(L1, L)AND Cum(1) > x1; //Plot(C, "Close", IIf(Cum(1) > x1 - Lookback AND Cum(1) <= x1, colorBlue, IIf(Up, colorBrightGreen, IIf(Dn, colorRed, IIf(C > O, colorGreen, colorRed)))), 64); //PlotShapes(shapeDownArrow *(Cum(1) == x1 + 1), colorBlue); // ======================= Exploration and Signal Code ================= TRIGGER = ParamToggle("Trigger ", "CLOSE|HIGH OR LOW"); XH1 = Cross(C, H1); XL1 = Cross(L1, C); XH2 = Cross(H, H1); XL2 = Cross(L1, L); if (TRIGGER == 0) { //Buy = XH1; //Sell = XL1; } else { //Buy = XH2; //Sell = XL2; } TradeDisplay = ParamToggle("Remove Extra Trades?", "No|Yes"); if(TradeDisplay != 0){ //Buy = ExRem(Buy, Sell); //Sell = ExRem(Sell, Buy); // THIS WILL REMOVE EXESS SIGNALS ON A CHART OR IN AN EXPLORATION } Filter = Buy OR Sell; Action = WriteIf(Buy, "BUY", WriteIf(Sell, "SELL", " ")); //AddTextColumn(IndustryID(1), "Industry Sector ", 30.0, colorBlue, colorYellow); AddColumn(C, "Last ", 2.2, colorWhite, colorBlue); AddTextColumn(Action, "Action", 8.0, IIf(XH1, colorDarkGreen, colorDarkRed), colorWhite); AddColumn(IIf(XH1, H1, L1), "BREAKOUT LEVEL", 3.2, colorYellow, IIf(XH1, colorDarkGreen, colorDarkRed)); // ----------------------------------------------------------------------------------- Arrow signals --- FOR TRADES ---------------------------------------------------------- //PlotShapes(Buy *shapeUpArrow, colorBrightGreen, 0, L /* ENTRY_TRAILARRAY */, - 30); //PlotShapes(Sell *shapeDownArrow, colorLightYellow, 0, H, - 30); _SECTION_END(); _SECTION_BEGIN("Volume At Price"); PlotVAPOverlay(Param("Lines", 1000, 100, 1000, 10), Param("Width", 15, 1, 100, 1), ParamColor("Color", colorBlue), ParamToggle("Side", "Left|Right", 1) | 4 *ParamToggle("Z-order", "On top|Behind", 1)); _SECTION_END(); //Filter = Buy OR Sell; //AddColumn( IIf( Buy, 66, 1 ), "Buy", formatChar, 1, bkcolor = IIf( Buy, 43, 33 ) ); //AddColumn( IIf( Sell, 83, 1 ), "Sell", formatChar, 1, bkcolor = IIf( Sell, 25, 32 ) ); //AddColumn( C, "CMP", 1.2, colorDefault, colorLightBlue ); //AddColumn( BP, "SELL PRICE", 1.2, colorDefault, colorGreen ); //AddColumn( BPTGT, "TGT PRICE", 1.2, colorDefault, colorBrown ); //AddColumn( BPSTPLS, "STPLS BUY", 1.2, colorDefault, colorRed ); AddColumn( p, "PIVOT", 1.2, colorDefault, colorYellow ); //AddColumn( SPSTPLS, "STPLS SELL", 1.2, colorDefault, colorRed ); //AddColumn( SP, "SELL PRICE", 1.2, colorDefault, colorGreen ); //AddColumn( SPTGT, "TGT PRICE", 1.2, colorDefault, colorBrown ); //Settings for exploration Filter=Buy OR Short; AddColumn( IIf( Buy, 66 , 83 ), "Signal", formatChar, colorDefault, IIf( Buy , colorGreen, colorRed ) ); AddColumn(Close,"Entry Price",1.4, colorDefault, IIf( Buy , colorGreen, colorRed )); AddColumn(dtsl,"Stop Loss",1.4, colorDefault, IIf( Buy , colorGreen, colorRed )); AddColumn(tar1,"Target 1",1.4, colorDefault, IIf( Buy , colorGreen, colorRed )); AddColumn(tar2,"Target 2",1.4, colorDefault, IIf( Buy , colorGreen, colorRed )); AddColumn(tar3,"Target 3",1.4, colorDefault, IIf( Buy , colorGreen, colorRed )); AddColumn(ROC(V,1),"RVol ",1.2, IIf(ROC(V,1) > 0, colorGreen, colorRed)); AddColumn(Volume,"Volume",1.0, colorDefault, IIf ((Volume > 1.25 * EMA( Volume, 34 )),colorBlue,colorYellow)); AddColumn( H1, "PRE-HIGH" ); AddColumn( L1, "PRE-LOW" ); AddColumn( D1, "PRE-DIFF" ); AddColumn( F1, "0.433" ); AddColumn( F2, "0.766" ); AddColumn( F3, "1.35" ); AddColumn( H2, "D-HIGH" ); AddColumn( L2, "D-LOW" ); AddColumn( D2, "D-DIFF" ); AddColumn( F4, "SELECT FACT" ); AlertIf( Buy , "SOUND C:\\Windows\\Media\\chimes.wav", "Audio alert", 2 ); AlertIf( Sell , "SOUND C:\\Windows\\Media\\alert.wav", "Audio alert", 2 ); } Short=Sell; Cover=Buy; Long=Flip(Buy,Sell); Shrt=Flip(Short,Cover); SellPrice=ValueWhen(Short,C,1); BuyPrice=ValueWhen(Buy,C,1); Edc=( WriteIf (Buy AND Ref(shrt,-1), " BUY @ "+C+" ","")+ WriteIf (Sell AND Ref(Long,-1), " SEll @ "+C+" ","")+ WriteIf(Sell , "Last Trade Profit Rs."+(C-BuyPrice)+"","")+ WriteIf(Buy , "Last Trade Profit Rs."+(SellPrice-C)+"","")); //============== TITLE ============== _SECTION_BEGIN("Tops and bottom"); pd = Param("Periods",13,5,144,1); pds = 2*pd-1;// (Adjustment for Wilders MA) aa = Close-Ref(Close,-1); uu = EMA(Max(0,aa),pds); dd= EMA((Max(0,0-aa)),pds); rf = IIf(C>2,1000,10000); c1 = Param("Upper Level",70,50,90,1); qq1 =100/(100-c1)-1; ff1 = qq1*dd-uu; ff2 = ff1/qq1; f1 = Max(ff1,ff2); UL = Close + f1*(pds-1)/2; UL = IIf(UL>C,floor(UL*rf),ceil(UL*rf))/rf; c2 = Param("Equilibrium",50,50,50,0); qq2 =100/(100-c2)-1;// [=1] ff = dd-uu; MM = Close + ff*(pds-1)/2; MM = IIf(MM>C,floor(MM*rf),ceil(MM*rf))/rf; c3 = Param("Lower Level",30,10,50,1); qq3 =100/(100-c3)-1; ff1 = qq3*dd-uu; ff2 = ff1/qq3; f3 = Min(ff1,ff2); LL = Close + f3*(pds-1)/2; LL = IIf(LL>C,floor(LL*rf),ceil(LL*rf))/rf; band = Param("band width",4,0,15,0.25); mmu = MM+band; mmd = MM-band; _SECTION_BEGIN("Pivot calc"); TimeFrameSet( in15Minute*2 ); DH=Ref(H,-1); DL=Ref(L,-1); DC=Ref(C,-1); pd = ( DH+ DL + DC )/3; sd1 = (2*pd)-DH; sd2 = pd -(DH - DL); sd3 = Sd1 - (DH-DL); rd1 = (2*pd)-DL; rd2 = pd +(DH -DL); rd3 = rd1 +(DH-DL); if(ChangeTitle==1) { _SECTION_BEGIN("Title"); no=Param( "Swing", 6, 1, 55 ); res=HHV(H,no); sup=LLV(L,no); avd=IIf(C>Ref(res,-1),1,IIf(C