Simple Coding Help - No Promise.

Ok, by modifying the definitions of the variables, I got at least the last period.
But still the previous period remains at 0 and I'm stil far from the whole array

_SECTION_BEGIN("TrendBars");
E20big = False;
EMA20 = EMA(C,20);
EMA60 = EMA(C,60);
ii=Barssince(EMA20<EMA60);
jj=Barssince(EMA20>EMA60);

EMA20 == EMA(C,20);
EMA60 == EMA(C,60);
E20big == IIf(EMA20 > EMA60,True,False);

if (E20big == True)
{
ii==Barssince(EMA20<EMA60);
jj==Barssince(EMA20>EMA60);
printf(EncodeColor( colorBlack ) + "| Prev Short Trend : " + jj + "," );
printf(EncodeColor( colorBlack ) + " Long Trend : " + ii + " | " );
}
else
{
ii==Barssince(EMA20<EMA60);
jj==Barssince(EMA20>EMA60);
printf(EncodeColor( colorBlack ) + "| Short Trend : " + jj + "," );
printf(EncodeColor( colorBlack ) + " Prev Long Trend : " + ii + " | " );
}
_SECTION_END();
 

Nehal_s143

Well-Known Member
Please add this code to your afl to get magnified price, message box is already there in code, Kindly use [ CODE ] [ /CODE ] for afl code

Code:
_SECTION_BEGIN("Magnified Market Price");
FS=Param("Font Size",30,11,100,1);
GfxSelectFont("Times New Roman", FS, 700, True ); 
GfxSetBkMode( colorWhite ); 
GfxSetTextColor( ParamColor("Color",colorGreen) ); 
Hor=Param("Horizontal Position",300,1,1200,1);
Ver=Param("Vertical Position",1,1,500,1); 
GfxTextOut(""+C, Hor , Ver );
_SECTION_END();
opps. magnified price its already there in code.

Code:
_SECTION_BEGIN("MyMagic");
SetBarsRequired(100000,0);
GraphXSpace = 15;
SetChartOptions(0,chartShowArrows|chartShowDates);
SetChartBkColor(ParamColor("bkcolor",ColorRGB(0,0, 0)));
GfxSetBkMode(0); 
GfxSetOverlayMode(1);
SetBarFillColor(IIf(C>O,ParamColor("Candle UP Color", colorGreen),IIf(C<=O,ParamColor("Candle Down Color", colorRed),colorLightGrey)));
//Plot(C,"\nPrice",IIf(C>O,ParamColor("Wick UP Color", colorDarkGreen),IIf(C<=O,ParamColor("Wick Down Color", colorDarkRed),colorLightGrey)),64,0,0,0,0);

SetTradeDelays(1,1,1,1);

HaClose = (O + H + L + C)/4; 
HaOpen = AMA( Ref( HaClose, -1 ), 0.5 ); 
HaHigh = Max( H, Max( HaClose, HaOpen ) ); 
HaLow = Min( L, Min( HaClose, HaOpen ) ); 
xDiff = (HaHigh - Halow) * 10000;
barcolor = IIf(HaClose >= HaOpen,colorGreen,colorRed);
PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, "", barcolor, styleCandle );

_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));

Factor=Param("Factor",2,1,10,0.1);
Pd=Param("ATR Periods",11,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-1; i++) {
TrendUp[i] = Null;
TrendDown[i] = Null;

trend[i]=1;


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

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

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

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

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

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

if (flag==1)
{ Up[i]=(H[i]+L[i])/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;
}
}
} 

Plot(TrendUp,"Trend",colorGreen);
Plot(TrendDown,"Down",colorRed);

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);


