Simple Coding Help - No Promise.

amitrandive

Well-Known Member
Yes can do it for any period . . . why not try it :)

150 will start plotting from 151th bar where as 365 will plot from 366th :thumb:


Happy :)
Happy Sir

Whenever I drag any EMA on a price chart , it shows a max limitation of 300 bars.That is why 365 bars is way beyond that.

But still got an AFL from this forum in which the limitation on the number of bars has been increased.

Guess sometimes you have to challenge yourself to "Think out of the Box"
:lol:

Code:
_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
Plot( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 
_SECTION_END();

_SECTION_BEGIN("EMA");
P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 5000, 1 );
Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style", styleLine | styleNoLabel ) | styleNoRescale ); 
_SECTION_END();
 
Amit the limitation is not with the period but with the way the parameter is defined . . .

Drop the standard Ema code onto any price chart . . .
then edit it and change 300 in the param to 500 . . .

but now the new limit will be 500 . . .

Happy :)
 
Just a small request.

Say I want to test a code only on nr7 days. ie if monday was a nr7 day for that particular scrip then the code should work on tuesday. I understand that we can do that by adding previous day nr7 condition in buy, short conditions but what if we are trading a smaller tf eg. 30 mins and not eod tf.

We need to make use of timeframeset and timeframerestore in afl. I tried it but failed.

HTML:
TimeFrameSet(inDaily);
_SECTION_BEGIN("NR7");

/*********** NR7 System for Chart and Exploration ***********************/

R = H - L;
NR7 = False;
NR4 = False;
m7 = m4 = idm7 = idm4 = idm = 0;

for(i = 7; i < BarCount; i++)
{
if( R[i] < R[i - 1] AND R[i] < R[i -2] AND R[i] < R[i - 3] AND R[i] < R[i - 4] AND R[i] < R[i - 5] AND R[i] < R[i - 6]) 
{
NR7[i] = True;
m7[i] = 1;
}
}
_SECTION_END();
TimeFrameRestore();

Buy	= conditions	 AND (Ref(nr7,-1)==1);
Short	= conditions	 AND (Ref(nr7,-1)==1);
I am using this afl to get nr7.
Code:
_SECTION_BEGIN("NR7");

/*********** NR7 System for Chart and Exploration ***********************/

R = H - L;
NR7 = False;
NR4 = False;
m7 = m4 = idm7 = idm4 = idm = 0;

for(i = 7; i < BarCount; i++)
{
if( R[i] < R[i - 1] AND R[i] < R[i -2] AND R[i] < R[i - 3] AND R[i] < R[i - 4] AND R[i] < R[i - 5] AND R[i] < R[i - 6]) 
{
NR7[i] = True;
m7[i] = 1;
}
}

for(i = 4; i < BarCount; i++)
{
if((R[i] < R[i - 1] AND R[i] < R[i -2] AND R[i] < R[i - 3] ) AND NOT NR7[i])
{
NR4[i] = True;
m4[i] = 1;
}
}
IDNR7 = Inside() * NR7;
IDNR4 = Inside() * NR4;
ID = Inside();
idm7 = IIf(IDNR7, 1, 0);
idm4 = IIf(IDNR4, 1, 0);
idm = IIf(id, 1, 0);

for(i = 1; i < BarCount; i++)
{
if(IDNR7[i] == IDNR7[i - 1]) idm7[i] = idm7[i] + idm7[i - 1];
if(IDNR4[i] == IDNR4[i - 1]) idm4[i] = idm4[i] + idm4[i - 1];
if(NR7[i] == NR7[i - 1]) m7[i] = m7[i] + m7[i - 1];
if(NR4[i] == NR4[i - 1]) m4[i] = m4[i] + m4[i - 1];
if(ID[i] == ID[i - 1]) idm[i] = idm[i] + idm[i - 1];
}

MarkerIDNR7 = MarkerIDNR4 = shapeStar ;

Marker7 = shapeDigit7;
NR7Color = colorBrightGreen;

Marker4 = shapeDigit4;
NR4Color = colorLightOrange;

MarkerID = shapeHollowCircle;
IDColor = colorYellow;

IDNR7Color = colorBrightGreen;
IDNR4Color = colorLightOrange;

MarkerDist = L * 0.995;
IDNRDist = H * 1.03;

