3 Candle Chart Indicator For MT4

3 Candle Chart Indicator For MT4

The 3 Candle Chart Indicator For MT4 plots 3 candles per trading day that depict the nature of price action of the below sessions: 1. Candle 1 - Open of London Trading to New York Open 2. Candle 2 - New York Open to London Close 3. Candle 3 - Close of London Trading to New York Close The indicator works only on the hourly time frame.

FREE 3-Candle Chart Indicator

Download the FREE 3-Candle Chart Indicator for MT4.

To receive my email 100% sure: 
Put my email on your whitelist!

 

Partially Automated Trading Besides Your Day Job

Alerts In Real-Time When Divergences Occur

My Recommended MT4/MT5 Broker

 

Installing the 3 Candle Chart Indicator For MT4

After you downloaded the indicator via the form above you need to unzip the zip-file. Then you need to copy the file 01-SB_3-Candle-Chart.mq4 into the folder MQL4\Indicators of your MT4 installation. After that please restart MT4 and then you will be able to see the indicator in the list of indicators.

Parameters of the 3 Candle Chart Indicator For MT4

The 3 Candle Chart Indicator For MT4 has 2 parameters to configure.

extern int  timeoffset=2;  //Offset from the time of the broker to GMT
extern int  SBnumber=0;  // Special offset to adjust the requested periods

Buffers of the 3 Candle Chart Indicator For MT4

The 3 Candle Chart Indicator For MT4 provides 1 buffers.

SetIndexBuffer(0,openhr);

Main Parts Of The Code

