Please add an option to market prifile afl code (open price and closing price)

In the below market profile afl code i,m not able to see the opening and closing price of particular stock when i use it . Can you please include it in the afl and also please check for errors if any. I normally use it on Nifty futures (15min or 30 min time frame), so opening and closing price becomes very important to me and im not able to see that on the profile charts .

_SECTION_BEGIN(“MarketProfile”);
SetChartOptions(0,chartShowArrows|chartShowDates);
//------------------------------------------------------------------------------
//
// Formula Name: Market Profile
//

//Market Profile

PlotOHLC(Ref(O,-1),Ref(H,-1),Ref(L,-1),Ref(C,-1),“Price”,colorBlack,styleNoLine);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g", Ref(O,-1), Ref(H,-1), Ref(L,-1), Ref(C,-1) ));

EnMP2= ParamList(“MarketProfile”,“Letters|Solid|Lines”);
styleLines = ParamStyle(“Style”, styleLine, maskAll);

Type=ParamList(“Type”,“Price Profile|Volume Profile”);
Period= ParamList(“Base”,“Hourly|Daily|Weekly|Monthly”,1);

Den = Param(“Density”, 3, 0.25, 100, 0.25); // Resolution in terms of $
percent=Param(“Value Area”, 70, 1, 100, 1);
ViewTPOCount= ParamToggle(“Show TPO Count”, “No|Yes”,1);
ViewPOC = ParamToggle(“Show POC”, “No|Yes”,1);
ViewVALVAH = ParamToggle(“Show VAL VAH Line”, “No|Yes”,1);
Viewfill = ParamToggle(“Show VA Fill”, “No|Yes”,1);
Colorpoc=ParamColor(“Color POC”, colorYellow);
Colorfill=ParamColor(“Color Fill”, ColorRGB(20,40,60));

EnIB = ParamToggle(“Show Initial Balance”, “Yes|No”);
IBBars = Param(“Initial Balance Bars”, 2, 0, 10, 1);

if(Period==“Daily”){
BarsInDay = BarsSince(Day() != Ref(Day(), -1));
Bot = TimeFrameGetPrice(“L”, inDaily, 0);
Top = TimeFrameGetPrice(“H”, inDaily, 0);
Vol = TimeFrameGetPrice(“V”, inDaily, 0);
}

if(Period==“Hourly”){
BarsInDay = BarsSince(Minute() != Ref(Minute(), -1));
Bot = TimeFrameGetPrice(“L”, in5Minute, 0);
Top = TimeFrameGetPrice(“H”, in5Minute, 0);
Vol = TimeFrameGetPrice(“V”, in5Minute, 0);
}

if(Period==“Weekly”){
BarsInDay = BarsSince(DayOfWeek() < Ref( DayOfWeek(), -1 ));
Bot = TimeFrameGetPrice(“L”, inWeekly, 0);
Top = TimeFrameGetPrice(“H”, inWeekly, 0);
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);
}

CurTop = HHV(H,BarsInDay+1);
Curbot = LLV(L,BarsInDay+1);
Range = Highest(Top-Bot);
TodayRange = Top - Bot;

AveRange = Sum(Top-Bot,30)/30;
LAveRange = AveRange[BarCount-1];

// Initialization
baseX = 0;
baseY = floor(Bot[0]/Den)*Den;
relTodayRange = 0;
firstVisBar = Status(“firstvisiblebar”);
lastVisBar = Status(“lastvisiblebar”);

D=.0005;
total=0;
totaldn=0;
totalup=0;
shiftup=0;
shiftdn=0;
startr=0;

for (j=0; j <= 100; j++) {
x[j] = 0;
}

i0 = 0;
i1 = 0;
for (i=0; i<BarCount; i++) {
if (BarsInDay[i] == 0 AND i < firstVisBar) {
i0 = i;
}
if (BarsInDay[i] == 0 AND i >= lastVisBar) {
i1 = i;
}
}