if(Status("action") == actionIndicator)
{
_N(Title = StrFormat("{{NAME}}, {{DATE}} ({{INTERVAL}}): {{VALUES}}") + ", Range=" + Prec(R + 0.00001, 2) + "," 
+ WriteIf(IDNR7, EncodeColor(colorBrightGreen) + WriteIf(idm7 > 1, StrLeft(NumToStr(idm7), 4), "") + " IDNR7 ", "")
+ WriteIf(IDNR4, EncodeColor(colorLightOrange) + WriteIf(idm4 > 1, StrLeft(NumToStr(idm4), 4), "") + " IDNR4 ", "") 
+ WriteIf(NR7 AND NOT ID, EncodeColor(colorBrightGreen) + WriteIf(m7 > 1, StrLeft(NumToStr(m7), 4), "") + " NR7 ", "")
+ WriteIf(NR4 AND NOT ID, EncodeColor(colorLightOrange) + WriteIf(m4 > 1, StrLeft(NumToStr(m4), 4), "") + " NR4 ", "")
+ WriteIf(ID AND NOT NR7 AND NOT NR4, EncodeColor(colorTurquoise) + WriteIf(idm > 1, StrLeft(NumToStr(idm), 4), "") + " Inside Day ", ""));

PlotOHLC(O, H, L, C, "Close", colorLightGrey, styleBar);
PlotShapes(IIf(IDNR7, MarkerIDNR7, shapeNone), IDNR7Color, 0, IDNRDist);
PlotShapes(IIf(IDNR4 AND NOT IDNR7, MarkerIDNR4, shapeNone), IDNR4Color, 0, IDNRDist);
PlotShapes(IIf(NR7 AND NOT ID, Marker7, shapeNone), NR7Color, 0, MarkerDist);
PlotShapes(IIf(NR4 AND NOT NR7 AND NOT ID, Marker4, shapeNone), NR4Color, 0, MarkerDist);
PlotShapes(IIf(ID AND NOT NR7 AND NOT NR4, MarkerID, shapeNone), IDColor, 0, IDNRDist);
}

if(Status("action") == actionExplore)
{
Filter = (m7 > 0) OR (m4 > 0) OR (idm > 0);

SetOption("NoDefaultColumns", True);

AddColumn(DateTime(), "DATE", formatDateTime, colorDefault, colorDefault, 96);
AddTextColumn(Name(), "SYMBOL", 77, colorDefault, colorDefault, 120);
AddColumn(R, "Range", 6.2, colorDefault, colorDefault, 84);
AddColumn(IIf(idm, 48 + idm, 32), "INSIDE", formatChar, colorYellow, IIf(idm, colorLightBlue, colorDefault));
AddColumn(IIf(m4, 48 + m4, 32), "NR4", formatChar, colorYellow, IIf(m4, colorBlue, colorDefault));
AddColumn(IIf(m7, 48 + m7, 32), "NR7", formatChar, colorYellow, IIf(m7, colorGreen, colorDefault));
}

/************************** END OF AFL CODE *****************************/

_SECTION_END();
Plz help to make this work. I hope i have made myself clear.:thumb:


Thanks,
Purusharth
Hi,

Any views on this request, is it possible??

Thanks,
Purusharth
 

xsis

Active Member
anybody :(

happysingh, pratap, mastermind ???

sorry pratap! pls dont get me wrng! u have been such an asset to this thread. but u hvnt got the concept!
if i do wt u said, it will draw MA line in volume pane for past n periods. so if my TF is 1min and n=200 then it will draw MA line of volume of past 200 mins!

my requirement is different. lets say i work on 1 minute chart and i want to see the avg volume for past 30 days but only for first 60 mins. so it will be only an avg for 30 days but it will take into a/c only first 60 mins volume. basically this is gonna tell us if in first 60 mins the volume is high/low than the usual 60 mins of last 30 days!

i hope its clear or u can ask other doubts too.
dear all

please help in making this afl where i can find if todays volume for a particular TF is greater than the avg volume of last n days for that TF.

for e.g. i want to see for first n minutes if on a 15min (x) chart todays volume is greater/less than the avg volume in last days (y) where x and y can be changed i.e. they aret he variables and n can be 1, 2....to wtever!

basically, this will help in knowing if the underlying is heavily/thinly traded for first n minutes than the usual or the volatility in other terms.

i hope i have been able to put across my thots. pls revert/question if logic not clear.

thks
 

pratapvb

Well-Known Member

pratapvb

Well-Known Member
pratap Sir

Finally the confusion is clear .Also the AFL is also provided in that post now.
what I mean is he is using 18 and 45 and not 150 and 365 on hourly.


the limit was due to Param parameters which Happy already mentioned but DSM is actually using 18 and 45
 

amitrandive

Well-Known Member
what I mean is he is using 18 and 45 and not 150 and 365 on hourly.


the limit was due to Param parameters which Happy already mentioned but DSM is actually using 18 and 45
pratap sir

DSM does not use Amibroker.May be ,he is using similar setting for Trade Tiger terminal for lack of sufficient data.
 

Similar threads