Help Needed in Modifying Market Profile AFL...

priyanvada

Well-Known Member
#1
Hellow Friends,

I tried, to future plot of yesterdays values (Vahn,Valn,pocn) but it didn't worked. :(

Here is Kaka's MP Lite AFL code attached.

Code:
_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|Lastthursday|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[i]==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[i],basey+pocj*den,newi,basey+pocj*den),"",ParamColor("Virgin Poc Color",colorYellow),styleLine|styleNoRescale);
}

Vah = LineArray(baseX[i], baseY+(pocj+shiftup)*den, i, baseY+(pocj+shiftup)*den);
Val = LineArray(baseX[i], baseY+(pocj-shiftdn)*den, i, baseY+(pocj-shiftdn)*den);
pocline=LineArray(basex,basey+pocj*den,basex[i]+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[i],nnn[i],colorLightGrey);
PlotText(""+(total[pocj-1]),basex[i],basey-den,colorLightGrey);


}

if(Viewvalues==1)
{
PlotText(""+((basey+pocj*den)),baseX[i],basey+pocj*den,colorWhite,colorDarkGrey);
PlotText(""+((baseY+(pocj+shiftup)*den)),baseX[i],baseY+(pocj+shiftup)*den,colorWhite,colorDarkGrey);
PlotText(""+((baseY+(pocj-shiftdn)*den)),baseX[i],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("Color_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[i];
		relTodayRange=Range[i]/Den;
		Voloumeunit=Vol[i]/LastValue(BarsInDay);

	}

	for (j=0; j<= relTodayRange ; j++) 
	{	
		if (L[i] <= Bot[i]+j*Den AND H[i] >= Bot[i]+j*Den  ) 
		{

			if(Type=="Price Profile"){x[j]=(x[j])+x_scale;}
			else if(Type=="Volume Profile"){x[j]=x[j]+round(V[i]/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[i], baseY+(pocj+shiftup)*den, i, baseY+(pocj+shiftup)*den);
Val = LineArray(baseX[i], baseY+(pocj-shiftdn)*den, i, baseY+(pocj-shiftdn)*den);
pocline=LineArray(basex,basey+pocj*den,basex[i]+poc,basey+pocj*den);

if(ViewTPO==1)
{
PlotText(""+(total[relTodayRange]-total[pocj]),basex[i],top[i],colorLightGrey);
PlotText(""+(total[pocj-1]+x_scale),basex[i],basey-den,colorLightGrey);
}

if(Viewvalues==1)
{
PlotText(""+((basey+pocj*den)),baseX[i],basey+pocj*den,colorWhite,colorDarkGrey);
PlotText(""+((baseY+(pocj+shiftup)*den)),baseX[i],baseY+(pocj+shiftup)*den,colorWhite,colorDarkGrey);
PlotText(""+((baseY+(pocj-shiftdn)*den)),baseX[i],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("Color_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();
Here is Sample Code, what I mean by 'future plot'.

Code:
//=================TITLE================================================================================================
_SECTION_BEGIN("Price Ploting");

pricestyle=ParamToggle("Price style","Bar|Candle",1);
if (pricestyle == 1)
{
Candlefill = IIf(C>=Ref(C,-1),ParamColor("Green candle",colorGreen),ParamColor("red candle",colorRed) );
SetBarFillColor (Candlefill);
PlotOHLC( Open, High, Low, Close, "", Candlefill, styleCandle,maskPrice);
}
if (pricestyle == 0)
{
Candlefill = IIf(C>=Ref(C,-1),ParamColor("Green candle",colorLime),ParamColor("red candle",colorRed) );
PlotOHLC( Open, High, Low, Close, "", Candlefill, styleBar,maskPrice);
}

pbfak= Param("Pin Bar Factor",3,0,100,0.25);
CR = abs(H-L);
CB = abs(O-C);
Candlecheck = IIf((CR >=(pbfak*CB)),1,0);
SetBarFillColor (IIf(Candlecheck ==1,candlefill,colorBlack));
PlotOHLC( Open, High, Low, Close, "", IIf(Candlecheck ==1,Candlefill,colorBlack), styleCandle,maskPrice);

_SECTION_END();
//=================TITLE================================================================================================
//=========================================================================================
//=========================================================================================
_SECTION_BEGIN("Swing Signal System");
DayH = TimeFrameGetPrice("H", inDaily, -1);     DayHI = LastValue (DayH,1);// yesterdays high
DayL = TimeFrameGetPrice("L", inDaily, -1);     DayLI = LastValue (DayL,1);    // yesterdays low
DayC = TimeFrameGetPrice("C", inDaily, -1);         // yesterdays close
DayO = TimeFrameGetPrice("O", inDaily);            // current day open
DayLow = TimeFrameGetPrice("L", inDaily); // current day Low
DayHigh = TimeFrameGetPrice("H", inDaily); // current day high


numbars = LastValue(Cum(Status("barvisible")));
hts  = -33.5;
YHL = ParamToggle("Yesterday HI LO","Show|Hide",1);
if(YHL==1) {
 // Plot(DayL,"YL",colorTurquoise,styleDots|styleNoLine|styleNoRescale|styleNoTitle);
 // Plot(DayH,"YH",colorTurquoise,styleDots|styleNoLine|styleNoRescale|styleNoTitle);
  //PlotText(" YH " ,     LastValue(BarIndex())-(numbars/Hts), DayHI, colorTurquoise);
  //PlotText(" YL " ,     LastValue(BarIndex())-(numbars/Hts), DayLI, colorTurquoise);
DayLcolor= IIf(C>= DayO,colorDarkOliveGreen,colorViolet); 
Plot(DayC ,"YC",colorIndigo,styleDots|styleNoLine|styleNoRescale|styleNoTitle);
Offset = 20;
//Plot(LineArray(BarCount, DayC , BarCount+20, DayC ,0), "", colorRed, styleLine|styleDots, Null, Null, 20);
Plot(DayO ,"YO",DayLcolor,styleDots|styleNoLine|styleNoRescale|styleNoTitle);
Plot(DayLow ,"DLow",colorDarkOliveGreen,styleLine|styleNoRescale|styleNoTitle);
Plot(DayHigh ,"Dhigh",colorDarkRed,styleLine|styleNoRescale|styleNoTitle);
//Plot((DayHigh*0.999) ,"Dhigh1",colorDarkRed,styleLine|styleNoRescale|styleNoTitle);
Plot((DayHigh*(1+(1-0.999))) ,"Dhigh1",colorDarkYellow,styleLine|styleNoRescale|styleNoTitle);
Plot((DayLow*(1-(1-0.999))) ,"Dhigh1",colorDarkYellow,styleLine|styleNoRescale|styleNoTitle);

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

messageboard = ParamToggle("Message Board","Show|Hide",0);
showsl = ParamToggle("Stop Loss Line", "Show|Hide", 0);
no=10;
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
s5d=IIf(avn==1,sup,res);
DayC1 = TimeFrameGetPrice("C", inDaily, 0);  
DayO1 = TimeFrameGetPrice("O", inDaily);  



if (showsl == 0)
//{Plot(s5d,"Stop Loss",colorCustom14,styleDots);}
exitlong = Cross(s5d, H);
//PlotShapes(exitlong * shapeNone, colorBlack,0,H,-10);
exitshort = Cross(L, s5d);
//PlotShapes(exitshort * shapeNone, colorBlack,0,L,-15);

Buy = exitshort;
Sell = exitlong;
//Short = Sell;
//Cover = Buy;
//Buy = ExRem(Buy,Sell);
//Sell = ExRem(Sell,Buy);
//Short = ExRem(Short, Cover);
//Cover = ExRem(Cover, Short);
//AlertIf( Buy, "", "BUY @ " + C, 1 );
//AlertIf( Sell, "", "SELL @ " + C, 2 );
/*
for(i=BarCount-1;i>1;i--)

{
if(Buy[i] == 1)
{
entry = C[i];
sig = "BUY";
sl = s5d[i];
tar1 = DayC1[i] ;
tar2 = entry + (entry * .0092);
tar3 = entry + (entry * .0179);

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


bars = i;
i = 0;
}
}
*/

for(i=BarCount-1;i>1;i--)

{

//tar1 = DayC1[i];
bars = i;
i = 0;

}




for(i = 1; i < BarCount; i++)
{
tar2 = DayO1[i];
tar1 = DayC[i];
tar3 = DayLow[i];
tar4 = DayHigh[i]; 
tar5 = DayHigh[i]*(1+(1-0.999));
tar6 =DayLow[i]*(1-(1-0.999));
Clro[i] = IIf(C[i]>=tar1[i],colorLime,colorRed); 
}

Offset = 20;
Clr = colorBlueGrey;
//Clro = IIf(C>=tar2,colorLime,colorRed); 
Plot(LineArray(bars-Offset, tar1, BarCount-20, tar1,1), "", colorIndigo, styleLine|styleDots, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar2 , BarCount+20, tar2 ,1), "", Clr, styleLine|styleDots, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar3 , BarCount+20, tar3 ,1), "", colorDarkOliveGreen, styleLine, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar4 , BarCount+20, tar4 ,1), "", colorDarkRed, styleLine, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar5 , BarCount+20, tar5 ,1), "", colorDarkYellow, styleLine, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar6 , BarCount+20, tar6 ,1), "", colorDarkYellow, styleLine, Null, Null, Offset);

}
_SECTION_END();
//=========================================================================================
//=========================================================================================

This code plots yesterdays close and today's open in FUTURE bars.

I want the same thing to happen in MPLite Market profile AFL, with yesterdays values (Vahn,Valn,pocn).

I guess a for loop and code like below needs to be used to achieve this,


for(i = 1; i < BarCount; i++)
{
tar2 = DayO1;
)
Plot(LineArray(bars-Offset, tar1, BarCount-20, tar1,1), "", colorIndigo, styleLine|styleDots, Null, Null, Offset);


But I am not getting this done at all.

Please help me out in this ...
 
#3
Hello,
Can any one please change the lookback from 1 day to last 3 days so that it will show the VAH, VAL, POC for last three days in MPLite.afl.
Thanks in advance.
 

Similar threads