Author: Copyright 2015, Kabul
fract1
Price Data Components
Series array that contains the highest prices of each barSeries array that contains the lowest prices of each barSeries array that contains open prices of each barSeries array that contains close prices for each bar
0 Views
0 Downloads
0 Favorites
fract1
//+------------------------------------------------------------------+
//|                                                       Fract1.mq4 |
//|                                            Copyright 2015, Kabul |
//|                                               panji_xx@yahoo.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Kabul"
#property link      "panji_xx@yahoo.com"
#property version   "1.00"
#property strict
#property indicator_chart_window

input int    X_distance=770; 
input int    Y_distance=25; 

int    X_dist,Y_dist;
int    kstrok,kdown;

double M1[5],M5[3],M15[2],M30[2],M60[4],M240[6],M1440[5];
double M1max,M1min,M1ave,M5max,M5min,M5ave,M15max,M15min,M15ave,M30max,M30min,M30ave;
double M60max,M60min,M60ave,M240max,M240min,M240ave,M1440max,M1440min,M1440ave;
color  wrn;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
     EventSetTimer(1);
     X_dist=X_distance;
     Y_dist=Y_distance;
     return(INIT_SUCCEEDED);
  }
  
int deinit()
  {

  for(int i=1;i<44;i++)
    {
     ObjectDelete(StringConcatenate("Text"+IntegerToString(i)));
    }

  for(int i=0;i<4;i++)
    {
     ObjectDelete(StringConcatenate("M1"+IntegerToString(i)));
     ObjectDelete(StringConcatenate("M5"+IntegerToString(i)));
     ObjectDelete(StringConcatenate("M15"+IntegerToString(i)));
     ObjectDelete(StringConcatenate("M30"+IntegerToString(i)));
     ObjectDelete(StringConcatenate("M60"+IntegerToString(i)));
     ObjectDelete(StringConcatenate("M240"+IntegerToString(i)));
     ObjectDelete(StringConcatenate("M1440"+IntegerToString(i)));
    } 

      return(0);    
  }  
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

//--- return value of prev_calculated for next call
   return(rates_total);
  }
  
void OnChartEvent(const int id,         // Event identifier  
                  const long& lparam,   // Event parameter of long type
                  const double& dparam, // Event parameter of double type
                  const string& sparam) // Event parameter of string type
                  
{
    if (id==CHARTEVENT_KEYDOWN)
     {
        kstrok=lparam;kdown=StringToInteger(sparam);
     }     
     
    if ((id==CHARTEVENT_CLICK)&&(kstrok==77)&&(kdown==16434))
     {
       X_dist=lparam;Y_dist=dparam;
       kstrok=0;kdown=0;
     }
}  
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   
    SetText("Text1","High Daily : ",X_dist,Y_dist,clrWhite,12,"Arial Black");
    SetText("Text2","Low  Daily : ",X_dist,Y_dist+20,clrWhite,12,"Arial Black");
 
    SetText("Text4",DoubleToString(iHigh(NULL,1440,0),Digits),X_dist+105,Y_dist,clrWhite,12,"Arial Black");
    SetText("Text5",DoubleToString(iLow(NULL,1440,0),Digits),X_dist+105,Y_dist+20,clrWhite,12,"Arial Black");
 
  
    HiLoCnd();
    
    SetText("Text7","Max",X_dist,Y_dist+70,clrWhite,8,"Arial");
    SetText("Text8","Min",X_dist,Y_dist+85,clrWhite,8,"Arial");
    SetText("Text9","Ave",X_dist,Y_dist+100,clrWhite,8,"Arial");

    SetText("Text40","3",X_dist,Y_dist+130,clrWhite,8,"Arial");
    SetText("Text41","2",X_dist,Y_dist+140,clrWhite,8,"Arial");
    SetText("Text42","1",X_dist,Y_dist+150,clrWhite,8,"Arial");
    SetText("Text43","0",X_dist,Y_dist+160,clrWhite,8,"Arial");
    
    SetText("Text10",DoubleToString(M1max,0),X_dist+25,Y_dist+70,clrWhite,8,"Arial");
    SetText("Text11",DoubleToString(M1min,0),X_dist+25,Y_dist+85,clrWhite,8,"Arial");
    SetText("Text12",DoubleToString(M1ave,0),X_dist+25,Y_dist+100,clrWhite,8,"Arial");    
    
    SetText("Text13",DoubleToString(M5max,0),X_dist+45,Y_dist+70,clrWhite,8,"Arial");
    SetText("Text14",DoubleToString(M5min,0),X_dist+45,Y_dist+85,clrWhite,8,"Arial");
    SetText("Text15",DoubleToString(M5ave,0),X_dist+45,Y_dist+100,clrWhite,8,"Arial");       
    
    SetText("Text16",DoubleToString(M15max,0),X_dist+65,Y_dist+70,clrWhite,8,"Arial");
    SetText("Text17",DoubleToString(M15min,0),X_dist+65,Y_dist+85,clrWhite,8,"Arial");
    SetText("Text18",DoubleToString(M15ave,0),X_dist+65,Y_dist+100,clrWhite,8,"Arial");             
    
    SetText("Text19",DoubleToString(M30max,0),X_dist+87,Y_dist+70,clrWhite,8,"Arial");
    SetText("Text20",DoubleToString(M30min,0),X_dist+87,Y_dist+85,clrWhite,8,"Arial");
    SetText("Text21",DoubleToString(M30ave,0),X_dist+87,Y_dist+100,clrWhite,8,"Arial");                 
    
    SetText("Text22",DoubleToString(M60max,0),X_dist+109,Y_dist+70,clrWhite,8,"Arial");
    SetText("Text23",DoubleToString(M60min,0),X_dist+109,Y_dist+85,clrWhite,8,"Arial");
    SetText("Text24",DoubleToString(M60ave,0),X_dist+109,Y_dist+100,clrWhite,8,"Arial");                    
    
    SetText("Text25",DoubleToString(M240max,0),X_dist+131,Y_dist+70,clrWhite,8,"Arial");
    SetText("Text26",DoubleToString(M240min,0),X_dist+131,Y_dist+85,clrWhite,8,"Arial");
    SetText("Text27",DoubleToString(M240ave,0),X_dist+131,Y_dist+100,clrWhite,8,"Arial");                          
    
    SetText("Text28",DoubleToString(M1440max,0),X_dist+153,Y_dist+70,clrWhite,8,"Arial");
    SetText("Text29",DoubleToString(M1440min,0),X_dist+153,Y_dist+85,clrWhite,8,"Arial");
    SetText("Text30",DoubleToString(M1440ave,0),X_dist+153,Y_dist+100,clrWhite,8,"Arial");                         
    
    SetText("Text31","M1 M5  M15 M30 1H   4H   1D",X_dist+25,Y_dist+115,clrWhite,8,"Arial");    
    
    MakePanel(X_dist+25,Y_dist+160);                         
    
    SetText("Text32","Now",X_dist,Y_dist+180,clrWhite,8,"Arial");
    
    warna((iHigh(NULL,1,0)-iLow(NULL,1,0))/Point,M1ave,M1max);
    SetText("Text33",DoubleToString((iHigh(NULL,1,0)-iLow(NULL,1,0))/Point,0),X_dist+25,Y_dist+180,wrn,8,"Arial");
    warna((iHigh(NULL,5,0)-iLow(NULL,5,0))/Point,M5ave,M5max);
    SetText("Text34",DoubleToString((iHigh(NULL,5,0)-iLow(NULL,5,0))/Point,0),X_dist+45,Y_dist+180,wrn,8,"Arial");
    warna((iHigh(NULL,15,0)-iLow(NULL,15,0))/Point,M15ave,M15max);
    SetText("Text35",DoubleToString((iHigh(NULL,15,0)-iLow(NULL,15,0))/Point,0),X_dist+65,Y_dist+180,wrn,8,"Arial");
    warna((iHigh(NULL,30,0)-iLow(NULL,30,0))/Point,M30ave,M30max);
    SetText("Text36",DoubleToString((iHigh(NULL,30,0)-iLow(NULL,30,0))/Point,0),X_dist+87,Y_dist+180,wrn,8,"Arial");
    warna((iHigh(NULL,60,0)-iLow(NULL,60,0))/Point,M60ave,M60max);
    SetText("Text37",DoubleToString((iHigh(NULL,60,0)-iLow(NULL,60,0))/Point,0),X_dist+109,Y_dist+180,wrn,8,"Arial");
    warna((iHigh(NULL,240,0)-iLow(NULL,240,0))/Point,M240ave,M240max);
    SetText("Text38",DoubleToString((iHigh(NULL,240,0)-iLow(NULL,240,0))/Point,0),X_dist+131,Y_dist+180,wrn,8,"Arial");
    warna((iHigh(NULL,1440,0)-iLow(NULL,1440,0))/Point,M1440ave,M1440max);
    SetText("Text39",DoubleToString((iHigh(NULL,1440,0)-iLow(NULL,1440,0))/Point,0),X_dist+153,Y_dist+180,wrn,8,"Arial");
    
  }
//+------------------------------------------------------------------+



void SetText(string name,string text,int x,int y,color colour,int fontsize=12, string fontname="Arial")
  {
     ObjectDelete(name);
   if(ObjectCreate(0,name,OBJ_LABEL,0,0,0))
     {
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(0,name,OBJPROP_COLOR,colour);
      ObjectSetInteger(0,name,OBJPROP_FONTSIZE,fontsize);
      ObjectSetString(0,name,OBJPROP_FONT,fontname);
      ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
     }
   ObjectSetString(0,name,OBJPROP_TEXT,text);
  }
  

 
 void HiLoCnd()
 {
   int hit;
   M1ave=0;M5ave=0;M15ave=0;M30ave=0;M60ave=0;M240ave=0;M1440ave=0;
   M1max=0;M5max=0;M15max=0;M30max=0;M60max=0;M240max=0;M1440max=0;
   M1min=10000;M5min=10000;M15min=10000;M30min=10000;M60min=10000;M240min=10000;M1440min=10000;
   for (hit=1;hit<6;hit++)
    {
      M1[hit-1]=(iHigh(NULL,1,hit)-iLow(NULL,1,hit))/Point;    
      M1ave=M1ave+M1[hit-1];
      if(M1max<M1[hit-1]) {M1max=M1[hit-1];}
      if(M1min>M1[hit-1]) {M1min=M1[hit-1];}
    }

      M1ave=M1ave/5;
   for (hit=1;hit<4;hit++)
    {
      M5[hit-1]=(iHigh(NULL,5,hit)-iLow(NULL,5,hit))/Point;    
      M5ave=M5ave+M5[hit-1];
      if(M5max<M5[hit-1]) {M5max=M5[hit-1];}
      if(M5min>M5[hit-1]) {M5min=M5[hit-1];}      
    }    

      M5ave=M5ave/3;    
   for (hit=1;hit<3;hit++)
    {
      M15[hit-1]=(iHigh(NULL,15,hit)-iLow(NULL,15,hit))/Point;    
      M15ave=M15ave+M15[hit-1];
      if(M15max<M15[hit-1]) {M15max=M15[hit-1];}
      if(M15min>M15[hit-1]) {M15min=M15[hit-1];}
    }    

      M15ave=M15ave/2;    
    
   for (hit=1;hit<3;hit++)
    {
      M30[hit-1]=(iHigh(NULL,30,hit)-iLow(NULL,30,hit))/Point;    
      M30ave=M30ave+M30[hit-1];
      if(M30max<M30[hit-1]) {M30max=M30[hit-1];}
      if(M30min>M30[hit-1]) {M30min=M30[hit-1];}      
    }    

      M30ave=M30ave/2;    
    
   for (hit=1;hit<5;hit++)
    {
      M60[hit-1]=(iHigh(NULL,60,hit)-iLow(NULL,60,hit))/Point;    
      M60ave=M60ave+M60[hit-1];
      if(M60max<M60[hit-1]) {M60max=M60[hit-1];}
      if(M60min>M60[hit-1]) {M60min=M60[hit-1];}      
    }    

      M60ave=M60ave/4;
          
   for (hit=1;hit<7;hit++)
    {
      M240[hit-1]=(iHigh(NULL,240,hit)-iLow(NULL,240,hit))/Point;    
      M240ave=M240ave+M240[hit-1];
      if(M240max<M240[hit-1]) {M240max=M240[hit-1];}
      if(M240min>M240[hit-1]) {M240min=M240[hit-1];}      
    }    

      M240ave=M240ave/6;    
    
   for (hit=1;hit<6;hit++)
    {
      M1440[hit-1]=(iHigh(NULL,1440,hit)-iLow(NULL,1440,hit))/Point;    
      M1440ave=M1440ave+M1440[hit-1];
      if(M1440max<M1440[hit-1]) {M1440max=M1440[hit-1];}
      if(M1440min>M1440[hit-1]) {M1440min=M1440[hit-1];}      
    }    

      M1440ave=M1440ave/5;    
 }
 
 
 
   void MakePanel(int posx, int posy)
  {
     int x,y,i;
     int tf[7];
     tf[0]=1;tf[1]=5;tf[2]=15;tf[3]=30;tf[4]=60;tf[5]=240;tf[6]=1440;

     y=0;x=20;
     
      for (y=0;y<7;y++)
       {
        for (i=0;i<4;i++)
        {
          if (y>3) {x=22;}
          if (y==3) {x=21;}
          ObjectDelete("M"+IntegerToString(tf[y])+IntegerToString(i));
          if (iOpen(NULL,tf[y],i)<iClose(NULL,tf[y],i))
           {
             SetPanel("M"+IntegerToString(tf[y])+IntegerToString(i),0,posx+(y*x),posy-(i*10),10,10,clrLime,clrBlack,1);              
           }
           
          if (iOpen(NULL,tf[y],i)>=iClose(NULL,tf[y],i))
           {
             SetPanel("M"+IntegerToString(tf[y])+IntegerToString(i),0,posx+(y*x),posy-(i*10),10,10,clrRed,clrBlack,1);              
           }           
        }
       }
  }
  
  
void SetPanel(string name,int sub_window,int x,int y,int width,int height,color bg_color,color border_clr,int border_width)
  {
   if(ObjectCreate(0,name,OBJ_RECTANGLE_LABEL,sub_window,0,0))
     {
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(0,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(0,name,OBJPROP_YSIZE,height);
      ObjectSetInteger(0,name,OBJPROP_COLOR,border_clr);
      ObjectSetInteger(0,name,OBJPROP_BORDER_TYPE,BORDER_FLAT);
      ObjectSetInteger(0,name,OBJPROP_WIDTH,border_width);
      ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
      ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(0,name,OBJPROP_BACK,false);
      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,0);
      ObjectSetInteger(0,name,OBJPROP_SELECTED,0);
      ObjectSetInteger(0,name,OBJPROP_HIDDEN,true);
      ObjectSetInteger(0,name,OBJPROP_ZORDER,0);
     }
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,bg_color);
  }  
  
void warna(double inow, double ave, double imax)
{
  wrn=clrWhite;
  if (inow>=ave) {wrn=clrLime;}
  if (inow>=imax) {wrn=clrRed;}
}  

Comments