How to code turtle system's ATR pyramiding in Amibroker?

Turtle System AFL Code

//------------------------------------------------------------------------------
//
// zerodha  
//
//------------------------------------------------------------------------------
//
//  Trend trading system.
//  Strengths: volatility-based.
//  Weaknesses: lag and since volatility increases at the end of a trend, traders exits early.
//  Description: Indicator is used to keep track of a trade. Indicator shows a orange circle
//               where the exit would have taken place. Once a stop is hit, it waits for the 
//               next entry signal (short or long). Use on DAILY values only.
//  Algorithm: Lebeau recommends that an exits hangs from the HHV (long) or LLV (short)
//             since the trade was triggered. Some traders use the highest close as the base 
//             for hanging the exit.
//------------------------------------------------------------------------------

//=============================SETUP======================================

pds=20;
MAFAST = EMA(Close, 20);
MASLOW = EMA(Close, 40);

DonchianUpper =HHV(Ref(H,-1),pds); // Highest high value of highs in last 20 periods
DonchianLower = LLV(Ref(L,-1),pds); // Lowest low value of low in last 20 periods
DonchianMiddle = (DonchianUpper+DonchianLower)/2;

UpTrend = C > ( LLV( L, 20 ) + 2 * ATR( 10 ) ) AND EMA(Close,20) > EMA(Close,40); 
DnTrend = C < ( HHV( H, 20 ) - 2 * ATR( 10 ) ) AND EMA(Close,20) < EMA(Close,40); 
Color = IIf( UpTrend, colorBlue, IIf( DnTrend, colorOrange, colorGrey50 ));

// Plots a 20 period Donchian channel

Plot( C, "Price", Color, styleBar | styleThick );
Plot(DonchianUpper,"DU", ParamColor( "DU Color", colorBlue ), ParamStyle("DU Style", styleLine));
Plot(DonchianMiddle,"DM",ParamColor( "DM Color", colorGreen ), ParamStyle("DM Style", styleNoLine));
Plot(DonchianLower,"DL",ParamColor( "DL Color", colorRed ), ParamStyle("DL Style", styleLine));

//=============================TRIGGERS AND ENTRIES======================================

Buy = High > Ref(HHV(High, 20), -1) AND MAFAST > MASLOW ; // Enters long trade
//Sell = Low < Ref(LLV(Low, 10), -1) ;                   // Exits long trade
Short = Low < Ref(LLV(Low, 20), -1) AND MAFAST < MASLOW ; // Enters short trade
//Cover = High > Ref(HHV(High, 10), -1) ;                // Exits short trade

//=============================EXITS======================================

_SECTION_BEGIN("Chandelier Exit");

SetBarsRequired(50,50);

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

stopArray = Null;
atrArray = ATR(ATRPeriods);
HHArray = Null;
LLArray = Null;
exitArray = Null;
trendDirection = 0;
for ( i=0; i < BarCount; i++ )
{
	if( Short[i] )
		{//we just triggered a short trade. Set up starting values
		stopArray[i] = Low[i] + (Multiple * atrArray[i]);
		LLArray[i] = Low[i]; //initialize the lowest low array
		trendDirection = 0-1; //going short. Base bar.
		}

	if( Buy[i] )
		{//we just triggered a long trade. Set up starting values
		stopArray[i] = High[i] - (Multiple * atrArray[i]);
		HHArray[i] = High[i]; //initialize the highest high array
		trendDirection = 1;//going long. Base bar flag is now set.
		}

	exitArray[i] = 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[i] < stopArray[i-1] )
				{//stop got hit. Reset the trade.
				trendDirection = 0; //OK. wait until we trigger another trade.
				exitArray[i] = 1;
				}
			else
				{//keep track of the HHV since trade was entered.
				if( High[i] > HHArray[i-1] )
					HHArray[i] = High[i];
				else
					HHArray[i] = HHArray[i-1];

				//Compute the stop based on the HHV.
				stopArray[i] = HHArray[i] - (Multiple * atrArray[i]);
				}
			}
		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[i] > stopArray[i-1] )
				{//our stop got hit. Reset the trade.
				trendDirection = 0;
				exitArray[i] = 0-1;
				}
			else
				{//keep track of the LLV since trade was entered.
				if( Low[i] < LLArray[i-1] )
					LLArray[i] = Low[i];
				else
					LLArray[i] = LLArray[i-1];

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

		trendDirection = trendDirection-1;
		}

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

PlotShapes( Buy*shapeUpArrow, colorGreen, 0, Low );
PlotShapes( Short*shapeDownArrow, colorRed, 0, High );
PlotShapes( abs(exitArray)*shapeHollowCircle, colorOrange, 0, ValueWhen(stopArray, stopArray,1), 0 );
Plot( stopArray, "Chand", ParamColor( "Chand Color:", colorYellow ), ParamStyle("Chand Style", styleDashed)  );

//_N(Title = "LLArray: " + LLArray + ", HHArray:" + HHArray +", stopArray"+stopArray);

//PlotShapes( shapeCircle * Sell, colorRed );
//PlotShapes( shapeCircle * Cover, colorGreen );
_SECTION_END();

is this erodha code or amibroker??

dear sir ,
how to write (swing+zig ) combined afl code.

no periods=15;
zig=0.5;
res=HHV(H-zig*(no),no);
sup=LLV(L+zig*(no),no);