Need Rectification In This code

_SECTION_BEGIN("ooa");

GfxSetBkMode(1);

nol=27;

sk=((C-MA(C,nol))/MA(C,nol))*100;
Graph0=sk;
Graph0BarColor=IIf(sk>0,5,4);

_SECTION_BEGIN("hmw");


_SECTION_BEGIN("ema");
Lk = EMA(Close,22);
Plot (lk," ",colorBrightGreen,styleDots);


GfxSelectFont("tohomabold", Status("pxheight")/16);
GfxSetTextAlign( 6 );
GfxSetTextColor(ColorRGB(10,250,250));
GfxSetBkMode(0);
GfxTextOut( Name(), Status("pxwidth")/2, Status("pxheight")/10 );

cx=Param("cxposn",1085,0,1200,1);
cy=Param("cyposn",16,0,1000,1);
GfxSetBkColor(ColorRGB(200,50,100));
GfxSelectFont( "tohomabold",20,98, False);
GfxSetTextColor( colorYellow);
GfxSetTextColor( ColorHSB( 100, 10, 400) );
GfxTextOut("LTP. "+C+" ", cx, cy );

_SECTION_END();

_SECTION_BEGIN("Title");

DDayO = TimeFrameGetPrice("O", inDaily);
DHiDay = TimeFrameGetPrice("H", inDaily);
DLoDay = TimeFrameGetPrice("L", inDaily);
gfr = TimeFrameGetPrice("C", inDaily, -1);//close


Title = EncodeColor(colorWhite)+" * AR TRADING SYSTEM * "+EncodeColor(ColorRGB(220,10,150)) +" "+ Interval(2) + " " + Date() +
EncodeColor(ColorRGB(200,150,120)) + " \n Open " + O +
", High : " + H +
", Low : " + L+ EncodeColor(colorGreen) +
" * Prevvious Day Close : " + EncodeColor(colorGreen) + gfr +EncodeColor(colorYellow)+
"\n ToDay Open : " +DDayO + " High : " +DHiDay + " Low : "+ DLoDay;
_SECTION_END();



Col_cci = IIf(CCI(8) > 5, colorBrightGreen,IIf(CCI(8) <-5,colorRed,IIf(CCI(8) > Ref(CCI(8),-1),colorBrightGreen,colorDarkRed)));
HaClose =EMA((O+H+L+L+C)/5,3);
HaOpen = AMA( Ref( HaClose, -1 ), 0.5 );
HaHigh = Max( H, Max( HaClose, HaOpen ) );
HaLow = Min( L, Min( HaClose, HaOpen ) );
PlotOHLC( HaOpen, HaHigh, HaLow, HaClose,"" , Col_cci, styleCandle| styleNoLabel );

_SECTION_END();




_SECTION_BEGIN("Background Color");

BKswitch = ParamToggle("Background Color","On,Off");

OUTcolor = ParamColor("Outer Panel Color",colorBlack);
INUPcolor = ParamColor("Inner Panel Upper",colorGrey40);
INDNcolor = ParamColor("Inner Panel Lower",colorBlack);
TitleColor = ParamColor("Title Color ",colorBlack);

if (NOT BKswitch)
{
SetChartBkColor(OUTcolor); // color of outer border
SetChartBkGradientFill(INUPcolor,INDNcolor,TitleColor); // color of inner panel
}
_SECTION_END();
_SECTION_BEGIN("");




SetBarsRequired(100000,0);
GraphXSpace = 15;

ea = EMA (C,10);
eb = EMA (C,20);
SetBarFillColor( IIf( ea > eb, colorGreen, colorRed ) );

Buy = ea > eb AND TimeNum() > 092000 AND TimeNum() < 150000;
Sell = eb > ea OR TimeNum() > 150000;
Short = 0;
Cover = 0;
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short = ExRem(Short,Cover);
Cover = ExRem(Cover,Short);


SetTradeDelays(1,1,1,1);

