ami Buy Sell Signal Error

#1
Im getting a error in this afl code plz anybody help me out.....

// Trade simulation. Helps you to record your real trades and test new trading approaches without any programming skills.
// Copyright Abnash Singh 20th February 2012
// You can download and use this AFL, but do not make any changes in the copyright information, even if you make changes in the code
// Upto 9 trades can be plotted in any time frame.
// Once installed on Amibroker insert the vertical Study lines with labels b1, b2 etc for Buy signals AND s1, s2 etc for Short signals AND
// e1, e2 etc for the exit signals. The AFL automatically recognises the context of the exit for a Buy OR Sell Signal.
// Remember that the Buy AND Sell signals are generated one bar after the vertical position of the Study line.
// This has no practical impact on entering your trade signals.
// Next you can modify the trade entry AND exit values, if required in the parameter windows AND you have your trade journal ready!
// To re-use the AFL for another trading session, please remember to delete all the existing studies,
// by right clicking in the display area AND selecting delete al studies AND resetting the parameter window.

SetBarsRequired(1000, 0 );
setbuy = ParamTrigger("Buy", "Buy" );
setsell = ParamTrigger("Sell", "Sell" );
setshort = ParamTrigger("Short", "Short" );
setcover = ParamTrigger("Cover", "Cover" );
clear = ParamTrigger("Clear", "Clear" );

clearall = ParamTrigger("Clear All", "Clear All" );


showcandlechart=ParamList("Show Candle chart","YES|NO");

stylecndl=ParamList("Bar/Candle chart","BAR|CANDLE");
BarLum1 = Param("Bar Color Intensity", 8, 0, 10,01);
LineColor = ColorBlend(ColorRGB(50,60,60), ColorRGB(50,60,60), BarLum1);
UpBarColor = ColorBlend(ColorRGB(5,36,5), ColorRGB(10,75,10), BarLum1);
DnBarColor = ColorBlend(ColorRGB(36,5,5), ColorRGB(75,10,10), BarLum1);


tp1=Param("Trade 1 price ",0,0,10000);
ep1=Param("Exit 1 price ",0,0,10000);
tp2=Param("Trade 2 price ",0,0,10000);
ep2=Param("Exit 2 price ",0,0,10000);
tp3=Param("Trade 3 price ",0,0,10000);
ep3=Param("Exit 3 price ",0,0,10000);
tp4=Param("Trade 4 price ",0,0,10000);
ep4=Param("Exit 4 price ",0,0,10000);
tp5=Param("Trade 5 price ",0,0,10000);
ep5=Param("Exit 5 price ",0,0,10000);
tp6=Param("Trade 6 price ",0,0,10000);
ep6=Param("Exit 6 price ",0,0,10000);
tp7=Param("Trade 7 price ",0,0,10000);
ep7=Param("Exit 7 price ",0,0,10000);
tp8=Param("Trade 8 price ",0,0,10000);
ep8=Param("Exit 8 price ",0,0,10000);
tp9=Param("Trade 9 price ",0,0,10000);
ep9=Param("Exit 9 price ",0,0,10000);


bi = BarIndex();
qty = LastValue( bi );

y = Year();
m = Month();
d = Day();
r = Hour();
e = Minute();

sby = SelectedValue( y );
sbm = SelectedValue( m );
sbd = SelectedValue( d );
sbr = SelectedValue( r );
sbe = SelectedValue( e );


qty = LastValue( bi );

Varname = Name()+ sby + sbm + sbd + sbr + sbe;


if( setbuy )
{
StaticVarSet( Varname, 1 );
}

if( setsell )
{
StaticVarSet( Varname, -1 );
}

if( setshort )
{
StaticVarSet( Varname, -2 );
}

if( setcover )
{
StaticVarSet( Varname, 2 );
}

if( clear )
{
StaticVarRemove( Varname );
}

if( clearall )
{
for( i = 0; i < qty; i++ ) StaticVarRemove( Name()+y + m + d + r + e);

}

Buy = Sell = Short = Cover = exit =0;




profit=sessprofit=priceatbuy=priceatshort=priceatexit=tradecount=lastsig=pricetouse=maxprofit=lastmax=0;