int start()
  {
   string tempstmp;
   if (Period()==60)  // Indicator only work on 1 hour charts
      {      
      currentbar=numberofbars;
      nopwrzone=0;
      noeurzone=0;
      nouszone=0;
      while (currentbar  gt  0)
         {
         tempstmp=TimeHour(Time[currentbar])-timeoffset+SBnumber;
         if (tempstmp=="-1") tempstmp="23";
         if (tempstmp=="-2") tempstmp="22";
          
         //-
         if (tempstmp=="8") // Opening of London
            {
            //openhr[currentbar]=Close[currentbar]; 
            eurOtime=Time[currentbar];
            eurOLprice=Low[currentbar];
            eurOHprice=High[currentbar];
            eurOOprice=Open[currentbar];
            eurOCprice=Close[currentbar];     
            }
         if (tempstmp=="10") eurM1=Time[currentbar];
         //--
         if (tempstmp=="11") eurM2=Time[currentbar];
         //--
         //----------------------------------------------------------------------------------------------
         if (tempstmp=="13") // Opening of New York
            {
            //openhr[currentbar]=Open[currentbar];  
            eurHighest=High[iHighest(NULL,0,MODE_HIGH,6,currentbar)];
            eurLowest=Low[iLowest(NULL,0,MODE_LOW,6,currentbar)];
            pwrOtime=Time[currentbar];
            pwrOLprice=Low[currentbar];
            pwrOHprice=High[currentbar];
            pwrOOprice=Open[currentbar];
            pwrOCprice=Close[currentbar];
            // routine to display EUR open to POWER HOURS 
            noeurzone=noeurzone+1;
            ObjectCreate("eurzone"+noeurzone, OBJ_RECTANGLE,0,eurOtime, eurOOprice,pwrOtime,pwrOCprice); 
            if (eurOOprice gt pwrOCprice)
               { 
               ObjectSet("eurzone"+noeurzone,OBJPROP_COLOR,FireBrick);
               ObjectCreate("eurzoneH"+noeurzone, OBJ_RECTANGLE,0,eurM1, eurOOprice,eurM2,eurHighest);
               ObjectSet("eurzoneH"+noeurzone,OBJPROP_COLOR,Black);
               ObjectCreate("eurzoneL"+noeurzone, OBJ_RECTANGLE,0,eurM1, pwrOCprice,eurM2,eurLowest);
               ObjectSet("eurzoneL"+noeurzone,OBJPROP_COLOR,Black);
               } 
            else 
               {
               ObjectSet("eurzone"+noeurzone,OBJPROP_COLOR,Black);
               ObjectSet("eurzone"+noeurzone, OBJPROP_BACK, 0);
               ObjectSet("eurzone"+noeurzone, OBJPROP_WIDTH, 2);
               ObjectCreate("eurzoneH"+noeurzone, OBJ_RECTANGLE,0,eurM1, pwrOCprice,eurM2,eurHighest);
               ObjectSet("eurzoneH"+noeurzone,OBJPROP_COLOR,Black);
               ObjectCreate("eurzoneL"+noeurzone, OBJ_RECTANGLE,0,eurM1, eurOOprice,eurM2,eurLowest);
               ObjectSet("eurzoneL"+noeurzone,OBJPROP_COLOR,Black);
               }
         }
         //--
         if (tempstmp=="14") pwrM1=Time[currentbar];
         //--
         if (tempstmp=="16") pwrM2=Time[currentbar];
         //----------------------------------------------------------------------------------------------
         if (tempstmp=="17") // Close of London
            {
            //openhr[currentbar]=Close[currentbar];
            //--
            pwrHighest=High[iHighest(NULL,0,MODE_HIGH,5,currentbar)];
            pwrLowest=Low[iLowest(NULL,0,MODE_LOW,5,currentbar)];
            pwrCtime=Time[currentbar];
            pwrCLprice=Low[currentbar];
            pwrCHprice=High[currentbar];
            pwrCOprice=Open[currentbar];
            pwrCCprice=Close[currentbar];
            // Routine to display POWER HOURS open to close
            nopwrzone=nopwrzone+1;
            if (pwrOtime==0) pwrOtime=pwrCtime;
            ObjectCreate("powerzone"+nopwrzone, OBJ_RECTANGLE,0,pwrOtime, pwrOOprice,pwrCtime,pwrCCprice);
            if (pwrCCprice lt pwrOOprice)
               { 
               ObjectSet("powerzone"+nopwrzone,OBJPROP_COLOR,FireBrick);
               ObjectCreate("powerzoneH"+nopwrzone, OBJ_RECTANGLE,0,pwrM1, pwrOOprice,pwrM2,pwrHighest);
               ObjectSet("powerzoneH"+nopwrzone,OBJPROP_COLOR,Black);
               ObjectCreate("powerzoneL"+nopwrzone, OBJ_RECTANGLE,0,pwrM1, pwrCCprice,pwrM2,pwrLowest);
               ObjectSet("powerzoneL"+nopwrzone,OBJPROP_COLOR,Black);
               } 
            else 
               {
               ObjectSet("powerzone"+nopwrzone,OBJPROP_COLOR,Black);
               ObjectSet("powerzone"+nopwrzone, OBJPROP_BACK, 0);
               ObjectSet("powerzone"+nopwrzone, OBJPROP_WIDTH, 2);
               ObjectCreate("powerzoneH"+nopwrzone, OBJ_RECTANGLE,0,pwrM1, pwrCCprice,pwrM2,pwrHighest);
               ObjectSet("powerzoneH"+nopwrzone,OBJPROP_COLOR,Black);
               ObjectCreate("powerzoneL"+nopwrzone, OBJ_RECTANGLE,0,pwrM1, pwrOOprice,pwrM2,pwrLowest);
               ObjectSet("powerzoneL"+nopwrzone,OBJPROP_COLOR,Black);
               }
         timeoweek=TimeDayOfWeek(eurOtime);
         if (timeoweek==1) dayoweek=129;
         if (timeoweek==2) dayoweek=130;
         if (timeoweek==3) dayoweek=131;
         if (timeoweek==4) dayoweek=132;
         if (timeoweek==5) dayoweek=133;
         ObjectCreate("day1"+noeurzone, OBJ_ARROW, 0, pwrM2, pwrLowest);
         ObjectSet("day1"+noeurzone,OBJPROP_COLOR,Black);
         ObjectSet("day1"+noeurzone,OBJPROP_ARROWCODE,dayoweek);
         ObjectSet("day1"+noeurzone,OBJPROP_WIDTH,2);
          }
          //--
         if (tempstmp=="19") usM1=Time[currentbar];
         //--
         if (tempstmp=="20") usM2=Time[currentbar];
         //----------------------------------------------------------------------------------------------
         if (tempstmp=="22") // Close of New York
            {
            //openhr[currentbar]=Close[currentbar];
            //--
            usHighest=High[iHighest(NULL,0,MODE_HIGH,6,currentbar)];
            usLowest=Low[iLowest(NULL,0,MODE_LOW,6,currentbar)];
            usCtime=Time[currentbar];
            usCLprice=Low[currentbar];
            usCHprice=High[currentbar];
            usCOprice=Open[currentbar];
            usCCprice=Close[currentbar];
            // Routine to display POWER HOURS close to US close
            nouszone=nouszone+1;
            if (pwrCtime==0) pwrCtime=usCtime;
            ObjectCreate("uszone"+nouszone, OBJ_RECTANGLE,0,pwrCtime, pwrCOprice,usCtime,usCCprice);
            if (usCCprice lt pwrCOprice)
               { 
               ObjectSet("uszone"+nouszone,OBJPROP_COLOR,FireBrick);
               ObjectCreate("uszoneH"+nouszone, OBJ_RECTANGLE,0,usM1, pwrCOprice,usM2,usHighest);
               ObjectSet("uszoneH"+nouszone,OBJPROP_COLOR,Black);
               ObjectCreate("uszoneL"+nouszone, OBJ_RECTANGLE,0,usM1, usCCprice,usM2,usLowest);
               ObjectSet("uszoneL"+nouszone,OBJPROP_COLOR,Black);
               } 
            else 
               {
               ObjectSet("uszone"+nouszone,OBJPROP_COLOR,Black);
               ObjectSet("uszone"+nouszone, OBJPROP_BACK, 0);
               ObjectSet("uszone"+nouszone, OBJPROP_WIDTH, 2);
               ObjectCreate("uszoneH"+nouszone, OBJ_RECTANGLE,0,usM1, usCCprice,usM2,usHighest);
               ObjectSet("uszoneH"+nouszone,OBJPROP_COLOR,Black);
               ObjectCreate("uszoneL"+nouszone, OBJ_RECTANGLE,0,usM1, pwrCOprice,usM2,usLowest);
               ObjectSet("uszoneL"+nouszone,OBJPROP_COLOR,Black);
            } 
      }
      currentbar--; 
      }      
   }
//----  
//----
   return(0);
  }
//+------------------------------------------------------------------+

 

About Me

I'm Mike Semlitsch the owner of PerfectTrendSystem.com. My trading career started in 2007. Since 2013 I have helped thousands of traders to take their trading to the next level. Many of them are now constantly profitable traders. 

The following performance was achieved by me while trading live in front of hundreds of my clients:

Connect With Me:  

This FREE Indicator Can Transform
Your Trading!

FREE Indicator + Telegram Group


Request the Ultimate Double Top/Bottom Indicator which is used by 10,000+ traders.

Results From 5 Months!
This service starts soon! Be the first who get's notified when it begins!