i1 = BarCount-1;
for (i=i0; i<=i1; i++) {
if (BarsInDay[i] == 0) {
baseX = i;
baseY = floor(Bot[i]/Den)*Den;
maxY = floor(Top[i]/Den)*Den;
relTodayRange = (maxY-baseY)/Den;

for (j=0; j <= relTodayRange; j++) {
  x[j] = 0;
}

}

range_x=lastVisBar-firstVisBar;
spread = Param("X Space", 112, 1, 200, 1);
tpl = Param("Time Per Letter (mins)", 30, 1, 360, 1);
Intervalmin=Interval()/60;
flt =Param("First Letter (Bars)", 1, 1, 60, 1);
teb=ParamToggle("To Each Bar","No|Yes");
Color=Param("Color Threshold",20,1,50,1);
stopg=0;
stopr=0;
new=0;

Voloumeunit=Vol[i]/LastValue(BarsInDay);

if (EnMP2 == “Letters”) {
for (j=0; j<= relTodayRange; j++) {
if (L[i] <= baseY+jDen AND H[i] >= baseY+jDen) {
PlotTextSetFont("", “Arial”, 6, BarCount-1, Close[ BarCount - 3 ], colorGreen, colorDefault, -20 );
PlotTextSetFont(“C”, “Arial”, 40, 100, 100, colorGreen, colorDefault, -20 );
PlotText(StrExtract(" A , B , C , D , E , F , G , H , I , J , K , L , M , N , O , P , Q , R , S , T , U , V , W , X , Y , Z, a , b , c , d , e , f , g , h , i , j , k , L , m , n ,o , p , q , r , s , t , u , v , w , x , y , z “,
IIf(BarsInDay[i]<flt,0,floor(BarsInDay[i]/(tpl/Intervalmin))-0)), baseX+IIf(teb==1,BarsInDay[i],x[j](range_x/spread)), baseY+jDen,
colorWhite,ColorHSB(10+((floor(BarsInDay[i]/(tpl/Intervalmin)))*Color),160,140));
x[j]++;
PlotTextSetFont(”", “Arial”, 10, BarCount-1, Close[ BarCount - 3 ], colorGreen, colorDefault, -20 );
}
}
}

else if (EnMP2 == “Lines” OR EnMP2 == “Solid”) {
for (j=0; j<= relTodayRange; j++) {
if (L[i] <= baseY+jDen AND H[i] >= baseY+jDen) {
if(Type==“Price Profile”){x[j]=x[j]+1;}
else if(Type==“Volume Profile”){x[j]=x[j]+round(V[i]/Voloumeunit);}

   }
}

}

// Draw Initial Balance after 11am bar is complete
if (BarsInDay[i] == IBBars AND EnIB == 0) {
Line1 = LineArray(i-2, curtop[i-1],i+7, curtop[i-1],0,True);
Plot(Line1,"",colorLightGrey,styleLine+styleDashed|styleNoRescale);
Line1 = LineArray(i-2, curbot[i-1],i+7, curbot[i-1],0,True);
Plot(Line1,"",colorLightGrey,styleLine+styleDashed|styleNoRescale);
}

// Examine x[j]
if ((i < BarCount - 1 AND BarsInDay[i+1] == 0) OR i == BarCount-1) {
maxXj = 0;
maxj = 0;
for (j=0; j<= relTodayRange; j++) {
if (maxXj < x[j]) {maxXj = x[j]; maxj = j; StaticVarSet(“Maxj”,j); new=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(Maxj-a>0 AND Maxj+a<relTodayRange)
    {
        if(MaxXj+total[Maxj+a]-total[Maxj]+total[Maxj-1]-total[Maxj-(a+1)]>=Value_area) {shiftup=a; shiftdn=a; break;}
     }    
    else if(Maxj-a<1 ) 
    {
        if(MaxXj+total[Maxj+a]-total[Maxj]+total[Maxj-1]>=Value_area){shiftup=a; shiftdn=maxj-1; break;}        
       }
    else if(Maxj+a>relTodayRange ) 
    {
        if(MaxXj+total[relTodayRange]-total[Maxj]+total[Maxj-1]-total[Maxj-(a+1)] >=Value_area){shiftup=relTodayRange-maxj; shiftdn=a; break;}        
       }
 }

Vah = LineArray(baseX, baseY+(maxj+shiftup)*Den, i, baseY+(maxj+shiftup)*Den,0,True);
Val = LineArray(baseX, baseY+(maxj-shiftdn)*Den, i, baseY+(maxj-shiftdn)*Den,0,True);
poc = LineArray(baseX, baseY+maxj*Den, i, baseY+maxj*Den,0,True);
if(ViewVALVAH==1){Plot(Vah,"",ParamColor("Color_VA",  colorLightBlue),styleLine|styleNoRescale);
Plot(Val,"",ParamColor("Color_VA",  colorLightBlue),styleLine|styleNoRescale);}
if(ViewPOC==1){Plot(poc,"",Colorpoc,styleLine|styleNoRescale);}
PlotText(""+(baseY+(maxj+shiftup)*Den),i-5,baseY+(maxj+shiftup)*Den,colorWhite);
PlotText(""+(baseY+(maxj-shiftdn)*Den),i-5,baseY+(maxj-shiftdn)*Den,colorWhite);
if(ViewTPOCount==1){PlotText(""+total[maxj],basex,bot[i]-(Top[i]-bot[i])*0.05,ParamColor("Color_VAL", colorLavender));
PlotText(""+(total[relTodayRange]-total[maxj]),basex,Top[i]+(Top[i]*0.0005),ParamColor("Color_VAH", colorLavender));}

if(ViewPOC==1){PlotText(""+(baseY+maxjDen),i-5,baseY+maxjDen,Colorpoc);}
}

if (i < BarCount - 1 AND BarsInDay[i+1] == 0 OR i == BarCount-1) {

  for  (p = 1; p < relTodayRange+1; p++){
  line = LineArray(baseX, baseY+p*Den, baseX+x[p], baseY+p*Den);
  line2 = LineArray(baseX, baseY+(p-1)*Den, baseX+x[p-1], baseY+(p-1)*Den);

  if (EnMP2 == "Solid")
  {
  PlotOHLC( Line,  Line,  Line2, Line2, "",IIf(p>(maxj+shiftup),ParamColor("Color_VAH",  colorLavender),IIf(p<=(maxj+shiftup)AND p>(maxj-shiftdn),ParamColor("Color_VA", colorLightBlue),ParamColor("Color_VAL", colorLavender))) ,styleCloud|styleNoRescale|styleNoLabel);
  }
  if (EnMP2 == "Lines") 
  {
 Plot(line,"",IIf(p>(maxj+shiftup),ParamColor("Color_VAH", colorLavender),IIf(p<=(maxj+shiftup)AND p>(maxj-shiftdn),ParamColor("Color_VA", colorLightBlue),ParamColor("Color_VAL",  colorLavender))) , styleLines|styleNoLabel);
 }

}
if(Viewfill==1){PlotOHLC(Vah,Vah,Val,Val,"",Colorfill,styleCloud|styleNoRescale|styleNoLabel);}

}
}

_SECTION_END();

_SECTION_BEGIN(“Gradient Backfill”);
SetChartBkGradientFill( ParamColor(“BgTop”, ColorRGB( 0,0,0 )),

ParamColor(“BgBottom”, ColorRGB( 0,0,0 )),ParamColor(“titleblock”,ColorRGB( 192,192,192 )));
_SECTION_END();

For the above condition add the below AFL code on any of your Strategy or AFL to check OHLC  Values on Header of Chart Screen

_SECTION_BEGIN("Chart Settings");
ChartClr = ColorRGB(0,0,0);//colorLightGrey;
TopBorder1Clr =  ColorRGB(30,30,30);
TopBorder2Clr =  ColorRGB(40,40,40);
BotBorderClr = ColorRGB(30,30,30);
GfxSetBkMode(0);
SetChartOptions(0,chartShowArrows|chartShowDates);
SetChartBkGradientFill( ChartClr,ChartClr );
SetChartBkColor(ChartClr);
GfxSelectFont( "Georgia", 13, 400, False );
GfxSetTextColor( colorYellow );
Plot( C, "Close", colorDefault, ParamStyle("Chart Style",styleCandle,maskPrice));
Title = "";
pxw = Status("pxwidth");
pxh = Status("pxheight");
GfxGradientRect( 1, 0, pxw, 30, TopBorder1Clr, TopBorder1Clr);
GfxGradientRect( 1, 30, pxw, 60, TopBorder2Clr, TopBorder2Clr);
//GfxRectangle(pxw/2,1,(pxw/2)-5,pxh);
GfxSelectFont( "Tahoma", 13, 700, False,True );
GfxTextOut( "INTRA-DAY TRADING SYSTEM", (pxw/2)-125, 3 );
GfxSelectFont( "Segoe UI", 12, 700, False,False );
GfxSetTextColor( colorOrange );
GfxTextOut( Name() , 5, 3 );
GfxSelectFont( "Segoe UI", 12, 400, False,False );
GfxSetTextColor( colorSkyblue );
GfxTextOut( "Op: " + O , 1, 34 );
GfxSetTextColor( colorLime );
GfxTextOut( "Hi: " + H , 101, 34 );
GfxSetTextColor( colorRed );
GfxTextOut( "Lo: " + L , 201, 34 );
GfxSetTextColor( colorAqua );
GfxTextOut( "Cl: " + C , 301, 34 );
GfxSetTextColor( colorYellow );
GfxTextOut( "Dt: " + Date() , 401, 34 );
GfxSetTextColor( colorAqua );
_SECTION_END();

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