Title = EncodeColor(colorWhite)+ "My Magic AFL" + " - " + Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +
" - " + Date() +" - "+"\n" +EncodeColor(colorRed) +"Op-"+O+" "+"Hi-"+H+" "+"Lo-"+L+" "+
"Cl-"+C+" "+ "Vol= "+ WriteVal(V)+"\n"+ 
EncodeColor(colorLime)+
WriteIf (Buy , " GO LONG / Reverse Signal at "+C+" ","")+
WriteIf (Sell , " EXIT LONG / Reverse Signal at "+C+" ","")+"\n"+EncodeColor(colorYellow)+
WriteIf(Sell , "Total Profit/Loss for the Last Trade Rs."+(C-BuyPrice)+"","")+
WriteIf(Buy , "Total Profit/Loss for the Last trade Rs."+(SellPrice-C)+"","");
//WriteIf(Long AND NOT Buy, "Trade : Long - Entry price Rs."+(BuyPrice),"")+
WriteIf(Short AND NOT Sell, "Trade : Short - Entry price Rs."+(SellPrice),"")+"\n"+ 
//WriteIf(Long AND NOT Buy, "Current Profit/Loss Rs."+(C-BuyPrice)+"","")+
//WriteIf(Short AND NOT Sell, "Current Profit/Loss Rs."+(SellPrice-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-5,entry,Null,colorBlue);
PlotText("T1@"+tar1,BarCount-5,tar1,Null,Clr);PlotText("T2@"+tar2,BarCount-5,tar2,Null,Clr);PlotText ("T3@"+tar3,BarCount-5,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( colorBlue ); // 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( colorGreen, 1); // broader color
GfxRoundRect( x, y - 98, x2, y , 7, 7 ) ;
GfxTextOut( ( "My Magic"),13,y-100);
GfxTextOut( (" "),27,y-100);
GfxTextOut( ("Last " + sig + " Signal came " + (BarCount-bars-1) * Interval()/60 + " mins ago"), 13, y-80) ; // The text format location
GfxTextOut( ("" + WriteIf(sig =="BUY",sig + " @ ",sig + " @") + " : " + entry), 13, y-60);
GfxTextOut( ("Trailing SL : " + Ref(TrendSL,-1) + " (" + WriteVal(IIf(sig == "SELL",entry-sl,sl-entry), 2.2) + ")"), 13, y-40);
/*GfxTextOut( ("TGT:1 : " + tar1), 13, y -80);
GfxTextOut( ("TGT:2 : " + tar2), 13,y-60);
GfxTextOut( ("TGT:3 : " + tar3), 13,y-40);*/
GfxTextOut( ("Current P/L : " + WriteVal(IIf(sig == "BUY",(C-entry),(entry-C)),2.2)), 13, y-22);;




////////////////// PARABOLIC SAR///////////////
_SECTION_BEGIN("PARABOLIC SAR");

/////////////////////////////////




IAF = 0.02; // acceleration factor
MaxAF = 0.2; // max acceleration

psar = Close; // initialize
long = 1; // assume long for initial conditions
af = IAF; // init acelleration factor
ep = Low[ 0 ]; // init extreme point
hp = High [ 0 ];
lp = Low [ 0 ];


for( i = 2; i < BarCount; i++ )

{

if ( long )

{

psar [ i ] = psar [ i-1 ] + af * ( hp - psar [ i-1 ] );

}

else

{

psar [ i ] = psar [ i-1 ] + af * ( lp - psar [ i-1 ] );

}



reverse = 0;

//check for reversal

if ( long )

{

if ( Low [ i ] < psar [ i ] )

{

long = 0; reverse = 1; // reverse position to Short

psar [ i ] = hp; // SAR is High point in prev trade

lp = Low [ i ];

af = IAF;

}

}

else

{

if ( High [ i ] > psar [ i ] )

{

long = 1; reverse = 1; //reverse position to long

psar [ i ] = lp;

hp = High [ i ];

af = IAF;

}

}



if ( reverse == 0 )

{

if ( long )

{

if ( High [ i ] > hp )

{

hp = High [ i ];

af = af + IAF;

if( af > MaxAF ) af = MaxAF;

}



if( Low[ i - 1 ] < psar[ i ] ) psar[ i ] = Low[ i - 1 ];

if( Low[ i - 2 ] < psar[ i ] ) psar[ i ] = Low[ i - 2 ];

}

else

{

if ( Low [ i ] < lp ) 

{

lp = Low [ i ];

af = af + IAF;

if( af > MaxAF ) af = MaxAF;

} 



if( High[ i - 1 ] > psar[ i ] ) psar[ i ] = High[ i - 1 ];

if( High[ i - 2 ] > psar[ i ] ) psar[ i ] = High[ i - 2 ];



}

}

}



//Plot( Close, "Price", colorBlack, styleCandle );

Plot( psar, "SAR", colorRed, styleDots | styleNoLine | styleThick );

range = 15;//Param("Periods", 14, 2, 200, 1 );

ADXi=ADX(range);

PDIi=PDI(range);

MDIi=MDI(range);

//Plot( ADXi=ADX(range), _DEFAULT_NAME(), ParamColor( "ADX color", colorBlue ), ParamStyle("ADX style", styleThick ) );

//Plot( PDIi=PDI(range), "", ParamColor( "+DI color", colorGreen ), ParamStyle("+DI style") );

//Plot( MDIi=MDI(range), "", ParamColor( "-DI color", colorRed ), ParamStyle("-DI style") );

uptrend=PDIi>MDIi;//+di greater than -di

downtrend=MDIi>PDIi;//-di greater than +di

Ribboncol=IIf(upTrend,colorGreen, IIf(downtrend,colorRed, colorBlack));

Plot(6, "", Ribboncol, styleOwnScale|styleArea|styleNoLabel, -7.5,100);



Buy=Cross(L,psar) AND uptrend;

Sell=Cross(psar,H) AND downtrend;

//PlotShapes(Sell*shapeDownArrow,colorRed);

//PlotShapes(Buy*shapeUpArrow,colorGreen);

//Magfied Market Price
FS=Param("Font Size",30,11,100,1);
GfxSelectFont("Times New Roman", FS, 700, True ); 
GfxSetBkMode( colorWhite ); 
GfxSetTextColor( ParamColor("Color",colorGreen) ); 
Hor=Param("Horizontal Position",940,1,1200,1);
Ver=Param("Vertical Position",12,1,830,1); 
GfxTextOut(""+C, Hor , Ver );
YC=TimeFrameGetPrice("C",inDaily,-1);
DD=Prec(C-YC,2);
xx=Prec((DD/YC)*100,2);
GfxSelectFont("Times New Roman", 11, 700, True ); 
GfxSetBkMode( colorBlack ); 
GfxSetTextColor(ParamColor("Color",colorYellow) ); 
GfxTextOut(""+DD+" ("+xx+"%)", Hor , Ver+45 );

}

