Beruflich Dokumente
Kultur Dokumente
//|
This has been coded by MT-Coder
|
//|
|
//|
Email: mt-coder@hotmail.com
|
//|
Website: mt-coder.110mb.com
|
//|
|
//|
For any strategy you have in mind to be coded into EA
|
//|
For any indicator you have in mind
|
//|
|
//|
Don't hesitate to contact me at mt-coder@hotmail.com
|
//|
Or on the Website: mt-coder.110mb.com
|
//|
|
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|
|
//|
The purpose of this indicator is to highlight the price zones |
//|
that had the most activity : the hottest zones.
|
//|
|
//|
The indicator shows a gradiant of colors from Cold to Hot
|
//|
|
//|
Latest issue Aug 05 2010
|
//|
|
//|
|
//|
** ** ** * ** * *** SETTINGS ** ** **** ** * **
|
//|
HMPeriod : the number of bars included in the count
|
//|
Scale : the size of each zone.
|
//|
NbZone : the number of zones to create.
|
//|
Cold : the color of the coldest zones.
|
//|
Hot : the color of the hottest zones.
|
//|
|
//|
-------------------------------------|
//|
|
//| The two functions rgb2int() and colorgradient() were used from |
|
//| http://www.thetradingtheory.com/colors-in-mql4/
|
//|
thanks to zenhop for pointing out to them
|
//+------------------------------------------------------------------+
//---extern
extern
extern
extern
extern
input parameters
int HMPeriod = 500;
int Scale = 10;
int NbZone = 100;
color Cold = C'151,249,234';
color Hot = C'255,87,83';
//+------------------------------------------------------------------+
//| Custom indicator initialization function
|
//+------------------------------------------------------------------+
void init() {
datetime dt2, dt;
dt = Time[0];
dt2 = dt + 3000*Period();
DeleteObjects();
for (int i=1; i<=NbZone; i++) {
CreateObjects("zone"+i,dt,Close[0]+(Scale*Point*(i-1)),dt2,Close[0]+(Scale*P
oint*i));
int m = -i;
CreateObjects("zone"+m,dt,Close[0]-(Scale*Point*(i-1)),dt2,Close[0]-(Scale*P
oint*i));
}
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function
|
//+------------------------------------------------------------------+
void deinit() {
DeleteObjects();
return(0);
}
//+------------------------------------------------------------------+
//|
|
//+------------------------------------------------------------------+
void CreateObjects(string no, datetime t1, double p1, datetime t2, double p2) {
ObjectCreate(no, OBJ_RECTANGLE, 0, t1,p1, t2,p2);
ObjectSet(no, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(no, OBJPROP_BACK, True);
}
//+------------------------------------------------------------------+
//|
|
//+------------------------------------------------------------------+
void DeleteObjects() {
for (int i=1; i<=NbZone; i++) {
ObjectDelete("zone"+i);
int m=-i;
ObjectDelete("zone"+m);
}
}
//+------------------------------------------------------------------+
//|
|
//+------------------------------------------------------------------+
int start()
{
Comment("Heat Map MultiColor\n","Programed By: MT-Coder\n", "** MT-Coder@hotma
il.com **\n", "http://MT-Coder.110mb.com");
init();
int m=-j;
for(int i=1; i<HMPeriod; i++)
{
//-----for the values upper than the actual price
if(Low[i]<Close[0]+(Scale*Point*j) && High[i]>Close[0]+(Scale*Point
*(j-1)))
{
//---the possible cases of presence of the bar fully or partially
within the scale
if(High[i]-Low[i]>Scale*Point){ var1 = var1 + 1 ;}
//--if(High[i]>= Bid+(Scale*Point*j) && Low[i]<=Bid+(Scale*Point*(j-1
))){ var1 = var1 + ((High[i]-Low[i])/(Scale*Point));}
//--if(High[i]>Bid+(Scale*Point*j) && Low[i]>Bid+(Scale*Point*(j-1)))
{ var1 = var1 + ((Bid+(Scale*Point*j)-Low[i])/(Scale*Point));}
//--if(Low[i]<Bid+(Scale*Point*(j-1)) && High[i]<Bid+(Scale*Point*j))
{var1 = var1 + ((High[i]-Bid+(Scale*Point*(j-1)))/(Scale*Point));}
}
}
}