I thought this would be a popular topic as I did futher research on market profile this weekend and was hoping that someone may have had a genuine interest in building on this program to create something that adds great value to amibroker trading tools.
Any help would be great appreciated - Thank you. --- In [email protected], "rf_mail1" <[EMAIL PROTECTED]> wrote: > > Hello - I have this indicator from "Noname" that is currently in the > amibroker online library. However, I am hoping that this could be > improved to show Point of control, and to display the actual price > figure at which POC is. Also, to show the points of control from "X" > number of prior days, and to be a shown as a line (color red) in the > current intra day chart, along with a dynamic moving POC in real time > (color to be blue). > > I do not pretend to know all there is about Market profile, as I am > in the process of learning it, and was hoping that others may already > have done this programming and would like to share this. Or perhaps > would like to build on this below. > > I did try to understand this coding and do it myself, but its beyond > my skills and therefore looking for the generosity of others. > > Thank you in advance. Please let me know if I am out of line with > this request- it just seems it would be a valuable indicator to have. > > > //Market Profile (by Noname) posted in amibroker online library) > GraphXSpace = 5; > SetChartOptions(0, chartShowDates); > > //=========================== > > Den = Param("Density", 40, 10, 100, 10); > ShowMP = ParamToggle("Show MP", "No|Yes"); > ShowVP = ParamToggle("Show VP", "No|Yes"); > StyleMP = ParamStyle("style MP", styleLine, maskAll); > StyleVP = ParamStyle("style VP", styleLine, maskAll); > > //=========================== > BarsInDay = BarsSince(Day() != Ref(Day(), -1)) + 1; > > //=========================== > NewDay = Day() != Ref(Day(), 1) OR Cum(1) == BarCount; > > //=========================== > Bot = TimeFrameGetPrice("L", inDaily, 0); > Top = TimeFrameGetPrice("H", inDaily, 0); > Vol = TimeFrameGetPrice("V", inDaily, 0); > > //=========================== > > Range = Highest(Top-Bot); > Box = Range/Den; > VolumeUnit = Vol/BarsInDay; > > for (k = 0; k < Den; k++) // loop through each line > (price) starting at the Lowest price > { > Line = Bot + k*Box; > detect = Line >= L & Line <= H; > > if(ShowMP == True) > { > CountMPString = IIf(NewDay, Sum(detect, BarsInDay), > 0); > CountMPString = Ref(ValueWhen(NewDay, CountMPString, > 0), -1); > MpLine = IIf(CountMPString >= BarsInDay, Line, Null); > > Plot(MPLine, "", colorRed, styleMP); > } > > if(ShowVP == True) > { > CountVPString = IIf(NewDay, Sum(detect*V, > BarsInDay)/VolumeUnit, 0); > CountVPString = Ref(ValueWhen(NewDay, CountVPString, > 0), -1); > VpLine = IIf(CountVPString >= BarsInDay, Line + > Box/4, Null); > // Plot() > Plot(VPLine, "", colorBlue, styleVP); > } > } > > Title = "{{NAME}} - {{INTERVAL}} {{DATE}} {{VALUES}} - \\c04 Market > Profile \\c06 Volume Profile"; >
