AFL in Amibroker Member Library cannot be used. Plaese help

I tried to open the link from Amibroker, why can't AFL be used. Is it specifically for the old version of Amibroker, because it says it works! Thanks

Can not be used

It is opening. You need to enter your user and password received when you purchase amibroker.

I can open it, but the AFL error. Can not be used

_SECTION_BEGIN("P&F Daily");
//AFL P&F Chart for Amibroker Indicator window. Based on High/low prices.
//Based on code in AB help files
//Reverse is 2 boxes.
//Graham Kavanagh 30 Sep 2003

Version(4.40);
SetBarsRequired(100000,100000);

//Size for P&F boxes
boxsize=IIf(C>=0.01 AND C<10, 0.05,
IIf(C>=10 AND C<20, 0.10,
IIf(C>=20 AND C<30, 0.15,
IIf(C>=30 AND C<40, 0.20,
IIf(C>=40 AND C<50, 0.25,
IIf(C>=50 AND C<60, 0.30,
IIf(C>=60 AND C<70, 0.35,
IIf(C>=70 AND C<80, 0.40,
IIf(C>=80 AND C<90, 0.45,
IIf(C>=90 AND C<100, 0.50,
IIf(C>=100 AND C<150, 0.75,
IIf(C>=150 AND C<200, 1.00,
IIf(C>=200 AND C<250, 1.25,
IIf(C>=250 AND C<300, 1.50,
IIf(C>=300 AND C<350, 1.75,
IIf(C>=350 AND C<400, 2.00,
IIf(C>=400 AND C<450, 2.25,
IIf(C>=450 AND C<500, 2.50,
IIf(C>=500 AND C<550, 2.75,
IIf(C>=550 AND C<600, 3.00,
IIf(C>=600 AND C<650, 3.25,
IIf(C>=650 AND C<700, 3.50,
IIf(C>=700 AND C<750, 3.75,
IIf(C>=750 AND C<800, 4.00,
IIf(C>=800 AND C<850, 4.25,
IIf(C>=850 AND C<900, 4.50,
IIf(C>=900 AND C<950, 4.75,
IIf(C>=950 AND C<1000, 5.00,
IIf(C>=1000 AND C<1100, 5.50,
IIf(C>=1100 AND C<1200, 6.00,
IIf(C>=1200 AND C<1300, 6.50,
IIf(C>=1300 AND C<1400, 7.00,
IIf(C>=1400 AND C<1500, 7.50,
IIf(C>=1500 AND C<1600, 8.00,
IIf(C>=1600 AND C<1700, 8.50,
IIf(C>=1700 AND C<1800, 9.00,
IIf(C>=1800 AND C<1900, 9.50,
IIf(C>=1900 AND C<2000, 10.00,
IIf(C>=2000 AND C<2100, 10.50,
IIf(C>=2100 AND C<2200, 11.00,
IIf(C>=2200 AND C<2300, 11.50,
IIf(C>=2300 AND C<2400, 12.00,
IIf(C>=2400 AND C<2500, 12.50,
IIf(C>=2500 AND C<2600, 13.00,
IIf(C>=2600 AND C<2700, 13.50,
IIf(C>=2700 AND C<2800, 14.00,
IIf(C>=2800 AND C<2900, 14.50,
IIf(C>=2900 AND C<3000, 15.00,
IIf(C>=3000 AND C<3100, 15.50,
IIf(C>=3100 AND C<3200, 16.00,
IIf(C>=3200 AND C<3300, 16.50,
IIf(C>=3300 AND C<3400, 17.00,
IIf(C>=3400 AND C<3500, 17.50,
IIf(C>=3500 AND C<3600, 18.00,
IIf(C>=3600 AND C<3700, 18.50,
IIf(C>=3700 AND C<3800, 19.00,
IIf(C>=3800 AND C<3900, 19.50,
IIf(C>=3900 AND C<4000, 20.00,
IIf(C>=4000 AND C<4100, 20.50,
IIf(C>=4100 AND C<4200, 21.00,
IIf(C>=4200 AND C<4300, 21.50,
IIf(C>=4300 AND C<4400, 22.00,
IIf(C>=4400 AND C<4500, 22.50,
IIf(C>=4500 AND C<4600, 23.00,
IIf(C>=4600 AND C<4700, 23.50,
IIf(C>=4700 AND C<4800, 24.00,
IIf(C>=4800 AND C<4900, 24.50,
IIf(C>=4900 AND C<5000, 25.00,
IIf(C>=5000 AND C<6000, 30,
IIf(C>=6000 AND C<7000, 35,
IIf(C>=7000 AND C<8000, 40,
IIf(C>=8000 AND C<9000, 45,
IIf(C>=9000 AND C<10000, 50,
IIf(C>=10000 AND C<11000, 55,
IIf(C>=11000 AND C<12000, 60,
IIf(C>=12000 AND C<13000, 65,
IIf(C>=13000 AND C<14000, 70,
IIf(C>=14000 AND C<15000, 75,
IIf(C>=15000 AND C<16000, 80,
IIf(C>=16000 AND C<17000, 85,
IIf(C>=17000 AND C<18000, 90,
IIf(C>=18000 AND C<19000, 95,
IIf(C>=19000 AND C<20000, 100,
IIf(C>=20000 AND C<21000, 105,
IIf(C>=21000 AND C<22000, 110,
IIf(C>=22000 AND C<23000, 115,
IIf(C>=23000 AND C<24000, 120,
IIf(C>=24000 AND C<25000, 125,
IIf(C>=25000 AND C<26000, 130,
IIf(C>=26000 AND C<27000, 135,
IIf(C>=27000 AND C<28000, 140,
IIf(C>=28000 AND C<29000, 145,
IIf(C>=29000 AND C<30000, 150,
IIf(C>=30000 AND C<31000, 155,
IIf(C>=31000 AND C<32000, 160,
IIf(C>=32000 AND C<33000, 165,
IIf(C>=33000 AND C<34000, 170,
IIf(C>=34000 AND C<35000, 175,
200
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
Box = LastValue(boxsize);
HX = round((H/box)*10)/10;
LX = round((L/box)*10)/10;
RH = floor(HX);
FL = ceil(LX);


// initialize first element
j = 0;

Reverse = 3;                      // reversal requirement

PFC[j] = FL[0];
PFO[j] = PFC[j] + 1;
down = 1;                  // By default the first bar is a down bar.
up = 0;
swap = 0;

// perform the loop that produces PF Chart
for( i = 1; i < BarCount; i++ )
{

 if( FL[i] <= PFC[j]-1 && down)         //continue down
 {
  PFC[j] = FL[i];
  PFO[j] = PFC[j] + 1;
 }
 else
 {
  if( RH[i] >= PFC[j] + Reverse && down)  //Change direction to up
  {
   j++;
   swap = 1;
   PFC[j] = RH[i];
   PFO[j] = PFC[j]-1;
  }
 }
 if( RH[i] >= PFC[j] + 1 && up)         //Continue up
 {
  PFC[j] = RH[i];
  PFO[j] = PFC[j] - 1;
 }
 else
 {
  if( FL[i] <= PFC[j] - Reverse && up)   //Change direction to down
  {
   j++;
   PFC[j] = FL[i];
   PFO[j] = PFC[j] + 1;
   swap = 1;
  }
 }
 if( swap )
 {
  swap = 0;
  if( up )
  {
   up = 0;
   down = 1;
  }
  else
  {
   up = 1;
   down = 0;
  }
 }
}
delta = BarCount - j-1;


PFO = Ref( PFO, -delta );
PFC = Ref( PFC, -delta );

// High-Low range sets the height of the P&F bar
H = IIf(Ref(PFC,-1)>Ref(PFO,-1),Ref(HHV(PFC,1),-1)-1,Max(PFO,PFC))*Box;
L = IIf(Ref(PFC,-1)<Ref(PFO,-1),Ref(LLV(PFC,1),-1)+1,Min(PFO,PFC))*Box;
O =
IIf(Ref(PFC,-1)>Ref(PFO,-1),Ref(HHV(PFC,1),-1)-1,IIf(Ref(PFC,-1)<Ref(PFO,-1),Ref(LLV(PFC,1),-1)+1,PFO))*Box;

// the difference between Open AND Close should be set to box size
// the sign decides if X or O are plotted
C = O + Box * IIf( PFC > PFO, 1,-1);

GraphXSpace = 2;
Title ="No Jscript  " + Name()+ "  PF HiLo, H: " + H+ ", L: " + L+", Box: "+ box
+ ", Reversal: " + reverse;

Plot( C, "P&F Chart Close", IIf( PFC > PFO, colorBlue, colorRed ),
styleCandle+styleNoLabel+stylePointAndFigure);

hbar1 =  H ;
hbar2 =  Ref(H,-2) ;


lbar1 =  L ;
lbar2 =  Ref(L,-2) ;



Buy = IIf( hbar1 > hbar2 AND PFC > PFO ,True,False);
Sell = IIf(lbar1 < lbar2 AND PFC < PFO ,True,False);

x = Buy;
y = Sell;

Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy ); 

PlotShapes(shapeSmallUpTriangle * Buy, colorGreen,  0, L, -12);
PlotShapes(shapeSmallDownTriangle * Sell, colorRed,  0, H, -12);


" Last Bar  " + LastValue( BarIndex()-2 );


AlertIf( Sell, "SOUND C:\\Windows\\Media\\Ding.wav", "Sell", 2 );
AlertIf( Buy, "SOUND C:\\Windows\\Media\\Ding.wav", "Buy", 1 );

Filter = 1; /* all symbols and quotes accepted */
//filer = Buy OR Sell ;
AddColumn(Open,"OPEN",1);
AddColumn(High,"HIGH",1);
AddColumn(Low,"LOW",1);
AddColumn(Close,"CLOSE",1);
AddColumn(V,"VOLUME",1);
AddColumn(x,"Buy Above" , 1);
AddColumn(y,"Sell Below", 1);
AddColumn(hbar2,"Hbar-2", 1);



_SECTION_END();


_SECTION_BEGIN( "Point & Figure w Values adj" );

GraphXSpace = 5;

SetChartBkColor( ParamColor( "BackGroundColor", colorBlack) );

//GraphColor = ParamColor("GarphColor",colorLightGrey);

GridColor = ParamColor( "GridColor", colorLightGrey );

Scaling = ParamList( "Scaling Method", "Traditional|Percentage|AVG True
Range" );

if ( scaling == "Traditional" )

Box = Param( "Box", 1, 0.2, 10, 0.1 );

else

if ( scaling == "Percentage" )

Box = Param( "Box ", 1, 0.2, 10, 0.1 ) / 100 * LastValue( C );

else

if ( scaling == "AVG True Range" )

Box = Param( "Box", 1, 0.3, 5, 0.1 ) * LastValue( ATR ( 20 ) );

shiftChart = 0;

shiftLastClose = 1;

shiftGrid = 7;

shiftPriceAxis = 2;

Reverse = Param( "Reverse", 3, 1, 5 );

j = 0;

PFL[0] = Box * ceil( Low[0] / Box ) + Box;

PFH[0] = Box * floor( High[0] / Box );

direction = 0;

for ( i = 1; i < BarCount; i++ )

{

if ( direction[j] == 0 )

{

if ( Low[i] <= PFL[j] - Box )

{

PFL[j] = Box * ceil( Low[i] / Box );

}

else

{

if ( High[i] >= PFL[j] + Reverse*Box )

{

j++;

direction[j] = 1;

PFH[j] = Box * floor( High[i] / Box );

PFL[j] = PFL[j - 1] + Box;

}

}

}

else

{

if ( High[i] >= PFH[j] + Box )

{

PFH[j] = Box * floor( High[i] / Box );

}

else

{

if ( Low[i] <= PFH[j] - Reverse * Box )

{

j++;

direction[j] = 0;

PFH[j] = PFH[j - 1] - Box;

PFL[j] = Box * ceil( Low[i] / Box );

}

}

}

}

delta = BarCount - j - 1;

direction = Ref( direction, - delta );

Hi = Ref( PFH, -delta ) + Box / 2;

Lo = Ref( PFL, -delta ) - Box / 2;

Cl = IIf( direction == 1, Hi, Lo );

Op = IIf( direction == 1, Cl - Box, Cl + Box );

Graphcolor = IIf( direction == 1, ParamColor( "X_Color", colorBrightGreen ),

ParamColor( "O_Color", colorRed ) );

PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor ,

stylePointAndFigure | styleNoLabel, 0, 0 , shiftChart );

PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor , stylePointAndFigure |
styleNoLabel, 0, 0 , shiftChart );

Last = Ref( LastValue( C ), -( BarCount - 1 ) );

Plot( Last, "", colorRed, styleNoLine | styleDots, 0 , 0, shiftLastClose );

// selected value

Value = IIf( direction > 0, SelectedValue( Hi ) - box / 2, SelectedValue( Lo
) + box / 2 );

//-----------------------------------------------------------------------

// GRID CONSTRUCTION

//----------------------------------------------------------------------

PlotGridLines = ParamToggle( "PlotdGrid", "Yes! |No", 1 ) ;

if ( PlotGridLines )

{

begin = SelectedValue( BarIndex() );

end = LastValue( BarIndex() );

period = end - begin + 1;

if ( begin < end )

{

ScreenHigh = LastValue( HHV( cl, period ) );

ScreenLow = LastValue( LLV( Cl, period ) );

top = LineArray( begin - shiftGrid, screenHigh, end, screenhigh, 0 , 1 );

Bot = LineArray( begin - shiftGrid, screenlow, end, screenLow, 0, 1 );

Plot( top, "", gridColor, styleLine | styleNoLabel , 0, 0, shiftGrid );

//Plot( bot, "", gridColor,styleLine|styleNoLabel, 0 , 0 , shiftGrid);

VerticalGrid = IIf ( BarIndex() >= begin, IIf( direction == 1, screenHigh,
screenLow ), Null );

Plot ( VerticalGrid, "", gridColor, styleStaircase | styleNoLabel, 0, 0, 1
);

format = 8.2;

for ( n = LastValue( bot ); n < LastValue( top ) - 0.5*box; n = n + box )

{

Plot( bot , "", gridColor, styleLine | styleNoLabel, 0, 0 , shiftGrid );

text = NumToStr( LastValue( bot ) + 0.5 * box, format );

xposition = BarCount + shiftPriceaxis;

yPosition = LastValue( bot ) + 0.27 * box;

PlotText( text, xPosition , yPosition, colorBlue );

bot = bot + box;

Graphcolor = IIf( direction == 1, ParamColor( "X_Color", colorBrightGreen ),

ParamColor( "O_Color", colorRed ) );

PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor ,

stylePointAndFigure | styleNoLabel, 0, 0 , shiftChart );

}

}

}



_SECTION_BEGIN("SU-RE");
NumLine = Param("Num Lines",2,1,20,1);

function sort(inlist)

{

//sort inlist

temp=0;

for(i = numline * 2; i>=0; i--)

{

for (j = 1; j <= i; j++)

{

if (inlist[j-1] > inlist[j] AND inlist[j-1] > 0)

{

temp = inlist[j-1];

inlist[j-1] = inlist[j];

inlist[j] = temp;

}

}

}

//inlist now sorted

return inlist;
}



 //Support and resistance levels.

//using RSI

//Load into Indicator Builder

//Sensitivity of the levels can be changed with the variables

//Can test different numbers live with the Param function ctrl-R with open pane

RSIperiod = Param("RSI p",2,2,30,1);

EMAperiod = Param("EMA p",5,3,10,1);

Percent = Param("ZIG %",3,1,15,1);

HHVperiod = Param("HHV p",6,2,10,1);

NumLine = Param("Num Lines",2,1,20,1);


//Base = RSI(RSIperiod);

//Base = EMA(RSI(RSIperiod),EMAperiod);
//base = CCI(14);
Base = DEMA(RSI(RSIperiod),EMAperiod);

GraphXSpace=0.5;


//Plot(EMA(C, 10), "EMA-10", colorRed, styleLine|styleThick|styleNoRescale);
//Plot(EMA(C, 20), "EMA-20", colorBlue, styleLine|styleThick|styleNoRescale);
//Plot(EMA(C, 50), "EMA-50", colorBlack, styleLine|styleThick|styleNoRescale);

pp	=	(H + L + C)/3;
//Plot(EMA(Ref(pp, -1), 3), "EMA pp", colorWhite, styleLine|styleNoRescale);

red = green = 0;
for( i = 1; i <= numline; i++ )

{

ResBase = LastValue(Peak(Base,Percent,i));

SupBase = LastValue(Trough(Base,Percent,i));

Plot(ValueWhen( ResBase==Base, HHV(H,HHVperiod) ), "Resist Level", colorRed,
styleLine|styleNoRescale);
Plot(ValueWhen( supbase==Base, LLV(L,HHVperiod) ), "Support Level", colorGreen,
styleLine|styleNoRescale);
red			=	IIf(resbase == base, 1, 0);
green		=	IIf(supbase == base, 1, 0);
}

r1[1] = 0;
s1[1] = 0;
for (i = 1; i <= numline; i++)
{
	resbase = LastValue(Peak(base, percent, i));
	supbase = LastValue(Trough(base, percent, i));

	r = SelectedValue(ValueWhen(resbase==base, HHV(H, HHVperiod)));
	s = SelectedValue(ValueWhen(supbase==base, LLV(L, HHVperiod)));


	r1[i] = r;
	r1[i+numline] = s;
//r1[i] = SelectedValue(ValueWhen(resbase==base, HHV(H, HHVperiod)));
//s1[i] = SelectedValue(ValueWhen(supbase==base, LLV(L, HHVperiod)));
}

r1	=	sort(r1);
"R1-1:  " + WriteVal(r1[1], 1.2);
"R1-2:  " + WriteVal(r1[2], 1.2);
"R1-3:  " + WriteVal(r1[3], 1.2);

// find nearest three resistance lines (values above current high)
near_r1[1] = 0;
j = 1;
for (i = 1; i <= numline * 2; i++)
{
	if(r1[i] > SelectedValue(H))
	{
		near_r1[j] = r1[i];
		j = j + 1;
	}
}

"Linregslope of Close: " + WriteVal(LinRegSlope(C, 3), 1.2);
"\nCurrent High: " + WriteVal(H, 1.2);
"\nNearest Resistance Levels:\n";
"R1:	" + WriteVal(near_r1[1], 1.2);
"R2:	" + WriteVal(near_r1[2], 1.2);

// find nearest three nearest support lines (values below current low)
near_s1[1] = 0;
j = 1;
for(i=numline*2; i >= 1; i--)
{
	if (r1[i] < SelectedValue(L) AND r1[i] > 0)
	{
		near_s1[j] = r1[i];
		j++;
	}
}

"\nCurrent Low: " + WriteVal(L, 1.2);
"\nNearest Support Levels:\n";
"S1:	" + WriteVal(near_s1[1], 1.2);
"S2:	" + WriteVal(near_s1[2], 1.2);


// Test
/*
resbase	=	LastValue(Peak(base, percent, 1));
supbase 	=	LastValue(Trough(base, percent, 1));
sup1		=	ValueWhen(supbase==base, LLV(L, HHVperiod));
res1		=	ValueWhen(resbase==base, HHV(H, HHVperiod));
"Resbase:	" + WriteVal(resbase, 1.2);
"SUpbase: " + WriteVal(supbase, 1.2);
"Supp1: "		+ WriteVal(sup1, 1.2);
"Res1: " +	WriteVal(res1, 1.2);

resbase	=	LastValue(Peak(base, percent, 2));
supbase 	=	LastValue(Trough(base, percent, 2));
sup1		=	ValueWhen(supbase==base, LLV(L, HHVperiod));
res1		=	ValueWhen(resbase==base, HHV(H, HHVperiod));
"\n";
"Resbase2:	" + WriteVal(resbase, 1.2);
"SUpbase2: " + WriteVal(supbase, 1.2);
"Supp2: "		+ WriteVal(sup1, 1.2);
"Res2: " +	WriteVal(res1, 1.2);

resbase	=	LastValue(Peak(base, percent, 3));
supbase 	=	LastValue(Trough(base, percent, 3));
sup1		=	ValueWhen(supbase==base, LLV(L, HHVperiod));
res1		=	ValueWhen(resbase==base, HHV(H, HHVperiod));
"\n";
"Resbase3:	" + WriteVal(resbase, 1.2);
"SUpbase3: " + WriteVal(supbase, 1.2);
"Supp3: "		+ WriteVal(sup1, 1.2);
"Res3: " +	WriteVal(res1, 1.2);




// End test
"\n";
"Base: " + WriteVal(base, 1.2);
WriteIf(red, "Resistance", "");
WriteIf(green, "Support", "");
"\n";

*/

"\n\n";
Title = Name() + "; " + Date() + ": Support & Resistance Levels using RSI: " +
EncodeColor(colorGreen)+ "Support Levels are Green; "+EncodeColor(colorRed)+
"Resistance Levels are Red: "+EncodeColor(colorBlack)+"Number of lines of each
="+WriteVal(numline,1) +
EncodeColor(colorRed) + "\nEMA-10: "  + WriteVal(EMA(C, 10), 1.2) +
EncodeColor(colorBlue) + "\nEMA-20: " + WriteVal(EMA(C, 20), 1.2) +
EncodeColor(colorBlack) + "\nEMA-50: " + WriteVal(EMA(C, 50), 1.2) ;



SetChartBkGradientFill( ParamColor("BgTop", colorTeal),ParamColor("BgBottom",
colorLightGrey));


_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g,
Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C));


Hh = HHV(C,1) ;  
Ll = LLV(C,1) ;  




Hh = Ref(HHV(C,1),-1) ;  
Ll = Ref(LLV(C,1),-1); 

//Plot(Hh,"1 Bar High",colorGreen,styleLine);
//Plot(Ll,"1 Bar Low",colorRed,styleLine);


Plot(Close,"Close",
IIf(C > Hh, colorBrightGreen,
IIf(C < Ll, colorRed,
colorWhite)),
styleCandle|styleThick);

Buy =  C > Hh;
Sell = C < Ll;

Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy ); 

PlotShapes(shapeUpTriangle* Buy, colorGreen, 0, L );
PlotShapes(shapeDownTriangle* Sell, colorRed, 0, H );
"Jeevan's Advice: "+WriteVal(0);
"Bullish if Closing Above : "+WriteVal(Hh,1.01);
"Bearish if Closing Below: "+WriteVal(Ll,1.01);
"Current Close               : "+WriteVal(Close,1.0);


_SECTION_END();
_SECTION_BEGIN("P&F Daily");
//AFL P&F Chart for Amibroker Indicator window. Based on High/low prices.
//Based on code in AB help files
//Reverse_Old is 2 boxes.
//Graham Kavanagh 30 Sep 2003

Version(4.40);
SetBarsRequired(100000,100000);

//Size for P&F boxes
boxsize=IIf(C>=0.01 AND C<10, 0.05,
IIf(C>=10 AND C<20, 0.10,
IIf(C>=20 AND C<30, 0.15,
IIf(C>=30 AND C<40, 0.20,
IIf(C>=40 AND C<50, 0.25,
IIf(C>=50 AND C<60, 0.30,
IIf(C>=60 AND C<70, 0.35,
IIf(C>=70 AND C<80, 0.40,
IIf(C>=80 AND C<90, 0.45,
IIf(C>=90 AND C<100, 0.50,
IIf(C>=100 AND C<150, 0.75,
IIf(C>=150 AND C<200, 1.00,
IIf(C>=200 AND C<250, 1.25,
IIf(C>=250 AND C<300, 1.50,
IIf(C>=300 AND C<350, 1.75,
IIf(C>=350 AND C<400, 2.00,
IIf(C>=400 AND C<450, 2.25,
IIf(C>=450 AND C<500, 2.50,
IIf(C>=500 AND C<550, 2.75,
IIf(C>=550 AND C<600, 3.00,
IIf(C>=600 AND C<650, 3.25,
IIf(C>=650 AND C<700, 3.50,
IIf(C>=700 AND C<750, 3.75,
IIf(C>=750 AND C<800, 4.00,
IIf(C>=800 AND C<850, 4.25,
IIf(C>=850 AND C<900, 4.50,
IIf(C>=900 AND C<950, 4.75,
IIf(C>=950 AND C<1000, 5.00,
IIf(C>=1000 AND C<1100, 5.50,
IIf(C>=1100 AND C<1200, 6.00,
IIf(C>=1200 AND C<1300, 6.50,
IIf(C>=1300 AND C<1400, 7.00,
IIf(C>=1400 AND C<1500, 7.50,
IIf(C>=1500 AND C<1600, 8.00,
IIf(C>=1600 AND C<1700, 8.50,
IIf(C>=1700 AND C<1800, 9.00,
IIf(C>=1800 AND C<1900, 9.50,
IIf(C>=1900 AND C<2000, 10.00,
IIf(C>=2000 AND C<2100, 10.50,
IIf(C>=2100 AND C<2200, 11.00,
IIf(C>=2200 AND C<2300, 11.50,
IIf(C>=2300 AND C<2400, 12.00,
IIf(C>=2400 AND C<2500, 12.50,
IIf(C>=2500 AND C<2600, 13.00,
IIf(C>=2600 AND C<2700, 13.50,
IIf(C>=2700 AND C<2800, 14.00,
IIf(C>=2800 AND C<2900, 14.50,
IIf(C>=2900 AND C<3000, 15.00,
IIf(C>=3000 AND C<3100, 15.50,
IIf(C>=3100 AND C<3200, 16.00,
IIf(C>=3200 AND C<3300, 16.50,
IIf(C>=3300 AND C<3400, 17.00,
IIf(C>=3400 AND C<3500, 17.50,
IIf(C>=3500 AND C<3600, 18.00,
IIf(C>=3600 AND C<3700, 18.50,
IIf(C>=3700 AND C<3800, 19.00,
IIf(C>=3800 AND C<3900, 19.50,
IIf(C>=3900 AND C<4000, 20.00,
IIf(C>=4000 AND C<4100, 20.50,
IIf(C>=4100 AND C<4200, 21.00,
IIf(C>=4200 AND C<4300, 21.50,
IIf(C>=4300 AND C<4400, 22.00,
IIf(C>=4400 AND C<4500, 22.50,
IIf(C>=4500 AND C<4600, 23.00,
IIf(C>=4600 AND C<4700, 23.50,
IIf(C>=4700 AND C<4800, 24.00,
IIf(C>=4800 AND C<4900, 24.50,
IIf(C>=4900 AND C<5000, 25.00,
IIf(C>=5000 AND C<6000, 30,
IIf(C>=6000 AND C<7000, 35,
IIf(C>=7000 AND C<8000, 40,
IIf(C>=8000 AND C<9000, 45,
IIf(C>=9000 AND C<10000, 50,
IIf(C>=10000 AND C<11000, 55,
IIf(C>=11000 AND C<12000, 60,
IIf(C>=12000 AND C<13000, 65,
IIf(C>=13000 AND C<14000, 70,
IIf(C>=14000 AND C<15000, 75,
IIf(C>=15000 AND C<16000, 80,
IIf(C>=16000 AND C<17000, 85,
IIf(C>=17000 AND C<18000, 90,
IIf(C>=18000 AND C<19000, 95,
IIf(C>=19000 AND C<20000, 100,
IIf(C>=20000 AND C<21000, 105,
IIf(C>=21000 AND C<22000, 110,
IIf(C>=22000 AND C<23000, 115,
IIf(C>=23000 AND C<24000, 120,
IIf(C>=24000 AND C<25000, 125,
IIf(C>=25000 AND C<26000, 130,
IIf(C>=26000 AND C<27000, 135,
IIf(C>=27000 AND C<28000, 140,
IIf(C>=28000 AND C<29000, 145,
IIf(C>=29000 AND C<30000, 150,
IIf(C>=30000 AND C<31000, 155,
IIf(C>=31000 AND C<32000, 160,
IIf(C>=32000 AND C<33000, 165,
IIf(C>=33000 AND C<34000, 170,
IIf(C>=34000 AND C<35000, 175,
200
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
Box = LastValue(boxsize);
HX = round((H/box)*10)/10;
LX = round((L/box)*10)/10;
RH = floor(HX);
FL = ceil(LX);


// initialize first element
j = 0;

Reverse_Old = 3;                      // reversal requirement

PFC[j] = FL[0];
PFO[j] = PFC[j] + 1;
down = 1;                  // By default the first bar is a down bar.
up = 0;
swap = 0;

// perform the loop that produces PF Chart
for( i = 1; i < BarCount; i++ )
{

 if( FL[i] <= PFC[j]-1 && down)         //continue down
 {
  PFC[j] = FL[i];
  PFO[j] = PFC[j] + 1;
 }
 else
 {
  if( RH[i] >= PFC[j] + Reverse_Old && down)  //Change direction to up
  {
   j++;
   swap = 1;
   PFC[j] = RH[i];
   PFO[j] = PFC[j]-1;
  }
 }
 if( RH[i] >= PFC[j] + 1 && up)         //Continue up
 {
  PFC[j] = RH[i];
  PFO[j] = PFC[j] - 1;
 }
 else
 {
  if( FL[i] <= PFC[j] - Reverse_Old && up)   //Change direction to down
  {
   j++;
   PFC[j] = FL[i];
   PFO[j] = PFC[j] + 1;
   swap = 1;
  }
 }
 if( swap )
 {
  swap = 0;
  if( up )
  {
   up = 0;
   down = 1;
  }
  else
  {
   up = 1;
   down = 0;
  }
 }
}
delta = BarCount - j-1;


PFO = Ref( PFO, -delta );
PFC = Ref( PFC, -delta );

// High-Low range sets the height of the P&F bar
H = IIf(Ref(PFC,-1)>Ref(PFO,-1),Ref(HHV(PFC,1),-1)-1,Max(PFO,PFC))*Box;
L = IIf(Ref(PFC,-1)<Ref(PFO,-1),Ref(LLV(PFC,1),-1)+1,Min(PFO,PFC))*Box;
O =
IIf(Ref(PFC,-1)>Ref(PFO,-1),Ref(HHV(PFC,1),-1)-1,IIf(Ref(PFC,-1)<Ref(PFO,-1),Ref(LLV(PFC,1),-1)+1,PFO))*Box;

// the difference between Open AND Close should be set to box size
// the sign decides if X or O are plotted
C = O + Box * IIf( PFC > PFO, 1,-1);

GraphXSpace = 2;
Title ="No Jscript  " + Name()+ "  PF HiLo, H: " + H+ ", L: " + L+", Box: "+ box
+ ", Reversal: " + Reverse_Old;

Plot( C, "P&F Chart Close", IIf( PFC > PFO, colorBlue, colorRed ),
styleCandle+styleNoLabel+stylePointAndFigure);

hbar1 =  H ;
hbar2 =  Ref(H,-2) ;


lbar1 =  L ;
lbar2 =  Ref(L,-2) ;



Buy = IIf( hbar1 > hbar2 AND PFC > PFO ,True,False);
Sell = IIf(lbar1 < lbar2 AND PFC < PFO ,True,False);

x = Buy;
y = Sell;

Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy ); 

PlotShapes(shapeSmallUpTriangle * Buy, colorGreen,  0, L, -12);
PlotShapes(shapeSmallDownTriangle * Sell, colorRed,  0, H, -12);


" Last Bar  " + LastValue( BarIndex()-2 );


AlertIf( Sell, "SOUND C:\\Windows\\Media\\Ding.wav", "Sell", 2 );
AlertIf( Buy, "SOUND C:\\Windows\\Media\\Ding.wav", "Buy", 1 );

Filter = 1; /* all symbols and quotes accepted */
//filer = Buy OR Sell ;
AddColumn(Open,"OPEN",1);
AddColumn(High,"HIGH",1);
AddColumn(Low,"LOW",1);
AddColumn(Close,"CLOSE",1);
AddColumn(V,"VOLUME",1);
AddColumn(x,"Buy Above" , 1);
AddColumn(y,"Sell Below", 1);
AddColumn(hbar2,"Hbar-2", 1);



_SECTION_END();


_SECTION_BEGIN( "Point & Figure w Values adj" );

GraphXSpace = 5;

SetChartBkColor( ParamColor( "BackGroundColor", colorBlack) );

//GraphColor = ParamColor("GarphColor",colorLightGrey);

GridColor = ParamColor( "GridColor", colorLightGrey );

Scaling = ParamList( "Scaling Method", "Traditional|Percentage|AVG True
Range" );

if ( scaling == "Traditional" )

Box = Param( "Box", 1, 0.2, 10, 0.1 );

else

if ( scaling == "Percentage" )

Box = Param( "Box ", 1, 0.2, 10, 0.1 ) / 100 * LastValue( C );

else

if ( scaling == "AVG True Range" )

Box = Param( "Box", 1, 0.3, 5, 0.1 ) * LastValue( ATR ( 20 ) );

shiftChart = 0;

shiftLastClose = 1;

shiftGrid = 7;

shiftPriceAxis = 2;

Reverse_Old = Param( "Reverse_Old", 3, 1, 5 );

j = 0;

PFL[0] = Box * ceil( Low[0] / Box ) + Box;

PFH[0] = Box * floor( High[0] / Box );

direction = 0;

for ( i = 1; i < BarCount; i++ )

{

if ( direction[j] == 0 )

{

if ( Low[i] <= PFL[j] - Box )

{

PFL[j] = Box * ceil( Low[i] / Box );

}

else

{

if ( High[i] >= PFL[j] + Reverse_Old*Box )

{

j++;

direction[j] = 1;

PFH[j] = Box * floor( High[i] / Box );

PFL[j] = PFL[j - 1] + Box;

}

}

}

else

{

if ( High[i] >= PFH[j] + Box )

{

PFH[j] = Box * floor( High[i] / Box );

}

else

{

if ( Low[i] <= PFH[j] - Reverse_Old * Box )

{

j++;

direction[j] = 0;

PFH[j] = PFH[j - 1] - Box;

PFL[j] = Box * ceil( Low[i] / Box );

}

}

}

}

delta = BarCount - j - 1;

direction = Ref( direction, - delta );

Hi = Ref( PFH, -delta ) + Box / 2;

Lo = Ref( PFL, -delta ) - Box / 2;

Cl = IIf( direction == 1, Hi, Lo );

Op = IIf( direction == 1, Cl - Box, Cl + Box );

Graphcolor = IIf( direction == 1, ParamColor( "X_Color", colorBrightGreen ),

ParamColor( "O_Color", colorRed ) );

PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor ,

stylePointAndFigure | styleNoLabel, 0, 0 , shiftChart );

PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor , stylePointAndFigure |
styleNoLabel, 0, 0 , shiftChart );

Last = Ref( LastValue( C ), -( BarCount - 1 ) );

Plot( Last, "", colorRed, styleNoLine | styleDots, 0 , 0, shiftLastClose );

// selected value

Value = IIf( direction > 0, SelectedValue( Hi ) - box / 2, SelectedValue( Lo
) + box / 2 );

//-----------------------------------------------------------------------

// GRID CONSTRUCTION

//----------------------------------------------------------------------

PlotGridLines = ParamToggle( "PlotdGrid", "Yes! |No", 1 ) ;

if ( PlotGridLines )

{

begin = SelectedValue( BarIndex() );

end = LastValue( BarIndex() );

period = end - begin + 1;

if ( begin < end )

{

ScreenHigh = LastValue( HHV( cl, period ) );

ScreenLow = LastValue( LLV( Cl, period ) );

top = LineArray( begin - shiftGrid, screenHigh, end, screenhigh, 0 , 1 );

Bot = LineArray( begin - shiftGrid, screenlow, end, screenLow, 0, 1 );

Plot( top, "", gridColor, styleLine | styleNoLabel , 0, 0, shiftGrid );

//Plot( bot, "", gridColor,styleLine|styleNoLabel, 0 , 0 , shiftGrid);

VerticalGrid = IIf ( BarIndex() >= begin, IIf( direction == 1, screenHigh,
screenLow ), Null );

Plot ( VerticalGrid, "", gridColor, styleStaircase | styleNoLabel, 0, 0, 1
);

format = 8.2;

for ( n = LastValue( bot ); n < LastValue( top ) - 0.5*box; n = n + box )

{

Plot( bot , "", gridColor, styleLine | styleNoLabel, 0, 0 , shiftGrid );

text = NumToStr( LastValue( bot ) + 0.5 * box, format );

xposition = BarCount + shiftPriceaxis;

yPosition = LastValue( bot ) + 0.27 * box;

PlotText( text, xPosition , yPosition, colorBlue );

bot = bot + box;

Graphcolor = IIf( direction == 1, ParamColor( "X_Color", colorBrightGreen ),

ParamColor( "O_Color", colorRed ) );

PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor ,

stylePointAndFigure | styleNoLabel, 0, 0 , shiftChart );

}

}

}



_SECTION_BEGIN("SU-RE");
NumLine = Param("Num Lines",2,1,20,1);

function sort_Old(inlist)

{

//sort_Old inlist

temp=0;

for(i = numline * 2; i>=0; i--)

{

for (j = 1; j <= i; j++)

{

if (inlist[j-1] > inlist[j] AND inlist[j-1] > 0)

{

temp = inlist[j-1];

inlist[j-1] = inlist[j];

inlist[j] = temp;

}

}

}

//inlist now sort_Olded

return inlist;
}



 //Support and resistance levels.

//using RSI

//Load into Indicator Builder

//Sensitivity of the levels can be changed with the variables

//Can test different numbers live with the Param function ctrl-R with open pane

RSIperiod = Param("RSI p",2,2,30,1);

EMAperiod = Param("EMA p",5,3,10,1);

Percent = Param("ZIG %",3,1,15,1);

HHVperiod = Param("HHV p",6,2,10,1);

NumLine = Param("Num Lines",2,1,20,1);


//Base = RSI(RSIperiod);

//Base = EMA(RSI(RSIperiod),EMAperiod);
//base = CCI(14);
Base = DEMA(RSI(RSIperiod),EMAperiod);

GraphXSpace=0.5;


//Plot(EMA(C, 10), "EMA-10", colorRed, styleLine|styleThick|styleNoRescale);
//Plot(EMA(C, 20), "EMA-20", colorBlue, styleLine|styleThick|styleNoRescale);
//Plot(EMA(C, 50), "EMA-50", colorBlack, styleLine|styleThick|styleNoRescale);

pp	=	(H + L + C)/3;
//Plot(EMA(Ref(pp, -1), 3), "EMA pp", colorWhite, styleLine|styleNoRescale);

red = green = 0;
for( i = 1; i <= numline; i++ )

{

ResBase = LastValue(Peak(Base,Percent,i));

SupBase = LastValue(Trough(Base,Percent,i));

Plot(ValueWhen( ResBase==Base, HHV(H,HHVperiod) ), "Resist Level", colorRed,
styleLine|styleNoRescale);
Plot(ValueWhen( supbase==Base, LLV(L,HHVperiod) ), "Support Level", colorGreen,
styleLine|styleNoRescale);
red			=	IIf(resbase == base, 1, 0);
green		=	IIf(supbase == base, 1, 0);
}

r1[1] = 0;
s1[1] = 0;
for (i = 1; i <= numline; i++)
{
	resbase = LastValue(Peak(base, percent, i));
	supbase = LastValue(Trough(base, percent, i));

	r = SelectedValue(ValueWhen(resbase==base, HHV(H, HHVperiod)));
	s = SelectedValue(ValueWhen(supbase==base, LLV(L, HHVperiod)));


	r1[i] = r;
	r1[i+numline] = s;
//r1[i] = SelectedValue(ValueWhen(resbase==base, HHV(H, HHVperiod)));
//s1[i] = SelectedValue(ValueWhen(supbase==base, LLV(L, HHVperiod)));
}

r1	=	sort_Old(r1);
"R1-1:  " + WriteVal(r1[1], 1.2);
"R1-2:  " + WriteVal(r1[2], 1.2);
"R1-3:  " + WriteVal(r1[3], 1.2);

// find nearest three resistance lines (values above current high)
near_r1[1] = 0;
j = 1;
for (i = 1; i <= numline * 2; i++)
{
	if(r1[i] > SelectedValue(H))
	{
		near_r1[j] = r1[i];
		j = j + 1;
	}
}

"Linregslope of Close: " + WriteVal(LinRegSlope(C, 3), 1.2);
"\nCurrent High: " + WriteVal(H, 1.2);
"\nNearest Resistance Levels:\n";
"R1:	" + WriteVal(near_r1[1], 1.2);
"R2:	" + WriteVal(near_r1[2], 1.2);

// find nearest three nearest support lines (values below current low)
near_s1[1] = 0;
j = 1;
for(i=numline*2; i >= 1; i--)
{
	if (r1[i] < SelectedValue(L) AND r1[i] > 0)
	{
		near_s1[j] = r1[i];
		j++;
	}
}

"\nCurrent Low: " + WriteVal(L, 1.2);
"\nNearest Support Levels:\n";
"S1:	" + WriteVal(near_s1[1], 1.2);
"S2:	" + WriteVal(near_s1[2], 1.2);


// Test
/*
resbase	=	LastValue(Peak(base, percent, 1));
supbase 	=	LastValue(Trough(base, percent, 1));
sup1		=	ValueWhen(supbase==base, LLV(L, HHVperiod));
res1		=	ValueWhen(resbase==base, HHV(H, HHVperiod));
"Resbase:	" + WriteVal(resbase, 1.2);
"SUpbase: " + WriteVal(supbase, 1.2);
"Supp1: "		+ WriteVal(sup1, 1.2);
"Res1: " +	WriteVal(res1, 1.2);

resbase	=	LastValue(Peak(base, percent, 2));
supbase 	=	LastValue(Trough(base, percent, 2));
sup1		=	ValueWhen(supbase==base, LLV(L, HHVperiod));
res1		=	ValueWhen(resbase==base, HHV(H, HHVperiod));
"\n";
"Resbase2:	" + WriteVal(resbase, 1.2);
"SUpbase2: " + WriteVal(supbase, 1.2);
"Supp2: "		+ WriteVal(sup1, 1.2);
"Res2: " +	WriteVal(res1, 1.2);

resbase	=	LastValue(Peak(base, percent, 3));
supbase 	=	LastValue(Trough(base, percent, 3));
sup1		=	ValueWhen(supbase==base, LLV(L, HHVperiod));
res1		=	ValueWhen(resbase==base, HHV(H, HHVperiod));
"\n";
"Resbase3:	" + WriteVal(resbase, 1.2);
"SUpbase3: " + WriteVal(supbase, 1.2);
"Supp3: "		+ WriteVal(sup1, 1.2);
"Res3: " +	WriteVal(res1, 1.2);




// End test
"\n";
"Base: " + WriteVal(base, 1.2);
WriteIf(red, "Resistance", "");
WriteIf(green, "Support", "");
"\n";

*/

"\n\n";
Title = Name() + "; " + Date() + ": Support & Resistance Levels using RSI: " +
EncodeColor(colorGreen)+ "Support Levels are Green; "+EncodeColor(colorRed)+
"Resistance Levels are Red: "+EncodeColor(colorBlack)+"Number of lines of each
="+WriteVal(numline,1) +
EncodeColor(colorRed) + "\nEMA-10: "  + WriteVal(EMA(C, 10), 1.2) +
EncodeColor(colorBlue) + "\nEMA-20: " + WriteVal(EMA(C, 20), 1.2) +
EncodeColor(colorBlack) + "\nEMA-50: " + WriteVal(EMA(C, 50), 1.2) ;



SetChartBkGradientFill( ParamColor("BgTop", colorTeal),ParamColor("BgBottom",
colorLightGrey));


Hh = HHV(C,1) ;  
Ll = LLV(C,1) ;  




Hh = Ref(HHV(C,1),-1) ;  
Ll = Ref(LLV(C,1),-1); 

//Plot(Hh,"1 Bar High",colorGreen,styleLine);
//Plot(Ll,"1 Bar Low",colorRed,styleLine);


Plot(Close,"Close",
IIf(C > Hh, colorBrightGreen,
IIf(C < Ll, colorRed,
colorWhite)),
styleCandle|styleThick);

Buy =  C > Hh;
Sell = C < Ll;

Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy ); 

PlotShapes(shapeUpTriangle* Buy, colorGreen, 0, L );
PlotShapes(shapeDownTriangle* Sell, colorRed, 0, H );
"Jeevan's Advice: "+WriteVal(0);
"Bullish if Closing Above : "+WriteVal(Hh,1.01);
"Bearish if Closing Below: "+WriteVal(Ll,1.01);
"Current Close               : "+WriteVal(Close,1.0);


_SECTION_END();
1 Like

Thank you very much sir, you are very smart kind petrified. Gbu

The formula is very old and is using Reverse as a variable name, while it is now built-in function name that can't be used for variables. You have to rename conflicting names as described in the KB:

2 Likes

Thank you very much Tomazs for the help. Gbu