Modified CCI With Multiple Levels |
//www.aflcode.com _SECTION_BEGIN("Modified CCI With Multiple Levels"); TTMperiod = 6; Low_ma = EMA(L, TTMperiod); High_ma = EMA(H, TTMperiod); Low_third = (High_ma - Low_ma) / 3 + Low_ma; High_third = 2 * (High_ma - Low_ma) / 3 + Low_ma; tempnum = Now( 4 ) - TimeNum(); TimeRem = Interval() - ((int(tempnum[BarCount - 1] / 100) * 60) + (tempnum[BarCount - 1] - int(tempnum[BarCount - 1] / 100) * 100)); if (TimeRem[BarCount - 1] < 0) TimeRem = 0; MinuteVar = int(TimeRem / 60); SecondsVar = int(frac(TimeRem / 60) * 60); if (TimeRem[BarCount - 1] > 60) { TitleTimeRem = EncodeColor(colorWhite) + MinuteVar + ":" + WriteIf(SecondsVar > 9, "", "0") + SecondsVar; } else if (TimeRem[BarCount - 1] > 20) { TitleTimeRem = EncodeColor(colorYellow) + MinuteVar + ":" + WriteIf(SecondsVar > 9, "", "0") + SecondsVar; } else { TitleTimeRem = EncodeColor(colorRed) + MinuteVar + ":" + WriteIf(SecondsVar > 9, "", "0") + SecondsVar; } // Background color SetChartBkColor(ParamColor("Panel color ",colorPaleBlue)); // CCI colors //zcolor= ParamColor("WCCI color",colorBlack); //////////////Addition SPM////////////////////// //zcolor=IIf(SW ==2,IIf(angle_EMA34 >=5,colorGreen,IIf(angle_EMA34 <-5,colorRed,colorBlack); //zColor = IIf(angle_EMA34 >=5 AND SW ==2,colorBrightGreen,IIf(angle_EMA34 <-5 AND SW ==2,colorRed,colorWhite)); ////////////////////////////////////////////////////// z6color= ParamColor("TCCI color",colorBrown); patterncolor= ParamColor("Pattern trace color",colorWhite); // CCI periods zperiod=Param("WCCI period",14,0,100); z = CCI(zperiod); z6period=Param("TCCI period",6,0,1000); z6 = CCI(z6period); // Tic/PIP value TicMult= Param("Tic multiplier(ER2=10,YM=1,ES=4,FOREX=1)",1,0,1000000); TicDiv= Param("Tic or PIP value(ER2=0.1,YM=1,FOREX=1)",1,0,1000000); // Rangebar interval rbint= Param("Rangebar interval:(YM=25.0,AB=1.5,NQ=3.75,ES=3.0)",1.0,0.25,1000000); // Rangebar counter rbcounter= round(((rbint-(H-L))) * ticmult); rbcounterpercent= round((rbcounter/(rbint * ticmult))*100); // Timer/counter title timercode= Param("Timer:(minutes=1,rangebar=2)",1,1,2); timetitle= WriteIf(timercode==1,TitleTimeRem, EncodeColor(colorWhite) + "Countdown " + rbcounter + " (" + rbcounterpercent + "%)"); // Spread spread= Param("Spread (included in stop)",0,0,1000000); // Stop value stopval= Param("Stop above/below entry bar",2,0,1000000); // Plot grids PlotTheGrids = ParamToggle("Plot grids","No|Yes",0); if (PlotTheGrids ==1) { PlotGrid(0); PlotGrid(-100); PlotGrid(100); PlotGrid(-200); PlotGrid(200); } // Angle variables PI = atan(1.00) * 4; periods = 30; HighHigh = HHV(H, periods); LowLow = LLV(L, periods); range = 25 / (HighHigh - LowLow) * LowLow; // EMA34 Angle EMA34 = EMA(C,34); x1_EMA34 = 0; x2_EMA34 = 1; y1_EMA34 = 0; y2_EMA34 = (Ref(EMA34, -1) - EMA34) / Avg * range; c_EMA34 = sqrt((x2_EMA34 - x1_EMA34)*(x2_EMA34 - x1_EMA34) + (y2_EMA34 - y1_EMA34)*(y2_EMA34 - y1_EMA34)); angle_EMA34 = round(180 * acos((x2_EMA34 - x1_EMA34)/c_EMA34) / PI); angle_EMA34 = IIf(y2_EMA34 > 0, - angle_EMA34, angle_EMA34); // LSMA25 Angle LSMA25 = LinearReg(C, 25 ); x1_LSMA25 = 0; x2_LSMA25 = 1; y1_LSMA25 = 0; y2_LSMA25 = (Ref(LSMA25, -1) - LSMA25) / Avg * range; c_LSMA25 = sqrt((x2_LSMA25 - x1_LSMA25)*(x2_LSMA25 - x1_LSMA25) + (y2_LSMA25 - y1_LSMA25)*(y2_LSMA25 - y1_LSMA25)); angle_LSMA25 = round(180 * acos((x2_LSMA25 - x1_LSMA25)/c_LSMA25) / PI); angle_LSMA25 = IIf(y2_LSMA25 > 0, - angle_LSMA25, angle_LSMA25); // Color the bars for Woodies Trend Following function Consecutive( array ) { return BarsSince( NOT( array ) ); } function Occurrences( array , period ) { return Sum( array, period ); } array = z; HighBars = Consecutive( array > 0 ); LowBars = Consecutive( array < 0 ); UpCondition = BarsSince( HighBars >= 6 AND Occurrences( array > 100 , 5 ) > 0 ); DnCondition = BarsSince( LowBars >= 6 AND Occurrences( array < -100 , 5 ) > 0 ); UpTrend = ( array > 0 ) AND ( UpCondition < DnCondition ); DnTrend = ( array < 0 ) AND ( UpCondition > DnCondition ); TrTrend = ( HighBars >= 5 AND NOT UpTrend ) OR ( LowBars >= 5 AND NOT DnTrend ); Color = IIf( UpTrend, colorBlue, IIf( DnTrend, colorRed, IIf( TrTrend, colorYellow, colorGrey40 ) ) ); // Plot the Mock CZI on the 100s ColorANGLE_EMA = IIf(angle_EMA34 >=5,colorTurquoise, IIf(angle_EMA34 <5 AND angle_EMA34 >=3.57,colorDarkGreen, IIf(angle_EMA34 <3.57 AND angle_EMA34 >=2.14,colorPaleGreen, IIf(angle_EMA34 <2.14 AND angle_EMA34 >=.71,colorLime, IIf(angle_EMA34 <=-1*5,colorDarkRed, IIf(angle_EMA34 >-1*5 AND angle_EMA34 <=-1*3.57,colorRed, IIf(angle_EMA34 >-1*3.57 AND angle_EMA34 <=-1*2.14,colorOrange, IIf(angle_EMA34 >-1*2.14 AND angle_EMA34 <=-1*.71,colorLightOrange,colorYellow)))))))); Plot(100,"", ColorANGLE_EMA , styleLine | styleThick | styleNoLabel); Plot(-100,"", ColorANGLE_EMA , styleLine | styleThick | styleNoLabel); // Plot the Mock Sidewinder on the 200s SW = IIf((abs(angle_EMA34) >= 15) AND (abs(angle_EMA34 + angle_LSMA25) >= 50), IIf(angle_LSMA25 > 0, 2, -2), IIf((abs(angle_EMA34) >= 0) AND (((angle_EMA34 >= 0) AND (angle_LSMA25 >= 0)) OR ((angle_EMA34 <= 0) AND (angle_LSMA25 <= 0))) AND (abs(angle_EMA34 + angle_LSMA25) >= 5), IIf(angle_LSMA25 > 0, 1, -1), 0)); ColorSW = IIf(abs(SW) == 2, colorBrightGreen, IIf(abs(SW) == 1, colorYellow, colorRed)); Plot(200,"", ColorSW, styleLine | styleThick | styleNoLabel); Plot(-200,"", ColorSW, styleLine | styleThick | styleNoLabel); //////////////////SPM MOD///////////////////////////////// //Plot(100,"", colorBlue , styleLine | styleThick | styleNoLabel); //Plot(-100,"", colorBlue , styleLine | styleThick | styleNoLabel); //Plot(200,"", colorBlue, styleLine | styleThick | styleNoLabel); //Plot(-200,"", colorBlue, styleLine | styleThick | styleNoLabel); // CCI colors //zcolor= ParamColor("WCCI color",colorBlack); ////////////// SPM MOD////////////////////// zColor = IIf(angle_EMA34 >=5 AND abs(SW) ==2,colorBrightGreen,IIf(angle_EMA34 <-5 AND abs(SW) ==2,colorRed,colorBlack)); ////////////////////////////////////////////////////// // Zero line 25lsma Plot(0,"", IIf(C > LSMA25,colorBrightGreen,IIf(C < LSMA25,colorRed,colorTeal)), styleDots | styleThick | styleNoLabel); // CCI Points diffCode=ParamToggle("Plot CCI diff ","No|Yes",1); CCipointmove= z-Ref(z,-1); CCIpointmovetitle= WriteIf(diffcode==1 AND abs(CCipointmove)<15,EncodeColor(colorRed) + "\n" + "DIFF " + abs(round(CCipointmove)) + "\n",WriteIf(diffcode==1 AND abs(CCipointmove)>=15 AND abs(CCipointmove)<20,EncodeColor(colorYellow) + "\n" + "DIFF " + abs(round(CCipointmove)) + "\n",WriteIf(diffcode==1 AND abs(CCIpointmove)>=20,EncodeColor(colorBrightGreen) + "\n" + "DIFF " + abs(round(CCipointmove))+ "\n",""))); // Price Panel Lastpricetitlehi= WriteIf(H>Ref(H,-1),EncodeColor(colorBrightGreen) + Ref(H,-1) + " " + H , EncodeColor(colorWhite)+ Ref(H,-1) + " " + H); Lastpricetitlelo= WriteIf(L<Ref(L,-1),EncodeColor(colorRed) + Ref(L,-1) + " " + L , EncodeColor(colorWhite) + Ref(L,-1) + " " + L); Closecolor=WriteIf(C==H AND H>Ref(H,-1),EncodeColor(colorBrightGreen),WriteIf(C==L AND L<Ref(L,-1),EncodeColor(colorRed),EncodeColor(colorWhite))); //Pivot Points Calculations pivCode=ParamToggle("Plot pivots ","No|Yes",1); DayH = TimeFrameGetPrice("H", inDaily, -1); DayL = TimeFrameGetPrice("L", inDaily, -1); DayC = TimeFrameGetPrice("C", inDaily, -1); DayO = TimeFrameGetPrice("O", inDaily); HiDay = TimeFrameGetPrice("H", inDaily); LoDay = TimeFrameGetPrice("L", inDaily); PP = (DayH + DayL + DayO + DayO) / 4 ; R1 = (2 * PP) - DayL; S1 = (2 * PP) - DayH; R2 = PP + R1 - S1; S2 = PP + S1 - R1; R3 = R2 + (R1 - PP); S3 = S2 - (PP - S1); ppvalue= round(abs((C-pp)/ticdiv)); r1value= round(abs((C-r1)/ticdiv)); s1value= round(abs((C-s1)/ticdiv)); r2value= round(abs((C-r2)/ticdiv)); s2value= round(abs((C-s2)/ticdiv)); r3value= round(abs((C-r3)/ticdiv)); s3value= round(abs((C-s3)/ticdiv)); wptitle= WriteIf(pivCode==1 AND C>=R3, "\n" + EncodeColor(colorYellow)+"R3 " + "-" + (R3value) + "\n" + "\n", WriteIf(pivCode==1 AND C<=R3 AND C>=R2, "\n" + EncodeColor(colorYellow)+"R3 " + "+" + (R3value) + "\n" + EncodeColor(colorYellow) + "R2 " + "-" + (R2value) + "\n" + "\n", WriteIf(pivCode==1 AND C<=R2 AND C>=R1, "\n" + EncodeColor(colorYellow)+"R2 " + "+" + (R2value) + "\n" + EncodeColor(colorYellow) + "R1 " + "-" + (R1value) + "\n" + "\n", WriteIf(pivCode==1 AND C<=R1 AND C>=PP, "\n" + EncodeColor(colorYellow)+"R1 " + "+" + (R1value) + "\n" + EncodeColor(colorYellow) + "PP " + "-" + (PPvalue) + "\n" + "\n", WriteIf(pivCode==1 AND C<=PP AND C>=S1, "\n" + EncodeColor(colorYellow)+"PP " + "+" + (PPvalue) + "\n" + EncodeColor(colorYellow) + "S1 " + "-" + (S1value) + "\n" + "\n", WriteIf(pivCode==1 AND C<=S1 AND C>=S2, "\n" + EncodeColor(colorYellow)+"S1 " + "+" + (S1value) + "\n" + EncodeColor(colorYellow) + "S2 " + "-" + (S2value) + "\n" + "\n", WriteIf(pivCode==1 AND C<=S2 AND C>=S3, "\n" + EncodeColor(colorYellow)+"S2 " + "+" + (S2value) + "\n" + EncodeColor(colorYellow) + "S3 " + "-" + (S3value) + "\n" + "\n", WriteIf(pivCode==1 AND C<=S3, "\n" + EncodeColor(colorYellow)+"S3 " + "+" + (S3value) + "\n"+ "\n","")))))))); // HOD , LOD, Range HiDayTitle = WriteIf(pivCode==1,EncodeColor(colorYellow) + "HOD ",""); HiDayTitle = WriteIf(pivCode==1,HiDayTitle + EncodeColor(colorYellow) + HiDay + " +" + round(abs((HiDay-C)/ticdiv)) + "\n",""); LoDayTitle = WriteIf(pivCode==1,EncodeColor(colorYellow) + "LOD ",""); LoDayTitle = WriteIf(pivCode==1,LoDayTitle + EncodeColor(colorYellow) + LoDay + " -" + round(abs((C-LoDay)/ticdiv)) + "\n"," "); RangeTitle1 =WriteIf(pivCode==1,EncodeColor(colorYellow) + "Day Range " + EncodeColor(colorYellow) + StrToNum(NumToStr(round((HiDay - LoDay)/ticdiv), 4.4)) + "\n",""); // Pattern codes Cziquallong= ((angle_EMA34>=5 OR Ref(angle_EMA34,-1)>=5) AND Ref(angle_EMA34,-2)>=5) OR (Ref(angle_EMA34,-1)>=5 AND angle_EMA34>=5); Cziqualshort= ((angle_EMA34<=-5 OR Ref(angle_EMA34,-1)<=-5) AND Ref(angle_EMA34,-2)<=-5) OR (Ref(angle_EMA34,-1)<=-5 AND angle_EMA34<=-5); // ZLR Long Linex_long=Ref(z,-1)>100 AND z<100; barsfromline_long=BarsSince(Linex_long); CCIhook_long=z>Ref(z,-1) AND Ref(z,-1)>-100 AND Ref(z,-1)<Ref(z,-2) AND Ref(z,-2)>-100 AND z>0; SW_trendinglong= sw==1 OR sw==2; zlrlong1= abs(CCipointmove)>=15 AND SW_trendinglong AND z<120 AND barsfromline_long<=10 AND CCIhook_long AND UpTrend; zlrnextl= z<120 AND barsfromline_long<10 AND CCIhook_long AND UpTrend; zlrlong= Cziquallong AND (zlrlong1 OR ( NOT Ref(zlrlong1,-1) AND Ref(zlrnextl,-1) AND abs(CCipointmove)>=15 AND z>=Ref(z,-1) AND SW_trendinglong AND z<120 AND UpTrend)); // ZLR Short Linex_short=Ref(z,-1)<=-100 AND z>=-100; barsfromline_short=BarsSince(Linex_short); CCIhook_short=z<Ref(z,-1) AND Ref(z,-1)<100 AND Ref(z,-1)>Ref(z,-2) AND Ref(z,-2)<100 AND z<0; SW_trendingshort= sw==-1 OR sw==-2; zlrshort1= abs(CCipointmove)>=15 AND SW_trendingshort AND z>-120 AND barsfromline_short<=10 AND CCIhook_short AND DnTrend; zlrnexts= z>-120 AND barsfromline_short<10 AND CCIhook_short AND DnTrend; zlrshort= Cziqualshort AND (zlrshort1 OR (NOT Ref(zlrshort1,-1) AND Ref(zlrnexts,-1) AND abs(CCipointmove)>=15 AND z<=Ref(z,-1) AND SW_trendingshort AND z>-120 AND DnTrend)); // Famir Long FamirLinex_long=Ref(z,-1)<=-100 AND z>-100; Famir_barsfromline_long=BarsSince(FamirLinex_long); Famir_pivotlong= (Ref(z,-2)>Ref(z,-1)AND Ref(z,-1)>=-55 AND Ref(z,-2)>=-55) OR (Ref(z,-3)>Ref(z,-1) AND Ref(z,-1)>=-55 AND Ref(z,-2)>=-55 AND Ref(z,-3)>=-55)OR (Ref(z,-4)>Ref(z,-1) AND Ref(z,-1)>=-55 AND Ref(z,-2)>=-55 AND Ref(z,-3)>=-55); Famirhook_long=Famir_pivotlong AND z>Ref(HHV(z,Famir_barsfromline_long),-1) AND (z>=-55 AND z<=55); Famirlong= Famir_barsfromline_long<10 AND Famirhook_long AND ((DnTrend OR Ref(Dntrend,-BarsSince(z<0))==1) AND NOT UpTrend) AND C>LSMA25; // Famir Short FamirLinex_short=Ref(z,-1)>=100 AND z<100; Famir_barsfromline_short=BarsSince(FamirLinex_short); Famir_pivotshort= (Ref(z,-2)<Ref(z,-1)AND Ref(z,-1)<=55 AND Ref(z,-2)<=55) OR (Ref(z,-3)<Ref(z,-1)AND Ref(z,-1)<=55 AND Ref(z,-2)<=55 AND Ref(z,-3)<=55) OR (Ref(z,-4)<Ref(z,-1) AND Ref(z,-1)<=55 AND Ref(z,-2)<=55 AND Ref(z,-3)<=55); Famirhook_short=Famir_pivotshort AND z<Ref(LLV(z,Famir_barsfromline_short),-1) AND (z>=-55 AND z<=55); Famirshort= Famir_barsfromline_short<10 AND Famirhook_short AND ((UpTrend OR Ref(Uptrend,-BarsSince(z>0))==1) AND NOT DnTrend) AND C<LSMA25; // HFE HFEshort=(Ref(z,-1)>200 AND z<200); HFElong=(Ref(z,-1)<-200 AND z>-200); HFE= HFEshort OR HFElong; // VT Long vtLinex_long=Ref(z,-1)<=-200 AND z>-200; vt_barsfromline_long=BarsSince(vtLinex_long); vtlong_A = z<-200; vtlong_B = Ref(z,-1)<=Ref(z,-2) OR Ref(z,-2)<=Ref(z,-3) OR Ref(z,-3)<=Ref(z,-4) OR Ref(z,-4)<=Ref(z,-5) OR Ref(z,-5)<=Ref(z,-6) OR Ref(z,-6)<=Ref(z,-7) OR Ref(z,-7)<=Ref(z,-8); vtlong_bs_A = BarsSince(vtlong_A); vtlong_bs_B = BarsSince(vtlong_b); Vtlong_bars = vtlong_bs_A>=5 AND vtlong_bs_B<=0; vt_pivotlong= Vtlong_bars; swinghibars=BarsSince(z>Ref(HHV(z,vt_barsfromline_long),-1)); vthook_long= vt_pivotlong AND z>Ref(HHV(z,vt_barsfromline_long),-1); vtlong= z<100 AND vt_barsfromline_long<=11 AND (Ref(HHV(z,vt_barsfromline_long),-1)<0 OR HHV(z,vt_barsfromline_long)<=0) AND vthook_long AND C>Lsma25 AND Ref(swinghibars>=2,-1) AND z>-100; // VT Short vtLinex_short=Ref(z,-1)>=200 AND z<200; vt_barsfromline_short=BarsSince(vtLinex_short); vtshort_A = z>200 ; vtshort_B =Ref(z,-1)>=Ref(z,-2) OR Ref(z,-2)>=Ref(z,-3) OR Ref(z,-3)>=Ref(z,-4) OR Ref(z,-4)>=Ref(z,-5) OR Ref(z,-5)>=Ref(z,-6) OR Ref(z,-6)>=Ref(z,-7) OR Ref(z,-7)>=Ref(z,-8); vtshort_bs_A = BarsSince(vtshort_A); vtshort_bs_B = BarsSince(vtshort_b); Vtshort_bars = vtshort_bs_A>=5 AND vtshort_bs_B<=0; vt_pivotshort= Vtshort_bars; swinglowbars= BarsSince(z<Ref(LLV(z,vt_barsfromline_short),-1)); vthook_short= vt_pivotshort AND z<Ref(LLV(z,vt_barsfromline_short),-1); vtshort= z>-100 AND vt_barsfromline_short<=11 AND (Ref(LLV(z,vt_barsfromline_short),-1)>0 OR LLV(z,vt_barsfromline_short)>0) AND vthook_short AND C<Lsma25 AND Ref(swinglowbars>=2,-1) AND z<100; // GB 100 Long Linex_longGB=Ref(z,-1)>100 AND z<100; barsfromline_longGB=BarsSince(Linex_longGB); CCIhook_longGB= Ref(z,-1)<-100 AND z>-100; GB100long= z<100 AND barsfromline_longGB<=12 AND Cziquallong AND CCIhook_longGB AND (Ref(UpTrend,-BarsSince(z>0))==1 AND NOT DnTrend); // GB100 Short Linex_shortGB=Ref(z,-1)<-100 AND z>-100; barsfromline_shortGB=BarsSince(Linex_shortGB); CCIhook_shortGB=Ref(z,-1)>100 AND z<100; Gb100short= z>-100 AND barsfromline_shortGB<=12 AND Cziqualshort AND CCIhook_shortGB AND (Ref(DnTrend,-BarsSince(z<0))==1 AND NOT UpTrend); // TT Long Minuszero=BarsSince(Ref(z,-1)>0) + 1; TTCCIhook_long= z>Ref(z,-1) AND z>0; TTlong= Cziquallong AND z<100 AND Ref(UpTrend,-Minuszero)==1 AND LLV(Ref(z,-1),BarsSince(Ref(z,-1)>=100))>-100 AND HHV(Ref(z,-1),BarsSince(Ref(z,-1)< 0))>=100 AND TTCCIhook_long AND Ref(LowBars,-1)>=4 AND Ref(LowBars,-1)<=9; // TT Short Pluszero=BarsSince(Ref(z,-1)<0) + 1; TTCCIhook_short=z<Ref(z,-1) AND z<0; TTshort= Cziqualshort AND z>-100 AND Ref(DnTrend,-Pluszero)==1 AND HHV(Ref(z,-1),BarsSince(Ref(z,-1)<=-100))<100 AND LLV(Ref(z,-1),BarsSince(Ref(z,-1)>0))<=-100 AND TTCCIhook_short AND Ref(HighBars,-1)>=4 AND Ref(HighBars,-1)<=9; // PT Long Phook_long1= Ref(z,-1)>=Ref(z,-2) AND Ref(z,-2)<Ref(z,-3) AND Ref(z,-3)>0; Phook_long2= Ref(z,-3)>-100 AND Ref(z,-1)>Ref(z,-2) AND Ref(z,-2)<Ref(z,-3) AND Ref(z,-3)<Ref(z,-4) AND Ref(z,-4)>0; Ptlong= Cziquallong AND (Phook_long1 OR Phook_long2) AND (z>0 AND Ref(z,-1)<0 AND z<120 AND Ref(z,-1)>-100 AND Ref(z,-2)>-100 AND z>Ref(z,-1) AND UpTrend); // PT Short Phook_short1= Ref(z,-1)<=Ref(z,-2) AND Ref(z,-2)>Ref(z,-3) AND Ref(z,-3)<0; Phook_short2= Ref(z,-3)<100 AND Ref(z,-1)<Ref(z,-2) AND Ref(z,-2)>Ref(z,-3) AND Ref(z,-3)> Ref(z,-4) AND Ref(z,-4)<0; Ptshort= Cziqualshort AND (Phook_short1 OR Phook_short2) AND (z<0 AND Ref(z,-1)>0 AND z>-120 AND Ref(z,-1)<100 AND Ref(z,-2)<100 AND z<Ref(z,-1) AND DnTrend); // Signal Title PatCode1=ParamToggle("Plot ZLR (1)","No|Yes",1); PatCode2=ParamToggle("Plot FAMIR (2)","No|Yes",1); PatCode3=ParamToggle("Plot VT (3)","No|Yes",1); PatCode4=ParamToggle("Plot GB100 (4)","No|Yes",1); PatCode5=ParamToggle("Plot TT (5)","No|Yes",1); PatCode6=ParamToggle("Plot PT (6)","No|Yes",1); PatCode7=ParamToggle("Plot HFE","No|Yes",1); Signaltitle= WriteIf(PatCode1==1 AND zlrlong,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- ZLR ***" + "\n", WriteIf(PatCode1==1 AND zlrshort,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- ZLR ***" + "\n", WriteIf(PatCode2==1 AND Famirshort,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- FAMIR ***" + "\n", WriteIf(PatCode2==1 AND Famirlong,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- FAMIR ***" + "\n", WriteIf(PatCode3==1 AND VTlong AND NOT famirlong,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- VT ***" + "\n", WriteIf(PatCode3==1 AND VTshort AND NOT famirshort,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- VT ***" + "\n", WriteIf(PatCode4==1 AND GB100long,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- GB100 ***" + "\n", WriteIf(PatCode4==1 AND Gb100short,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- GB100 ***" + "\n", WriteIf(PatCode5==1 AND TTLong,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- TT ***" + "\n", WriteIf(PatCode5==1 AND TTShort,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- TT ***" + "\n", WriteIf(PatCode6==1 AND PTLong,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- PT ***" + "\n", WriteIf(PatCode6==1 AND PTShort,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- PT ***" + "\n", WriteIf(PatCode7==1 AND HFE,EncodeColor(colorDarkRed) + "\n" + "*** ALERT -- HFE ***" + "\n",""))))))))))))); // Pattern signal codes PlotShapes(IIf(PatCode1==1 AND zlrlong,shapeDigit1,shapeNone),colorBlue,0,Min(z,0),-15); PlotShapes(IIf(PatCode1==1 AND zlrshort,shapeDigit1+ shapePositionAbove,shapeNone),colorRed,0,Max(z,0),-15); PlotShapes(IIf(PatCode2==1 AND famirlong,shapeDigit2,shapeNone),colorBlue,0,Min(z,0),-15); PlotShapes(IIf(PatCode2==1 AND famirShort ,shapeDigit2+ shapePositionAbove,shapeNone),colorRed,0,Max(z,0),-15) ; PlotShapes(IIf(PatCode3==1 AND vtlong AND NOT famirlong,shapeDigit3,shapeNone),colorBlue,0,Min(z,0),-47); PlotShapes(IIf(PatCode3==1 AND vtshort AND NOT famirshort,shapeDigit3+ shapePositionAbove,shapeNone),colorRed,0,Max(z,0),-47); PlotShapes(IIf(PatCode4==1 AND GB100long,shapeDigit4,shapeNone),colorBlue,0,Min(z,0),-60); PlotShapes(IIf(PatCode4==1 AND GB100short,shapeDigit4+ shapePositionAbove,shapeNone),colorRed,0,Max(z,0),-60); PlotShapes(IIf(PatCode5==1 AND ttlong,shapeDigit5,shapeNone),colorBlue,0,Min(z,0),-50); PlotShapes(IIf(PatCode5==1 AND ttshort,shapeDigit5+ shapePositionAbove,shapeNone),colorRed,0,Max(z,0),-50); PlotShapes(IIf(PatCode6==1 AND ptlong,shapeDigit6,shapeNone),colorBlue,0,Min(z,0),-50); PlotShapes(IIf(PatCode6==1 AND ptshort,shapeDigit6+ shapePositionAbove,shapeNone),colorRed,0,Max(z,0),-50); PlotShapes(IIf(PatCode7==1 AND HFEshort,shapeCircle,shapeNone),IIf(PatCode7==1 AND HFEshort,colorYellow,shapeNone),0,200,10); PlotShapes(IIf(PatCode7==1 AND HFElong,shapeCircle,shapeNone),IIf(PatCode7==1 AND HFElong,colorYellow,shapeNone),0,-200,-10) ; // CCI hook Exit HookExitLong= z<=Ref(z,-1); HookExitShort= z>=Ref(z,-1); // 100 Line Cross Exit Conservative Cross100longC= z<=Ref(z,-1) AND z<100; Cross100shortC= z>=Ref(z,-1) AND z>-100; // 100 Line Cross Exit Aggressive Cross100longA= Ref(z,-1)>100 AND z<100; Cross100shortA= Ref(z,-1)<-100 AND z>-100; // Mplay Exit MplayExitLong= z<Ref(z,-1) AND Ref(z,-1)<Ref(z,-2) AND C<O; MplayExitShort= z>Ref(z,-1) AND Ref(z,-1)>Ref(z,-2) AND C>O; // Heikin-Ashi Exit HaClose =EMA((O+H+L+C)/4,3); HaOpen = AMA( Ref( HaClose, -1 ), 0.5 ); HaHigh = Max( H, Max( HaClose, HaOpen ) ); HaLow = Min( L, Min( HaClose, HaOpen ) ); HExitConLong= HaLow < HaOpen; HExitConShort= HaHigh > HaOpen; // Exit code ExitCode= Param("Exits:Hook=1,100xConservative=2,100xAggressive=3,Mplay=4,H-Ashi=5",1,1,5); ExitCodeTitleLong= IIf(ExitCode==1,HookExitLong,IIf(Exitcode==2,Cross100longC,IIf(Exitcode==3,Cross100longA,IIf(Exitcode==4,MplayExitLong,IIf(Exitcode==5,HExitConLong,0))))); ExitCodeTitleShort= IIf(ExitCode==1,HookExitShort,IIf(Exitcode==2,Cross100shortC,IIf(Exitcode==3,Cross100shortA,IIf(Exitcode==4,MplayExitShort,IIf(Exitcode==5,HExitConShort,0))))); AllPatterns =(zlrlong AND patcode1==1) OR (famirlong AND patcode2==1) OR (Vtlong AND patcode3==1) OR (gb100long AND patcode4==1) OR (ttlong AND patcode5==1) OR (ptlong AND patcode6==1) OR (Hfelong AND patcode7==1) OR (zlrshort AND patcode1==1) OR (famirshort AND patcode2==1) OR (Vtshort AND patcode3==1) OR (gb100short AND patcode4==1) OR (ttshort AND patcode5==1) OR (ptshort AND patcode6==1) OR (Hfeshort AND patcode7==1); BuyPattern = (zlrlong AND patcode1==1) OR (famirlong AND patcode2==1) OR (Vtlong AND patcode3==1) OR (gb100long AND patcode4==1) OR (ttlong AND patcode5==1) OR (ptlong AND patcode6==1) OR (Hfelong AND patcode7==1); SellPattern= ExitCodeTitleLong; ShortPattern = (zlrshort AND patcode1==1) OR (famirshort AND patcode2==1) OR (Vtshort AND patcode3==1) OR (gb100short AND patcode4==1) OR (ttshort AND patcode5==1) OR (ptshort AND patcode6==1) OR (Hfeshort AND patcode7==1); CoverPattern = ExitCodeTitleShort; //Plot Sell/Cover Arrows Sell1=ExRem(SellPattern,BuyPattern); Cover1=ExRem(CoverPattern,ShortPattern); SellCode=ParamToggle("Plot sell/cover arrows ","No|Yes",0); PlotShapes(IIf(Sell1 AND SellCode==1,shapeHollowDownArrow,shapeNone),colorBlue,0,200,10); PlotShapes(IIf(Cover1 AND SellCode==1,shapeHollowDownArrow,shapeNone),colorRed,0,200,10); // Calculate pattern hilites // Long AsellL= BuyPattern; BsellL= Sell1; bs_AsellL= BarsSince(AsellL); bs_BsellL= BarsSince(BsellL); bars_sellL= IIf(bs_ASellL<= bs_BsellL,bs_AsellL,0); //Short AsellS= ShortPattern; BsellS= Cover1; bs_AsellS= BarsSince(AsellS); bs_BsellS= BarsSince(BsellS); bars_sellS= IIf(bs_ASellS<= bs_BsellS,bs_AsellS,0); hilitecode=ParamToggle("Hi-lite patterns","No|Yes",0); // CCI Line CCIcolor= IIf(((bars_sellL OR bars_sellS) OR AllPAtterns) AND hilitecode==1,patterncolor,zcolor); Plot(round(z),"WCCI", CCIcolor , styleLine | styleThick); // Turbo CCI Plot(round(z6),"TCCI", z6color, styleLine); // CCI Histogram Plot( array, "", colorDefault, styleLine | styleThick | styleNoLabel); Plot( array, "", Color, styleHistogram | styleThick| styleNoLabel); // BackTest Long LastPatLong= BuyPattern; LastPatBarLong= BarsSince(LastPatLong); DDL=IIf((((LLV(L,LastPatBarLong)-Ref(C,-LastPatBarLong))))/ticdiv>=0,0,(((LLV(L,LastPatBarLong)-Ref(C,-LastPatBarLong))))/ticdiv); BTExitLong= (((C-Ref(C,-LastPatBarLong))))/ticdiv; PeakLong=IIf((((HHV(H,LastPatBarLong)-Ref(C,-LastPatBarLong))))/ticdiv<=0,0,(((HHV(H,LastPatBarLong)-Ref(C,-LastPatBarLong))))/ticdiv); StopLong1= Ref(C,-LastPatBarLong) - (Ref(L,-LastPatBarLong) - (stopval*ticdiv) - (spread*ticdiv)); stoplong= (((StopLong1)))/ticdiv; BackTestLongTitle= WriteIf(Sell1,EncodeColor(colorBlue) + "\n" + "Stop " + (Ref(C,-LastPatBarLong) - (round(stoplong)*ticdiv)) + " " + round(stoplong) + "\n" + "DD " + (Ref(C,-LastPatBarLong) + (round(DDL)*ticdiv)) + " " + round(DDL) + "\n" + "Exit " + (Ref(C,-LastPatBarLong) + (round(BTExitLong)*ticdiv)) + " " + round(BTExitLong) + "\n" + "Peak " + (Ref(C,-LastPatBarLong) + (round(PeakLong)*ticdiv)) + " " + round(PeakLong) + "\n",EncodeColor(colorBlue) + "\n" + "Stop " + (Ref(C,-LastPatBarLong) - (round(stoplong)*ticdiv)) + " " + round(stoplong) + "\n" + "DD " + (Ref(C,-LastPatBarLong) + (round(DDL)*ticdiv)) + " " + round(DDL) + "\n" + "Exit " + (Ref(C,-LastPatBarLong) + (round(BTExitLong)*ticdiv)) + " " + round(BTExitLong) + "\n" + "Peak " + (Ref(C,-LastPatBarLong) + (round(PeakLong)*ticdiv)) + " " + round(PeakLong) + "\n"); // BackTest Short LastPatShort= ShortPattern; LastPatBarShort= BarsSince(LastPatShort); DDS= IIf((((Ref(C,-LastPatBarShort)-HHV(H,LastPatBarShort))))/ticdiv>=0,0,(((Ref(C,-LastPatBarShort)-HHV(H,LastPatBarShort))))/ticdiv); BTExitShort= (((Ref(C,-LastPatBarShort)-C)))/ticdiv; PeakShort= IIf((((Ref(C,-LastPatBarShort)-LLV(L,LastPatBarShort))))/ticdiv<=0,0,(((Ref(C,-LastPatBarShort)-LLV(L,LastPatBarShort))))/ticdiv); StopShort1= (Ref(H,-LastPatBarShort) + (Stopval*ticdiv) + (spread*ticdiv)) - Ref(C,-LastPatBarShort); StopShort= (((StopShort1)))/ticdiv; BackTestShortTitle= WriteIf(Cover1,EncodeColor(colorRed) + "\n" + "Stop " + (Ref(C,-LastPatBarShort) + (round(stopshort)*ticdiv)) + " " + round(stopshort) + "\n" + "DD " + (Ref(C,-LastPatBarShort) + abs(round(DDS)*ticdiv)) + " " + round(DDS) + "\n" + "Exit " + (Ref(C,-LastPatBarShort) - (round(BTExitShort)*ticdiv)) + " " + round(BTExitShort) + "\n" + "Peak " + (Ref(C,-LastPatBarShort) - (round(PeakShort)*ticdiv)) + " " + round(PeakShort) + "\n",EncodeColor(colorRed)+ "\n" + "Stop " + (Ref(C,-LastPatBarShort) + (round(stopshort)*ticdiv)) + " " + round(stopshort) + "\n" + "DD " + (Ref(C,-LastPatBarShort) + abs(round(DDS)*ticdiv)) + " " + round(DDS) + "\n" + "Exit " + (Ref(C,-LastPatBarShort) - (round(BTExitShort)*ticdiv)) + " " + round(BTExitShort) + "\n" + "Peak " + (Ref(C,-LastPatBarShort) - (round(PeakShort)*ticdiv)) + " " + round(PeakShort) + "\n"); // Backtest title BackTestCode= ParamToggle("Display Stop,DD,Peak,Exit stats","No|Yes",0); BackTestTitle= WriteIf((bars_sellL>0 OR Sell1) AND BackTestCode==1,BackTestLongTitle ,WriteIf((bars_sellS>0 OR Cover1 )AND BackTestCode==1,BackTestShortTitle ,"")); // Stop in Longbar= L+rbint; Shortbar= H-rbint; sstoptitle=WriteIf(timercode==2, EncodeColor(colorBlue) + "\n" + "Stop In Long " + Longbar + EncodeColor(colorRed) + "\n" + "Stop In Short " + Shortbar + "\n",""); // Stop out stopCode=ParamToggle("Display stop-out ","No|Yes",0); StopLong1= C -(L - (stopval*ticdiv) - (spread*ticdiv)); stoplong1c=C-stoplong1; stoplong= round(StopLong1/ticdiv); StopShort1= (H + (stopval*ticdiv) + (spread*ticdiv)) - C; stopshortc= C+StopShort1; StopShort= round(StopShort1/ticdiv); stoptitle= WriteIf(stopcode==1,EncodeColor(colorBlue) + "\n" + "Stop Out Long " + stoplong1c + " " +stoplong + "\n" + EncodeColor(colorRed) + "Stop Out Short " + stopshortc + " " + stopshort + "\n",""); // Title Title = "\n" + "" + EncodeColor(colorWhite) + Date() + "\n" + "\n" + timetitle + "\n" + "\n" + Lastpricetitlehi + "\n" + Closecolor + C + "\n" + Lastpricetitlelo + "\n" + CCIpointmovetitle + wptitle + HiDayTitle + LoDayTitle + RangeTitle1 + BackTestTitle + Signaltitle + sstoptitle + stoptitle; _SECTION_END();
Sign up here with your email
ConversionConversion EmoticonEmoticon