rajendrani can u upload the MP afl really ur charts are lookin good
Code:
_SECTION_BEGIN("MarketProfile");
//------------------------------------------------------------------------------
//
// Formula Name: Market Profile
//
// Use with 5/15min chart
// Originial - From AFL library
// Edited by - Milind
//Market Profile
Den = Param("Density", 1, 0.25, 100, 0.25); // Resolution in terms of $
IBBars = Param("Initial Balance Bars", 2, 0, 5, 1);
EnIB = Param("Show Initial Balance", 1, 0, 1, 1);
EnMP = Param("Show Market Profile", 1, 0, 2, 1);
PlotOHLC(O,H,L,C,"Price",IIf(C>O,colorGreen,colorRed),styleCandle);
BarsInDay = BarsSince(Day() != Ref(Day(), -1));
Bot = TimeFrameGetPrice("L", inDaily, 0);
Top = TimeFrameGetPrice("H", inDaily, 0);
Vol = TimeFrameGetPrice("V", inDaily, 0);
POC = H - H;
VAL = H - H;
VAH = H - H;
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];
if (LAveRange < 1) {Den = 0.05;}
else if (LAveRange < 10) {Den = 0.25;}
else if (LAveRange < 20) {Den = 0.5;}
else if (LAveRange < 100) {Den = 1;}
else if (LAveRange < 500) {Den = 5;}
else {Den = 1;}
// Initialization
baseX = 0;
baseY = floor(Bot[0]/Den)*Den;
relTodayRange = 0;
firstVisBar = Status("firstvisiblebar");
lastVisBar = Status("lastvisiblebar");
D=.0005;
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;
}
}
if (EnMP == 2) {
for (j=0; j<= relTodayRange; j++) {
if (L[i] <= baseY+j*Den AND H[i] >= baseY+j*Den) {
PlotText(StrExtract("A,B,C,D,E,F,G,H,I,J,K,L,M,N",
BarsInDay[i]), baseX+x[j], baseY+j*Den, colorBlack);
x[j]++;
}
}
}
else if (EnMP == 1) {
for (j=0; j<= relTodayRange; j++) {
if (L[i] <= baseY+j*Den AND H[i] >= baseY+j*Den) {
line = LineArray(baseX, baseY+j*Den, baseX+x[j]+1, baseY+j*Den);
Plot(line,"",ParamColor("Color", colorGold), styleLine+styleDots);
x[j]++;
}
}
}
// Draw Initial Balance after 11am bar is complete
if (BarsInDay[i] == IBBars+1 AND EnIB == 1) {
Line1 = LineArray(i-2, curtop[i-1],i+10, curtop[i-1],0,True);
Plot(Line1,"",colorRed,styleLine+styleDashed);
Line1 = LineArray(i-2, curbot[i-1],i+10, curbot[i-1],0,True);
Plot(Line1,"",colorRed,styleLine+styleDashed);
}
// Examine x[j]
if ((i < BarCount - 1 AND BarsInDay[i+1] == 0) OR i == BarCount-1) {
maxXj = 0;
for (j=0; j<= relTodayRange; j++) {
if (maxXj < x[j]) {maxXj = x[j]; maxj = j;}
}
for (k=i-BarsInDay[i];k<=i;k++) {
POC[k] = baseY+Maxj*Den;
}
Line1 = LineArray(baseX, baseY+maxj*Den, i, baseY+maxj*Den,0,True);
Line1a=Line1+d*Line1;
Line1b=Line1-d*Line1;
Plot(Line1,"",colorWhite,styleDots+styleThick);
Plot(Line1a,"",colorWhite,styleDots+styleThick);
Plot(Line1b,"",colorWhite,styleDots+styleThick);
}
}
Plot(POC,"POC",colorBlack,styleDots);
_SECTION_END();
_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | styleHidden | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();