_SECTION_END();

//_SECTION_BEGIN("Trend Lines");
p1 = Param("TL 1 Periods", 5, 5, 50, 1);
p2 = Param("TL 2 Periods", 3, 3, 25, 1);
TL1 = LinearReg(C, p1);
TL2 = EMA(TL1, p2);
Col1 = IIf(TL1 > TL2, ParamColor("TL Up Colour", colorGreen), ParamColor("TL Dn Colour", colorRed));
Plot(TL1, "TriggerLine 1", Col1, styleLine|styleThick|styleNoLabel);
Plot(TL2, "TriggerLine 2", Col1, styleLine|styleThick|styleNoLabel);
_SECTION_END();
DEAR ALL CAN ANY ONE ADD MAGNIFIED MARKET PRICE AND HIGHLIGHTED BUY SELL LEVELS OR MESSAGED BOXED THANKS PLS GIVEN ERROR PLS
 
Last edited:

Nehal_s143

Well-Known Member
Found error, there was mistake in coding. Problem is solved :)

I am using below afl, buy sell is cross of stop loss line, problem is signal is not fired on cross of stop loss, but signal is fired on back candle after few candles are formed...

please help to fire signal at time of crossing SL and not at back candle
 
Hi everyone,

Can someone provide an afl which is based on price action HH and HL or LH and LL and their breakouts in consolidation.

which gives buy and sell signals should be compatible on 5min and higher time frames charts.

My regards
Vk2u
 

cellclinic

Well-Known Member
Kindly help .... if need more clarification plz do post :)

Hello Friends :)

I need one more help to make an afl ... requirements are based on rsi are as follows ...

Buy when rsi closed above 61.10 level
Sell when rsi closed below 38.20 level
If possible ... if rsi is above 50 buy zone if below 50 sell zone ...

Thanks :)
 
Can anybody help me why plot not showing?

x1=10000 * (Now(8)-1 - 1900) + 100 * Now(7) + Now(6);
x2=ValueWhen(DateNum()==x1,BarIndex(),1);
x3=BarIndex()-x2;
Plot(x3,"ff",colorRed);
 
Hello fellow traders,

Here's i have found an AFL on HH HL and LL and LH, but there is an issue in it and i needed a correction in it the Buy or sell signal isn't fixed it comes and goes which makes this code untrusted to buy or sell an position kindly someone look into it and correct it. This code i found on Amibroker afl library I didnt made it any help will be highly appreciated.

Please reply someone.
Vikas 1 moon,

That is 1080+ lines of code! It will take close to 5-6 hours to debug the code and identify "the problem". How can that be posted in a thread that says "Simple Coding Help"?

That you've cut-pasted it from Amibroker site is a very baseless excuse. If you had taken some pain to scroll further on the very site from where you've cut-pasted the code, you would've found handful of comments (as early as 2004) that the code was repainting and not usable.
 

trash

Well-Known Member
Is it possible to import actual trades from CSV file into Amibroker and plot shapes for buy sell? Suppose I import buy into Aux1 and Sell into Aux2
1. Either read from file directly http://www.amibroker.com/kb/2014/09/30/gen-backtest-from-a-file/

2. or import via $Hybrid method http://www.amibroker.com/kb/2014/10/14/how-to-combine-data/

3. or import to separate symbol with name YourSymbolName_Trades and then use SetForeign, then you can use not just Aux1/Aux2 but all other fields.

4. or do whatever else is possible

Long story short... everything is possible and multiple roads lead to Rome.
 

Similar threads