Factor=Param("Factor",4,1,10,1);
Pd=Param("ATR Periods",10,1,100,1);
Up=(H+L)/2+(Factor*ATR(Pd));
Dn=(H+L)/2-(Factor*ATR(Pd));
iATR=ATR(Pd);
TrendUp=TrendDown=Null;
trend[0]=1;
changeOfTrend=0;
flag=flagh=0;

for (i = 1; i <BarCount; i++) 
{
TrendUp = Null;
TrendDown = Null;

trend=1;


if (Close>Up[i-1]) 
{
trend=1;
if (trend[i-1] == -1) changeOfTrend = 1;

}
else if (Close<Dn[i-1]) {
trend=-1;
if (trend[i-1] == 1) changeOfTrend = 1;
}
else if (trend[i-1]==1) {
trend=1;
changeOfTrend = 0;
}
else if (trend[i-1]==-1) {
trend=-1;
changeOfTrend = 0;
}

if (trend<0 && trend[i-1]>0) {
flag=1;
}
else {
flag=0;
}

if (trend>0 && trend[i-1]<0) {
flagh=1;
}
else {
flagh=0;
}

if (trend>0 && Dn<Dn[i-1])
{
Dn=Dn[i-1];
}

if (trend<0 && Up>Up[i-1])
{ Up=Up[i-1];
}

if (flag==1)
{ Up=(H+L)/2+(Factor*iATR[i]);;
}
if (flagh==1)
{ Dn[i]=(H[i]+L[i])/2-(Factor*iATR[i]);;
}
if (trend[i]==1) {
TrendUp[i]=Dn[i];
if (changeOfTrend == 1) {
TrendUp[i-1] = TrendDown[i-1];
changeOfTrend = 0;
}
}
else if (trend[i]==-1) {
TrendDown[i]=Up[i];
if (changeOfTrend == 1) {
TrendDown[i-1] = TrendUp[i-1];
changeOfTrend = 0;
}
}
}



Buy = trend==1;
Sell=trend==-1;

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


BuyPrice=ValueWhen(Buy,C);
SellPrice=ValueWhen(Sell,C);
ShortPrice=ValueWhen(Short,C);
CoverPrice=ValueWhen(Cover,C);




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(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);

TrendSL=IIf(trend==1,TrendUp,TrendDown);

for(i=BarCount-1;i>1;i--)
{
if(Buy[i] == 1)
{
entry = C[i];
sig = "BUY";
sl = TrendSL[i];
tar1 = entry + (entry * .0050);
tar2 = entry + (entry * .0092);
tar3 = entry + (entry * .0179);

bars = i;
i = 0;
}
if(Sell[i] == 1)
{
sig = "SELL";
entry = C[i];
sl = TrendSL[i];
tar1 = entry - (entry * .0050);
tar2 = entry - (entry * .0112);
tar3 = entry - (entry * .0212);


bars = i;
i = 0;
}
}
Offset = 20;
Clr = IIf(sig == "BUY", colorLime, colorRed);
ssl = IIf(bars == BarCount-1, TrendSL[BarCount-1], Ref(TrendSL, -1));
sl = ssl[BarCount-1];

Plot(LineArray(bars-Offset, tar1, BarCount, tar1,1), "", Clr, styleLine|styleDots, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar2, BarCount, tar2,1), "", Clr, styleLine|styleDots, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar3, BarCount, tar3,1), "", Clr, styleLine|styleDots, Null, Null, Offset);

Plot(LineArray(bars-Offset, sl, BarCount, sl,1), "", colorDarkRed, styleLine|styleLine, Null, Null, Offset);
//Plot(LineArray(bars-Offset, entry, BarCount, entry,1), "", colorGreen, styleLine|styleLine, Null, Null, Offset);

for (i=bars; i <BarCount;i++)
{
PlotText(""+sig+"@"+entry, BarCount+1,entry,Null,colorBlue);
PlotText("T1@"+tar1,BarCount+3,tar1,Null,Clr);Plot Text("T2@"+tar2,BarCount+3,tar2,Null,Clr);PlotText ("T3@"+tar3,BarCount+3,tar3,Null,Clr);

}

