Anantheist.. thanks for the AFL... but can you post any link which explains this AFL...
Hi sach007
My id is not Anantheist :lol: ...it's AnAtheist
i got this Afl and market profile method anther thread like TJ which is moderated by saint sir ...you can Google it.. you can get many post regarding this Method .....
And previous AFL is very clumsy so you can try this one ..... If you need more Afl on MP with various method i can post it ... but at the end Price only speaks what is right and what is wrong .. no indicator , system or AFL is 100 % perfect ....it's only a tool not holy girl.....
Regards
AnAtheist
_SECTION_BEGIN("MPLite");
PlotOHLC(O,H,L,C,"Price",IIf(C>O,colorGreen,colorRed),styleCandle);
function Lastthursday()
{
Daysinmonth=IIf(Month()==1 OR Month()==3 OR Month()==5 OR Month()==7 OR Month()==8 OR Month()==10 OR Month()==12,31,30);
Daysinmonthfeb=IIf(Year()%4 == 0 AND Year()%100!=0,29,28);
Daysinmonthfinal=IIf(Month()==2,Daysinmonthfeb,Daysinmonth);
returnvalue=IIf(Daysinmonthfinal-Day()<7 AND DayOfWeek()==4,1,IIf(Daysinmonthfinal-Day()<8 AND DayOfWeek()==3 AND Ref(DayOfWeek(),1)!=4 AND Day()!=Daysinmonthfinal ,1,0));
return returnvalue;
}
FirstVisibleBar = Status( "FirstVisibleBar" );
Lastvisiblebar = Status( "LastVisibleBar" );
totalVisible=Lastvisiblebar-FirstVisibleBar;
//if(totalVisible<1500){
//Den = Param("Density", 1, 0.1, 10, 0.1);
percent=Param("Value Area", 70, 1, 100, 1);
Type=ParamList("Type","Price Profile|Volume Profile");
Period= ParamList("Base","Hourly|Daily|Weekly|Monthly|Last thursday|Yearly",1);
x_scale=Param("Horizontal_scale", 2, 0, 10, 0.1);
EnMP2= ParamStyle("Style",styleLine|styleNoLabel,maskAll) ;
styleLines=styleDots;
EnIB = ParamToggle("Show Initial Balance", "No|Yes",0);
IBBars = Param("Initial Balance Bars", 2, 1, 10, 1);
ViewYvalues= ParamToggle("Show Yesterdays Values", "No|Yes",1);
ViewVlines= ParamToggle("Show Vertical Base Lines", "No|Yes",1);
Viewvalues= ParamToggle("Show Values", "No|Yes",0);
ViewVpoc= ParamToggle("Show Virgin POC", "No|Yes",1);
ViewTPO=ParamToggle("Show TPO Count", "No|Yes",0);
if(Period=="Hourly"){
BarsInDay = BarsSince(Hour() != Ref(Hour(), -1));Bot = TimeFrameGetPrice("L", inHourly, 0);Top = TimeFrameGetPrice("H", inHourly, 0);Vol = TimeFrameGetPrice("V", inHourly, 0);
}
if(Period=="Daily" ){//OR Interval()==3600
BarsInDay = BarsSince(Day() != Ref(Day(), -1) ) ;Bot = TimeFrameGetPrice("L", inDaily, 0);Top = TimeFrameGetPrice("H", inDaily, 0);Vol = TimeFrameGetPrice("V", inDaily, 0);
}
if(Period=="Weekly" OR Interval()==24 * 3600 ){
BarsInDay = BarsSince(DayOfWeek() < Ref( DayOfWeek(), -1 ));bot1=ValueWhen(BarsInDay==0,L,1);Bot2 = ValueWhen(Ref(BarsInDay,1)==1 OR BarIndex()>BarCount-2 ,LLV(L,BarsInDay),0);bot=Min(bot1,bot2);top1=ValueWhen(BarsInDay==0,H,1);Top2 =ValueWhen(Ref(BarsInDay,1)==1 OR BarIndex()>BarCount-2,HHV(H,BarsInDay),0);top=Max(top1,top2);Vol = TimeFrameGetPrice("V", inWeekly, 0);
}
if(Period=="Monthly" ){
BarsInDay = BarsSince(Month() != Ref(Month(), -1));Bot = TimeFrameGetPrice("L", inMonthly, 0);Top = TimeFrameGetPrice("H", inMonthly, 0);Vol = TimeFrameGetPrice("V", inMonthly, 0);
}
if(Period=="Lastthursday" ){
BarsInDay = BarsSince(Lastthursday()==0 AND Ref(Lastthursday(), -1)==1);bot1=ValueWhen(BarsInDay==0,L,1);Bot2 = ValueWhen(Ref(BarsInDay,1)==1 OR BarIndex()>BarCount-2 ,LLV(L,BarsInDay),0);bot=Min(bot1,bot2);top1=ValueWhen(BarsInDay==0,H,1);Top2 =ValueWhen(Ref(BarsInDay,1)==1 OR BarIndex()>BarCount-2,HHV(H,BarsInDay),0);top=Max(top1,top2);Vol = ValueWhen(Ref(BarsInDay,1)==1 OR BarIndex()>BarCount-2 ,Sum(V,BarsInDay),0);
}
if(Period=="Yearly" ){
BarsInDay = BarsSince(Year() != Ref(Year(), -1));Bot = TimeFrameGetPrice("L", inYearly, 0);Top = TimeFrameGetPrice("H", inYearly, 0);Vol = TimeFrameGetPrice("V", inYearly, 0);
}
CurTop = HHV(H,BarsInDay+1);
Curbot = LLV(L,BarsInDay+1);
Range = Top-Bot;
coverage=LastValue(Ref(ATR(10),-1));
den=(coverage/10);
//den=1;
multiplier=IIf(round(totalVisible)/300<1,1,round(totalVisible)/300);
if(ViewVlines==1)
{
Plot(BarsInDay==0, "", ParamColor("Base Line Color",colorDarkGrey), styleHistogram | styleOwnScale | styleLine | styleNoLabel);
}
relTodayRange = 0;
x=0;
basey=0;
basex=0;
newday=0;
total=0;
shiftup=0;
shiftdn=0;
Line=Null;
Voloumeunit=0;
for ( i = IIf(FirstVisibleBar-100>1,FirstVisibleBar-100,FirstVisibleBar); i <Lastvisiblebar AND i<BarCount-1 ; i++ )
{
if(BarsInDay
==0)
{t=BarsInDay[i-1];
Col=ParamColor("IB Color",colorWhite);
IBstyle=ParamStyle("IB style",styleLine,maskAll);
if(EnIB==1)
{
IBH=HHV(H,IBBars);
IBL=LLV(L,IBBars);
Line1 = LineArray(basex, IBH[basex+IBBars-1],i, IBH[basex+IBBars-1]);
Plot(Line1,"",Col,IBstyle);
Line2 = LineArray(basex, IBL[basex+IBBars-1],i, IBL[basex+IBBars-1]);
Plot(Line2,"",Col,IBstyle);
}
//////////////////////////////////
poc=0;pocj=0;
midrange = int(relTodayRange/2)+1;
for (j=1; j<= relTodayRange+1 ; j++)
{
if(poc < x[j])
{
poc=x[j]; pocj=j;}
else if(poc == x[j])
{
if (abs(midrange-j)< abs(midrange-pocj)){
poc = x[j]; pocj = j;
}
}
}
for ( n = 1; n <= relTodayRange; n++ )
{
total[n]=x[n]+total[n-1];
}
Value_area=(total[relTodayRange]*percent)/100;
for ( a = 1; a <= relTodayRange; a++ )
{
if(pocj-a>0 AND pocj+a<relTodayRange)
{
if(poc+total[pocj+a]-total[pocj]+(total[pocj]-poc)-total[pocj-(a+1)]>=Value_area) {shiftup=a; shiftdn=a; break;}
}
else if(pocj-a<1 )
{
if(poc+total[pocj+a]-total[pocj]+(total[pocj]-poc)>=Value_area){shiftup=a; shiftdn=pocj; break;}
}
else if(pocj+a>relTodayRange )
{
if(poc+total[relTodayRange]-total[pocj]+(total[pocj]-poc)-total[pocj-(a+1)] >=Value_area){shiftup=floor(relTodayRange)-pocj; shiftdn=a+1; break;}
}
}
if(ViewVpoc==1)
{
Virginpoc=basey+pocj*den;
newi=Null;
for( j = i; j <= (BarCount - 1) ; j++ )
if( L[j] < Virginpoc AND H[j]>Virginpoc )
{newi=j;break;}
else {newi=BarCount;}
Plot(LineArray(basex,basey+pocj*den,newi,basey+pocj*den),"",ParamColor ("Virgin Poc Color",colorYellow),styleLine|styleNoRescale);
}
Vah = LineArray(baseX, baseY+(pocj+shiftup)*den, i, baseY+(pocj+shiftup)*den);
Val = LineArray(baseX, baseY+(pocj-shiftdn)*den, i, baseY+(pocj-shiftdn)*den);
pocline=LineArray(basex,basey+pocj*den,basex+poc,basey+pocj*den);
Vahn = LineArray(i, baseY+(pocj+shiftup)*den, i+t, baseY+(pocj+shiftup)*den);
pocn = LineArray(i, baseY+(pocj)*den, i+t, baseY+(pocj)*den);
Valn = LineArray(i, baseY+(pocj-shiftdn)*den, i+t, baseY+(pocj-shiftdn)*den);
Plot(pocline,"",ParamColor("Color_POC_Line",colorYellow),styleLine|styleNoRescale|styleNoLabel);
if(ViewYvalues==1)
{
Plot(Vahn,"",ParamColor("YVAH",colorWhite),styleDashed|styleNoRescale);
Plot(Valn,"",ParamColor("YVAL",colorWhite),styleDashed|styleNoRescale);
Plot(pocn,"",ParamColor("YPOC",colorYellow),styleDashed|styleNoRescale);
}
if(ViewTPO==1)
{
nnn=HHV(H,BarsInDay);
PlotText(""+(total[relTodayRange]-total[pocj]),basex,nnn,colorLightGrey);
PlotText(""+(total[pocj-1]),basex,basey-den,colorLightGrey);
}
if(Viewvalues==1)
{
PlotText(""+((basey+pocj*den)),baseX,basey+pocj*den,colorWhite,colorDarkGrey);
PlotText(""+((baseY+(pocj+shiftup)*den)),baseX,baseY+(pocj+shiftup)*den,colorWhite,colorDarkGrey );
PlotText(""+((baseY+(pocj-shiftdn)*den)),baseX,baseY+(pocj-shiftdn)*den,colorWhite,colorDarkGrey);
}
for (p = 0; p <= relTodayRange+1; p=p+multiplier)
{
if(P>0){
line = LineArray(baseX, baseY+(p)*Den, baseX+x[p], baseY+(p)*Den);
}
Plot(line,"",IIf(p>(pocj+shiftup),ParamColor("Colo r_Above_VA", colorGrey40),IIf(p<=(pocj+shiftup)AND p>=(pocj-shiftdn),ParamColor("Color_VA", colorBlueGrey),ParamColor("Color_Below_VA", colorGrey40))) , EnMP2);
}
///////////////////
basex=0;
x=0;
Basex=i;
baseY=Bot;
relTodayRange=Range/Den;
Voloumeunit=Vol/LastValue(BarsInDay);
}
for (j=0; j<= relTodayRange ; j++)
{
if (L <= Bot+j*Den AND H >= Bot+j*Den )
{
if(Type=="Price Profile"){x[j]=(x[j])+x_scale;}
else if(Type=="Volume Profile"){x[j]=x[j]+round(V/Voloumeunit)+1;}
}
}
}
Col=ParamColor("IB Color",colorWhite);
IBstyle=ParamStyle("IB style",styleLine,maskAll);
if(EnIB==1)
{
IBH=HHV(H,IBBars);
IBL=LLV(L,IBBars);
Line1 = LineArray(basex, IBH[basex+IBBars-1],i, IBH[basex+IBBars-1]);
Plot(Line1,"",Col,IBstyle);
Line2 = LineArray(basex, IBL[basex+IBBars-1],i, IBL[basex+IBBars-1]);
Plot(Line2,"",Col,IBstyle);
}
//////////////////////////////////
poc=0;pocj=0;
midrange = int(relTodayRange/2)+1;
for (j=1; j<= relTodayRange+1 ; j++)
{
if(poc < x[j])
{
poc=x[j]; pocj=j;}
else if(poc == x[j])
{
if (abs(midrange-j)< abs(midrange-pocj)){
poc = x[j]; pocj = j;
}
}
}
for ( n = 1; n <= relTodayRange; n++ )
{
total[n]=x[n]+total[n-1];
}
Value_area=(total[relTodayRange]*percent)/100;
for ( a = 1; a <= relTodayRange; a++ )
{
if(pocj-a>0 AND pocj+a<relTodayRange)
{
if(poc+total[pocj+a]-total[pocj]+(total[pocj]-poc)-total[pocj-(a+1)]>=Value_area) {shiftup=a; shiftdn=a; break;}
}
else if(pocj-a<1 )
{
if(poc+total[pocj+a]-total[pocj]+(total[pocj]-poc)>=Value_area){shiftup=a; shiftdn=pocj; break;}
}
else if(pocj+a>relTodayRange )
{
if(poc+total[relTodayRange]-total[pocj]+(total[pocj]-poc)-total[pocj-(a+1)] >=Value_area){shiftup=floor(relTodayRange)-pocj; shiftdn=a+1; break;}
}
}
Vah = LineArray(baseX, baseY+(pocj+shiftup)*den, i, baseY+(pocj+shiftup)*den);
Val = LineArray(baseX, baseY+(pocj-shiftdn)*den, i, baseY+(pocj-shiftdn)*den);
pocline=LineArray(basex,basey+pocj*den,basex+poc,basey+pocj*den);
if(ViewTPO==1)
{
PlotText(""+(total[relTodayRange]-total[pocj]),basex,top,colorLightGrey);
PlotText(""+(total[pocj-1]+x_scale),basex,basey-den,colorLightGrey);
}
if(Viewvalues==1)
{
PlotText(""+((basey+pocj*den)),baseX,basey+pocj*den,colorWhite,colorDarkGrey);
PlotText(""+((baseY+(pocj+shiftup)*den)),baseX,baseY+(pocj+shiftup)*den,colorWhite,colorDarkGrey );
PlotText(""+((baseY+(pocj-shiftdn)*den)),baseX,baseY+(pocj-shiftdn)*den,colorWhite,colorDarkGrey);
}
for (p = 0; p <= relTodayRange+1; p=p+multiplier)
{
line = LineArray(baseX, baseY+p*Den, baseX+x[p], baseY+p*Den);
Plot(line,"",IIf(p>(pocj+shiftup),ParamColor("Colo r_Above_VA", colorGrey40),IIf(p<=(pocj+shiftup)AND p>=(pocj-shiftdn),ParamColor("Color_VA", colorBlueGrey),ParamColor("Color_Below_VA",colorGrey40))),EnMP2);
Plot(pocline,"",ParamColor("Color_POC_Line",colorYellow),styleLine|styleNoRescale|styleNoLabel);
}
_SECTION_END();