[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Market Profile (look alike) in Amibroker



PureBytes Links

Trading Reference Links

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";


Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.16.12/628 - Release Date: 1/15/2007 11:04 AM