shape=xp=ep=cp=0;
tradeline=Null;
BarColor = IIf(Close > Open, UpBarColor, DnBarColor);
SetBarFillColor(BarColor);
avp=(O+C)/2;//you can choose to have avp=c instead of average
if (stylecndl=="BAR")stylec=styleBar;
else stylec=styleCandle;
if (showcandlechart=="YES")
{

Plot(C, "Close", colorWhite, styleNoTitle | stylec);
}
avp=(O+C)/2;
//ATR Stop begin
Multiple = Param( "Multiple", 3, 0.5, 10, 0.1 ); // How many ATR's to be allowed below the highest high since latest "buy" bar
ATRPeriods = Param( "ATR Periods", 20, 1, 50, 1 ); // How many periods to use for the ATR
Showtarget = ParamList ("Show Target Milestones ","Yes|No");
Step = Param( "Step for target milestones", 20, 0,50, 10 );// Step for profit progress, default is 20 points.

stopArray = Null;
atrArray = ATR( ATRPeriods );
HHArray = Null;
LLArray = Null;
exitArray = Null;
trendDirection = 0;
//ATr Stop end

dmy=ATR(10);
for (i=1;i<BarCount-1;i++)
{
sig = StaticVarGet(Name()+y + m + d + r + e);
if( sig == 1 ) Buy[ i ] = True;
if( sig == -2 ) Short[ i ] = True;
if (sig==-1 OR sig==2)exit=True;


if (Lastsig!=0 AND !Buy AND !Short)tradeline=tradeline[i-1];
if (Buy OR Short)
{
tradecount=tradecount+1;
if (tradecount==1){xp=tp1;ep=ep1;}
else if (tradecount==2){xp=tp2;ep=ep2;}
else if (tradecount==3){xp=tp3;ep=ep3;}
else if (tradecount==4){xp=tp4;ep=ep4;}
else if (tradecount==5){xp=tp5;ep=ep5;}
else if (tradecount==6){xp=tp6;ep=ep6;}
else {xp=0;ep=0;}
}
if (Buy)
{
// we just triggered a long trade. Set up starting values
stopArray = High - ( Multiple * atrArray );
HHArray = High; // initialize the highest high array
trendDirection = 1; // going long. Base bar flag is now set.


if (xp>0)priceatbuy=tradeline=xp;
else priceatbuy=tradeline=avp;//defaulting price to average price.
if (Lastsig==-1)
{
profit=priceatshort-priceatbuy;
sessprofit=sessprofit+profit;
PlotText(WriteVal(profit,1.0),i,H+10,colorYellow);


}
Lastsig=1;
}
if (Short)
{

// we just triggered a short trade. Set up starting values
stopArray = Low + ( Multiple * atrArray );
LLArray = Low; // initialize the lowest low array
trendDirection = 0 - 1; // going short. Base bar.

// PlotText("1",i,H+10,colorWhite);
if (xp>0)priceatshort=tradeline=xp;
else priceatshort=tradeline=avp;//defaulting price to average price.
if (Lastsig==1)
{
profit=priceatshort-priceatbuy;
sessprofit=sessprofit+profit;
PlotText(WriteVal(profit,1.0),i,H+2*dmy,colorYellow);
}
Lastsig=-1;
}
if (Lastsig==0)tradeline=Null;
if (exit)
{
if (ep>0)priceatexit=ep;
else priceatexit=avp;
if (Lastsig==1)
{
profit= priceatexit-priceatbuy;
Sell=1;
}
else if (Lastsig==-1)
{
profit= priceatshort-priceatexit;
Cover=1;
}
sessprofit=sessprofit+profit;
PlotText(WriteVal(profit,1.0),i,H+2*dmy,colorYellow);
Lastsig=profit=0;
}
if (Lastsig==1)Cp=avp-priceatbuy;
else if (Lastsig==-1)Cp=priceatshort-avp;

exitArray = 0;

if ( trendDirection > 0 )
{
// keep track of the highest high, highest close, highest low, etc..
if ( trendDirection > 1 )
{
// We are in the trade (2nd day or later)
if ( Low < stopArray[i-1] OR exit)
{
//stop got hit. Reset the trade.
trendDirection = 0; // OK. wait until we trigger another trade.
exitArray = 1;
if (Lastsig==1)
{
if (ep>0)pricetouse=ep;
else pricetouse=avp;
profit=pricetouse-priceatbuy;
sessprofit=sessprofit+profit;
PlotText(WriteVal(profit,1.0),i,H+2*dmy,colorYellow);
}
Lastsig=0;
}
else
{
// keep track of the HHV since trade was entered.
if ( High > HHArray[i-1] )
HHArray = High;
else
HHArray = HHArray[i-1];

// Compute the stop based on the HHV.
stopArray = HHArray - ( Multiple * atrArray );
}
}

trendDirection = trendDirection + 1;
}

if ( trendDirection < 0 )
{
// keep track of the lowest low, lowest close, lowest high, etc..
if ( trendDirection < 0 - 1 )
{
// We are in the trade (2nd day or later)
if ( High > stopArray[i-1] OR exit )
{
// our stop got hit. Reset the trade.
trendDirection = 0;
exitArray = 0 - 1;
if (Lastsig==-1)
{
if (ep>0)pricetouse=ep;
else pricetouse=avp;
profit=priceatshort-pricetouse;
sessprofit=sessprofit+profit;
PlotText(WriteVal(profit,1.0),i,H+2*dmy,colorYellow);
}
Lastsig=0;
}
else
{
// keep track of the LLV since trade was entered.
if ( Low < LLArray[i-1] )
LLArray = Low;
else
LLArray = LLArray[i-1];

// Compute the stop based on the LLV.
stopArray = LLArray + ( Multiple * atrArray );
}
}

trendDirection = trendDirection - 1;
}

if ( trendDirection == 0 )
{
stopArray = 0;
LLArray = 0;
HHArray = 0;
}

if(Buy OR Short)Maxprofit=lastmax=0;
if (Cp>Maxprofit)Maxprofit=Cp;
//Profit milestones in steps of 20. Can be modified to be in steps of ATR's by replacing 20 with a variable ATR value
//Profits 2 contains the running profits. This can be used to devise a peak profit based exit.
if (exitarray==0 AND int(Maxprofit/step)*step>Lastmax AND Maxprofit>=step AND showtarget=="Yes")
{
Lastmax=int(Maxprofit/step)*step;
PlotText(WriteVal(int(Maxprofit/step)*step,1.0),i,H+2*ATRarray,colorYellow);
}





}


