This is a simple 5 EMA High-Low weekly trading system to identify the medium-term trend to follow till the end of the trend. Helps users to manage their positional medium-term trend bias.

Trading Rules
Timeframe : Weekly Timeframe
Buy when the candle closes above 5-EMA high period
Exit when the candle closes below 5-EMA low period
Buy and Sell Trading Logic is achieved in Amibroker with the following code block.
//Trading Logic
Buy = Cross(Close,EMA( High , par ));
Sell = Cross(EMA( Low , par ),Close);
//Remove excessive signals
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Amibroker’s AFL code had been designed to implement this system with Green Arrows in the charts indicating Buy Signal and the Red downward arrows indicating a sell signal.
/* Plot Buy and Sell Signal Arrows */
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);
Both the weekly and Daily charts are shown with buy/sell signals. Just like any other trend-following system 5 EMA(High-Low) also works badly when the trend is sideways and produces more mixed signals where there is a strong trend the signals are good and could generate good potential returns.
A Simple 5 EMA High-Low Weekly Trading System – Amibroker AFL Code
_SECTION_BEGIN("5 EMA High-Low");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( Close, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
par = Param("Length",5,1,200,1);
//Trading Logic
Buy = Cross(Close,EMA( High , par ));
Sell = Cross(EMA( Low , par ),Close);
//Remove excessive signals
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
/* Plot Buy and Sell Signal Arrows */
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);
//Plot EMA High-Low Lines
Plot( EMA( Low,5), "EMA-LOW",ParamColor("Color1", colorBlue ),styleThick);
Plot( EMA( High,5), "EMA-High",ParamColor("Color2", colorBlue ),styleThick);
_SECTION_END();
Little modification is required. Please draw the 5EMA (High Low) Band.
I had added in the coding part alone
Dear RajI have just modified your afl i.e.Buy = Cross(Close,EMA( Low , 5 ));Sell = Cross(EMA( High , 5 ),Close);and found more meaningful. Please do comment on this modification.
Its adds more value to the trading systemin minimizing the losses and producing avalueable system.
One more modification is required. Just open daily Nifty Chart and just watch 16-12-2009. it has given false signal. I do not know how to omit it but this type of false signal can be omitted.If possible then it will be great trading system.Thanks
Iam sorry iam not getting any false signal on 16-12-2009
More modification done in Buy sell.Buy = Cross(Close,EMA( Low , 5 ))OR Cross(Close,EMA( High , 5 )); Sell = Cross(EMA( High , 5 ),Close)OR Cross(EMA( Low , 5 ),Close);It works fine in hourly and daily chart. I have added your earlier Buy Sell signal conditionally because if turn around happened within the band then this conditional extension is required.
@ShyamWe should not try to create more buy/sell signals.As this would create a mess. The scope of creating a buy/sell signal is to identify turns earlier and to generate potential profits. If you include 5 EMA signals also then it would probably create a mess and finally ends in confusion(i.e should we have to believe this signal or not)
if the signal density is high then your profit potential is very low
hi thanks for afl. pls explain how to trade with help of this afl. on which scripts gives good results?
Dinesh,
I tried for hourly, Daily and Weekly yielding good results. to know how to trade this afl just visit this post Simple Rules to Trade Using 5 EMA(LOW-HIGH)
Sir,
This code is not working. Giving the error at 1st & Last line. Error 31. Syntax error, expecting ‘)’ or’,’
Regards,
Dipak
Dipak,
It works fine for me. Its all the basic codings. So it should work in all versions of amibroker too
Hello Rajendran,
Please paste again full AFL with modification suggested by above members.
Or I should use below code.
=======================================================================
_SECTION_BEGIN(“5 EMA High-Low”);
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat(“{{NAME}} – {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}”, O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( Close, “Close”, ParamColor(“Color”, colorBlack ), styleNoTitle | ParamStyle(“Style”) | GetPriceStyle() );
Buy = Cross(Close,EMA( Low , 5 ));
Sell = Cross(EMA( High , 5 ),Close);
PlotShapes(IIf(Sell==1, shapeDownArrow, shapeNone), colorRed, 0,High, Offset=-20);
PlotShapes(IIf(Buy==1, shapeUpArrow , shapeNone), colorGreen, 0,Low, Offset=-20);
Plot( EMA( Low,5), “5 EMA LOW”,ParamColor(“Color”, colorBlue ),styleNoRescale);
Plot( EMA( High,5), “5 EMA High”,ParamColor(“Color”, colorBlue ),styleNoRescale);
_SECTION_END();
=======================================================================
Thanks,
Aliasgar
pls help I am getting error 31 syntax error,expecting’)’or”
Hello Rajendran,
I want plot buy/sell signal for current day only , i dont’t want signals for previous days.
pls help me to plot buy/sell signal only for current day.
Awaiting for your response.