Convert Amibroker Code (Heiken Ashi) to MT4, MT5
_SECTION_BEGIN("Heikin Ashi (Modify)");
GrpPrm=Param("Graphic Space",70,0,150,2);
GraphXSpace=GrpPrm;
r1 = Optimize("MACD Fast avg", 5, 4, 13, 2 );
r2 = Optimize("MACD Slow avg", 10, 6, 13, 2 );
r3 = Optimize("Signal avg", 5, 4, 13, 2 );
Prd1=Optimize("ATR Period", 8,4,13,2);
Prd2=Optimize("Look Back (Bar)",7,4,13,2);
Buyperiods=Optimize("Breakout periods",5,1,6,1);
Sellperiods=Optimize("Exit Breakout",5,1,6,1);
EMAday =Optimize("EMAday",5,1,3,1);
MyATRL = HHV(LLV(L,Prd1)+ATR(Prd1),Prd2);
MATRH = LLV(HHV(H,Prd1)-ATR(Prd1),Prd2);
MyClose= EMA((Open+High+Low+Close)/4,3) ;
MyOpen = EMA((Ref(Open,-1) + Ref(MyClose,-1))/2,3);
Temp = Max(High, MyOpen);
MyHigh = EMA(Max(Temp, MyClose),3);
Temp = Min(Low,MyOpen);
MyLow = EMA(Min(Temp, MyClose),3);
m1=MACD(r1,r2);
s1=Signal(r1,r2,r3);
Uptrend = C>MyATRL AND (m1>0 AND m1>s1) ;
Downtrend = C<MyATRL AND (m1<0 AND m1<s1) ;
Sidewayup = (m1<0 AND m1>s1);
Sidewaydw = (m1>0 AND m1<s1);
mycolor=IIf(m1<0 AND m1>s1, 2,IIf(m1>0 AND m1>s1,5,IIf(m1>0 AND m1<s1,2,4)));
ColorHighliter = myColor;
SetBarFillColor( ColorHighliter );
barColor=IIf(C>MyATRL,5,IIf(C < MATRH,4,2));
PlotOHLC( IIf(MyOpen<MyClose, MyOpen,MyClose),MyHigh ,MyLow ,IIf(MyOpen<MyClose, MyClose,MyOpen), "Heikin Ashi (Modify)", barColor, styleNoTitle | styleCandle);
_SECTION_END();
_SECTION_BEGIN("Breakout Setting");
Buy= C>Ref(HHV(MyHigh,Buyperiods),-1) ;
Sell= C<Ref(LLV(MyLow,Sellperiods),-1);
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);
Cover = Buy AND ADX(13) > 18 AND ROC(ADX(13),1)>1;
Short = Sidewaydw ;
// Short = Cross(MACD(),Signal());
PlotShapes( IIf( Buy, shapeUpTriangle, shapeNone ), colorBrightGreen, layer = 0,yposition = MyLow, offset = -30);
PlotShapes( IIf( Buy, shapeHollowUpTriangle, shapeNone ), colorWhite, layer = 0,yposition = MyLow, offset = -30);
PlotShapes( IIf( Sell, shapeDownTriangle, shapeNone ), colorRed, layer = 0, yposition = MyHigh, offset = -30);
PlotShapes( IIf( Sell, shapeHollowDownTriangle, shapeNone ), colorWhite, layer = 0, yposition = MyHigh, offset = -30);
_SECTION_END();