if (Lastsig!=0)sessprofit=sessprofit+Cp[i-1];

Plot(avp, "Mid", ColorRGB(120,120,120), styleNoTitle );
Plot(Tradeline, "Trade price", colorBlue );

shapebuy = IIf(Buy,shapeUpArrow,Null);
Shapesell= IIf(Sell,shapeHollowDownArrow,Null);
shapeshort = IIf(Short,shapeDownArrow,Null);
Shapecover= IIf(Cover,shapeHollowUpArrow,Null);

shape2= IIf(exit,shapeDownArrow,Null);
PlotShapes( shapeshort, colorRed, 0, High);
PlotShapes( shapebuy, colorGreen, 0, Low);
PlotShapes( shapesell, colorBlue, 0, High);
PlotShapes( shapecover, colorBlue, 0, Low);
PlotText(WriteVal(sessprofit,1.0)+"\n"+WriteVal(tradecount,1.0),i,H+2*dmy[BarCount-1],colorYellow);
PlotShapes( abs( exitArray )*shapeHollowCircle, colorYellow, 0, ValueWhen( stopArray, stopArray, 1 ), 0 );
Plot( IIf(stopArray!=0,stoparray,Null), "StopLine", ParamColor( "Stopline Color:", colorYellow ), ParamStyle( "Stop Style", styleDashed ) );
Title = Date()+" Trade Plotter "+ Interval(format=2)+" "+Name()+" O "+WriteVal(O,1.2)+" H "+WriteVal(H,1.2)+" L "+WriteVal(L,1.2)+" C "+WriteVal(C,1.2)+" Mid price " +WriteVal(avp,1.2)+EncodeColor(colorYellow)+" Trade Price " +WriteVal(tradeline,1.2);