messageboard = ParamToggle("Message Board","Show|Hide",1);
if (messageboard == 1 )
{
GfxSelectFont( "Tahoma", 13, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );

if ( sig =="BUY")
{
GfxSelectSolidBrush( colorGreen ); // this is the box background color
}
else
{
GfxSelectSolidBrush( colorRed ); // this is the box background color
}
pxHeight = Status( "pxchartheight" ) ;
xx = Status( "pxchartwidth");
Left = 1100;
width = 310;
x = 5;
x2 = 290;

y = pxHeight;

GfxSelectPen( colorWhite, 4); // broader color
GfxRoundRect( x, y - 165, x2, y , 160, 90 ) ;
GfxTextOut( ( "* AR TRADING SYSTEM * "),141,y-160);
GfxTextOut( (" "),130,y-160);
GfxTextOut( ("Last " + sig + " Signal came " + (BarCount-bars-1) * Interval()/60 + " mins ago"), 148, y-140) ; // The text format location
GfxTextOut( ("" + WriteIf(sig =="BUY",sig + " @ ",sig + " @") + " : " + entry), 130, y-120);
GfxTextOut( ("STOP LOSS : " + sl + " (" + WriteVal(IIf(sig == "SELL",entry-sl,sl-entry), 2.2) + ")"), 130, y-100);
GfxTextOut( ("TGT:1 : " + tar1), 130, y -80);
GfxTextOut( ("TGT:2 : " + tar2), 130,y-60);
GfxTextOut( ("TGT:3 : " + tar3), 130,y-40);
GfxTextOut( ("Current P/L * : " + WriteVal(IIf(sig == "BUY",(C-entry),(entry-C)),2.2)), 130, y-22);;

}
_SECTION_END();




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

shape = Buy * shapeUpArrow + Sell * shapeDownArrow ;

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);
//PlotShapes( shape, IIf( Buy, colorGreen, colorRed ),0, IIf( Buy, Low, High ) );
dist = 2.5*ATR(5);
for( i = 0; i < BarCount; i++ ) {
if( Buy[i] ) PlotText( "Buy\n@" + Close[i], i, Low[i] - dist[i], colorWhite );
if( Sell[i] ) PlotText( "sell\n@" + Close[i], i, Low[i] + dist[i], colorWhite );
}


_SECTION_BEGIN("ema");
P = ParamField("Field");
Type = ParamList("Type", "Weighted,Simple,Exponential,Double Exponential,Tripple Exponential,Wilders");

Periods89 = Param("Periods180", 180, 2, 300 );
Displacement2 = Param("Displacement2", 2, -50, 50 );
Plot( EMA( P, Periods89 ),
_DEFAULT_NAME(), colorWhite, styleDots, 0, 0, Displacement2 );

_SECTION_END();
rjl=Cross(Lk,tar1);
gol=Cross(tar1,Lk );

PlotShapes(shapeHollowStar*rjl,colorAqua,0,H,-20);
PlotShapes(shapeHollowStar*gol,colorViolet,0,L,20) ;
_SECTION_END();

jl = EMA(Close,13);





rfw=Cross(Lk,jl);
bve=Cross(jl,Lk);



dist =1.2*ATR(5);

for( i = 0; i < BarCount; i++ )
{

if( bve[i] ) PlotText( "AB\n" , i, L[ i ]-dist[i], colorWhite,colorDarkBlue );
if( rfw[i] ) PlotText( "AS\n" , i, H[ i ]+dist[i], colorWhite, colorRed );
}

PlotShapes(shapeStar*bve,colorWhite,0,H,-90);
PlotShapes(shapeStar*rfw,colorWhite,0,L,20);

_SECTION_BEGIN("day");
TimeFrameSet( inDaily ); // switch now to dayily

Oo=EMA(C,3);

TimeFrameRestore(); // restore time frame to original

tb=EMA(gfr,3);



Plot( TimeFrameExpand( Oo, inDaily),"", colorYellow,10+30+4| styleNoLabel);


_SECTION_END();


_SECTION_BEGIN("Volume");

cx = Param("cxposn",476,0,1200,1);
cy = Param("cyposn", 500,0,1000,10 );

GfxSelectFont( " Arial ", 14, 98, False );
GfxSetTextColor(ColorRGB(10,250,250));

GfxTextOut("Volume : " +Volume+ "", cx +20,cy +50);





_SECTION_END( );




_SECTION_BEGIN("tom");
function GetSecondNum()
{
Time = Now( 4);
Seconds = int( Time % 100 );
Minutes = int( Time / 100 % 100 );
Hours = int( Time / 10000 % 100 );
SecondNum = int( Hours * 60 * 60 + Minutes * 60 + Seconds );
return SecondNum;
}
RequestTimedRefresh( 1 );
TimeFrame = Interval();
SecNumber = GetSecondNum();
Newperiod = SecNumber % TimeFrame == 0;
SecsLeft = SecNumber - int( SecNumber / TimeFrame ) * TimeFrame;
SecsToGo = TimeFrame - SecsLeft;

x=Param("xposn",99,0,1000,1);
y=Param("yposn",40,0,1000,1);
//GfxRoundRect( x+615, y+530, x+738, y+499, 0,0 );
//GfxSelectSolidBrush( ColorRGB( 230, 230, 230 ) );
//GfxSelectPen( ColorRGB( 203, 25, 23 ), 3 );
if ( NewPeriod )
{
//GfxSelectSolidBrush( colorYellow );
//GfxSelectPen( colorYellow, 2 );
//Say( "New period" );
}

GfxSetBkMode(1);
GfxSelectFont( "Arial", 13, 800, False );
GfxSetTextColor(ColorRGB(220,10,150) );
GfxTextOut( "Timeleft"+" : "+NumToStr( SecsToGo, 1.0 ), x+674, y+507 );

_SECTION_END( );




_SECTION_BEGIN("sys");

x=Param("xposn",315,0,1000,1);
y=Param("yposn",576,0,1000,1);

GfxSetTextColor(ColorRGB(10,250,250));
GfxTextOut( ( " Develop By "),1150,y-45);
GfxSetTextColor(ColorRGB(10,250,250));
GfxTextOut( ( "Fu2 Trading SYSTEM * "),1150,y-25);






_SECTION_END();



_SECTION_BEGIN("Ribbon");
uptrend=PDI()>MDI()AND Signal()<MACD();
downtrend=MDI()>PDI()AND Signal()>MACD();
Plot( 1, /*efines the height of the ribbon in percent of pane width */"ribbon",
IIf( uptrend, colorLime, IIf( downtrend, colorRed,IIf(Signal()<MACD(), colorLightGrey, colorLightGrey ))), /* choose color */
styleOwnScale|styleArea|styleNoLabel, -.05,50 );
_SECTION_END();

@suvoge why don’t use this as a good exercise to start learning AmiBroker AFL?

The code is full of mistakes, not properly formatted, SECTIONS not properly closed, repeated/duplicated "system code, etc.
In short IMHO a HUGE MESS!

To learn, start separating each section in its own formula file (add where needed the missing section end), format it properly (“Prettify Selection”), check the code with the “Verify Syntax” button and try to fix the mistakes one by one. If the code you are editing is related to an indicator, when fixed you can press the “Apply” section to see it on a chart. Rinse and repeat until you get it right.
Only then, if you are completely lost, come back and ask help about specific problems.

If all the above is totally unknown to you, please, start reading the reference guide:
https://www.amibroker.com/guide/

In particular, read/do the Tutorial and especially study the AFL language specs:
https://www.amibroker.com/guide/AFL.html

3 Likes

@beppe. Thank you. Actually, I’m just starting to use Amibroker. And try to learn it properly.

@suvoge very good! :smiley:

Here is another thread that will give you many useful suggestions to learn the AFL in the proper way:

1 Like