Candles_HigherTimeFrameBar





//+------------------------------------------------------------------+
//| Candles_HigherTimeFrameBar                           LargeTF.mq4 |
//|                                      Copyright © 2005, Miramaxx. |
//|                                    mailto: morrr2001[dog]mail.ru |
//+------------------------------------------------------------------+
//|Ïîñòðîåíèå íà ãðàôèêå ñâå÷åé ñòàðøåãî òàéìôðåéìà.                 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Miramaxx."
#property link "mailto: morrr2001[dog]mail.ru"
//----
#property indicator_chart_window
//----
extern string TF="240";
extern int CountBars=30;
extern color Bear=Maroon;
extern color Bull=MidnightBlue;
extern bool backgr= false;
//----
   datetime time1;
   datetime time2;
   double open_price,close_price;
   int bar_tf;
   int PeriodName=0;
   int num=0;
   string error=" error setting parameter: TF \n example: for H1 chart enter parameter: D1";

//   string error="Ïàðàìåòð TF çàäàí íå âåðíî \nÏðèìåð: äëÿ ÷àñîâîãî ãðàôèêà âûáåðèòå ïàðàìåòð D1.";
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   void ObjDel()
  {
   for(;num>=0;num--)
      ObjectDelete("Objtf"+num);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
 if (TF=="M1"||TF=="m1"||TF=="1") PeriodName=PERIOD_M1; // in Minutes or  as MT4 Periodicity Tab  //â òîì æå ïîðÿäêå, ÷òî è êíîïêè íà ïàíåëè
 else
    if (TF=="M5"||TF=="m5"||TF=="5") PeriodName=PERIOD_M5;
    else
       if (TF=="M15"||TF=="m15"||TF=="M5"||TF=="15")PeriodName=PERIOD_M15;
       else
          if (TF=="M30"||TF=="m30"||TF=="30")PeriodName=PERIOD_M30;
          else
             if (TF=="H1"||TF=="h1"||TF=="60") PeriodName=PERIOD_H1;
             else
               if (TF=="H4"||TF=="h4"||TF=="240") PeriodName=PERIOD_H4;
               else
                  if (TF=="D1"||TF=="d1"||TF=="1440") PeriodName=PERIOD_D1;
                  else
                     if (TF=="W1"||TF=="w1"||TF=="10080") PeriodName=PERIOD_W1;
                     else
                        if (TF=="MN"||TF=="mn"||TF=="43200") PeriodName=PERIOD_MN1;
                        else
                             {
                              Comment(error);
                              return(0);
                             }
   Comment("HigherTF (",TF,") Bar");
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
   ObjDel();
   Comment("");
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int i;
   ObjDel();
   num=0;
//----
   if (PeriodName<=Period())
     {
      Comment(error);
      return(0);
     }
//----
   for(bar_tf=CountBars;bar_tf>=0;bar_tf--)
     {
      time1=iTime(NULL,PeriodName,bar_tf);
      i=bar_tf-1;
      if (i<0)
         time2=Time[0];
      else
         time2=iTime(NULL,PeriodName,i)-Period()*60;
      open_price=iOpen(NULL,PeriodName,bar_tf);
      close_price=iClose(NULL,PeriodName,bar_tf);
//---
      ObjectCreate("Objtf"+num,OBJ_RECTANGLE,0,time1,open_price,time2,close_price);
               ObjectSet("Objtf"+num, OBJPROP_WIDTH, 3);
              ObjectSet("Objtf"+num, OBJPROP_BACK, backgr);

      if (time2-time1<PeriodName*60/2)
         time2=Time[0];
      else
         time2=time1+PeriodName*60/2;
      num++;
//----      
      ObjectCreate("Objtf"+num,OBJ_TREND,0,time2,iHigh(NULL,PeriodName,bar_tf),time2,iLow(NULL,PeriodName,bar_tf));
      ObjectSet("Objtf"+num, OBJPROP_WIDTH, 3);
      ObjectSet("Objtf"+num, OBJPROP_RAY, false);
//----      
      if (close_price>open_price)
        {
         ObjectSet("Objtf"+(num-1),OBJPROP_COLOR, Bull);
         ObjectSet("Objtf"+num,OBJPROP_COLOR, Bull);
         ObjectSet("Objtf"+num, OBJPROP_WIDTH, 3);


        }
      else
        {
         ObjectSet("Objtf"+(num-1),OBJPROP_COLOR, Bear);
         ObjectSet("Objtf"+num,OBJPROP_COLOR, Bear);
         ObjectSet("Objtf"+num, OBJPROP_BACK, false);

        }
      num++;
     }
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar
Series array that contains open prices of each bar
Series array that contains close prices for each bar
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: