Market profile overlay

Market profile je velmi zajímavá technika, nicméně vyžaduje kvalitní data. Tento indikátor se pokouší o použití v prostředí MT4. Máme však pochybnosti o kvalitě dat i výstupu tohoto indikátoru. Ale vyzkoušejte a posuďte sami.

 

//+——————————————————————+
//|                                                 Level Sensor.mq4 |
//|                                          Copyright © 2005, Sfen. |
//+——————————————————————+
#property copyright „Copyright © 2005, Sfen“
#property indicator_chart_window
//—- input parameters
extern int       MAX_HISTORY=500;
extern int       STEP = 1;
int init()
{
return(0);
}
double CSH(int shift)
{
return (MathMax(Open[shift],Close[shift]));
}
double CSL(int shift)
{
return (MathMin(Open[shift],Close[shift]));
}
string OBJECT_PREFIX = „LEVELS“;
int ObjectId = 0;
string IntToStr(int X)
{
return (DoubleToStr(X,0));
}
string ObGetUniqueName(string Prefix)
{
ObjectId++;
return (Prefix+“ „+IntToStr(ObjectId));
}
void   ObDeleteObjectsByPrefix(string Prefix)
{
int L = StringLen(Prefix);
int i=0;
while (i<objectstotal())
{
string ObjName = ObjectName(i);
if (StringSubstr(ObjName,0,L)!=Prefix) { i++; continue;}
ObjectDelete(ObjName);
}
}
int deinit()
{
ObDeleteObjectsByPrefix(OBJECT_PREFIX);
return(0);
}
int start()
{
string S;
ObDeleteObjectsByPrefix(OBJECT_PREFIX);
double HH = 0;
double LL = 1000000;
int History = MathMin(Bars,MAX_HISTORY);

int i, j, k;
for (i=1; i<history; br=““>    {
HH = MathMax(HH,CSH(i));
LL = MathMin(LL,CSL(i));
}
int NumberOfPoints = (HH-LL)/(1.0*Point*STEP)+1;
int Count[];
ArrayResize(Count,NumberOfPoints);

for (i=0; i<numberofpoints;>    for (i=1; i<history; br=““>    {
double C = CSL(i);
while (C<csh(i))
{
int Index = (C-LL)/(1.0*Point*STEP);
Count[Index]++;
C += 1.0*Point*STEP;
}
}

for (i=0; i<numberofpoints; br=““>    {
double StartX = Time[5];
double StartY = LL + 1.0*Point*STEP*i;
double EndX   = Time[5+Count[i]];
double EndY   = StartY;

string ObjName = ObGetUniqueName(OBJECT_PREFIX);
ObjectDelete(ObjName);
ObjectCreate(ObjName,OBJ_TREND,0,StartX,StartY,EndX,EndY);
ObjectSet(ObjName,OBJPROP_RAY,0);
ObjectSet(ObjName,OBJPROP_COLOR,Red);

}
return(0);
}
//+——————————————————————+

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *