+91-0000000000

}

Monday – Friday : 9:00 AM – 6:30 PM

Nilesh Woody

Nilesh Woody AFL in Amibroker refers to a trading strategy or system developed within the platform. Integrated with Amibroker data feed, this AFL allows traders to implement and assess the performance of the Nilesh Woody strategy. By utilizing Amibroker data feed capabilities, Nilesh Woody assists traders in evaluating and potentially incorporating this specific trading approach.

/
_SECTION_BEGIN("NILESH Woody1");
/////////////////////////////// 
// CCI Panel for Amibroker
// Codded/Added by Dennis, Kris, Wring, Santacs
// Last Update: 1/02/2008
/////////////////////////////// 
// Go to www.woodiescciclub.com to learn everything about this system.
// You must be a registered user to see the images and downloads.
/////////////////////////////// 
// Setup Axes and Grid section (right click on chart panel, click on Parameters):
// Scaling: Custom , Min=-250  Max=250
// Show Date Axis = Yes , Show Middle Lines = No
/////////////////////////////// 
// To activate the timer properly, make sure the following is set:
// click on Tools==>Preferences==>Intraday....
// make sure "Allign minute bars to market hours" is checked...
// make sure "Start time of interval" is checked...
// make sure "Override: Weekly/monthly bars use day of last trade" is checked.
/////////////////////////////// 
// Tic/PIP values: YM=1.0, ER2=0.10, NQ=0.25, EUR/USD=.0001, USD/JPY=0.01, Stocks=0.01
///////////////////////////////
// Rangebar Settings :
// ER2 1.50 
// YM 25  
// ES 3 
// NQ 3.75 
// DAX 5  
// ZG 1.5  
/////////////////////////////// 
// Discalimer: For educational purposes only. Trade at your own risk.
/////////////////////////////// 

// Timer

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(LRef(H,-1),EncodeColor(colorBrightGreen),WriteIf(C==L AND L=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)-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=zRef(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)=-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 C200 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-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=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-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)0; 
Phook_long2= Ref(z,-3)>-100 AND Ref(z,-1)>Ref(z,-2) AND Ref(z,-2)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,-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);

// 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= zRef(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();

Open chat
1
Hi, how can I help you?