Watch how to download trading robots for free
Find us on Telegram!
Join our fan page
Interesting script?
So post a link to it -
let others appraise it
You liked the script? Try it in the MetaTrader 5 terminal
Libraries

ZZ_TimeWinter 1-1000.mq4 - library for MetaTrader 4

Views:
5458
Rating:
(11)
Published:
2008.07.10 09:11
Updated:
2016.03.10 08:54
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance
////////////////////////////////////////////////////////////// 
//
// YURAZ yzh mail ru
//
// the function will return
// true   -  summer time
// false  -  winter time
// 
//  revert to standard time at night of the last Sunday of OCTOBER
//  switch to daylight saving time at night of the last Sunday of MARCH
// 
bool TimeWinter(datetime dt) 
{
   int i;
 
   if (   TimeMonth(dt) >= 11 || TimeMonth(dt) <= 2 ) // WINTER
   {
      return(false); //    Winter
   }
   if (   TimeMonth(dt) >= 4 && TimeMonth(dt) <= 9) // SUMMER
   {
      return(true); //    Summer
   }
 
// It can't be helped, let's determine
   datetime tSeek;
   string sTIM;
   if ( TimeMonth(dt) == 10 ) // october
   {
      if ( TimeDay(dt) >= 20 ) // at night of the last sunday of october - revert to standard time
      {
         tSeek = StrToTime( StringTrimRight(StringTrimLeft(DoubleToStr(TimeYear(dt),0)))+".10.31");  // determine the last day of october
         // search for the first sunday from the end
         for ( i = 31; i >= 20; i-- )
         {
            if ( TimeDayOfWeek(tSeek) == 0 ) 
            {
               break;   // found the last sunday of october
            }
            tSeek = tSeek - 86400; // another day
         }
         if ( dt >= tSeek  ) // already standard time
         {
            return(false); // yes winter
         }
      }
      return(true);
   }
   if ( TimeMonth(dt) == 3 ) // march
   {
      if ( TimeDay(dt) >= 20 ) // at night of the last sunday of march - switch to daylight saving time
      {
         tSeek = StrToTime( StringTrimRight(StringTrimLeft(DoubleToStr(TimeYear(dt),0)))+".03.31");  // determine the last day of march
        
         for ( i = 31; i >= 20; i-- )
         {
            if ( TimeDayOfWeek(tSeek) == 0 ) // search for the first sunday from the end
            {
               break; // found the last sunday of march
            }
            tSeek = tSeek - 86400; // another day
         }
         if ( dt >= tSeek  ) // already daylight saving time
         {
            return(true); //  already summer 
         }
      }
      return(false);
   }
}

Translated from Russian by MetaQuotes Ltd.
Original code: https://www.mql5.com/ru/code/7357

3D Oscilator 3D Oscilator

An oscillator that signals in case of trend changing.

Summary Report In Points Summary Report In Points

A script for valuation of trades history that is uploaded to the client terminal. The valuation is performed in points.

BW MFI + Volumes BW MFI + Volumes

An update for the BW MFI with the displaying of volumes.

T3.Lnx T3.Lnx

Indicator T3.Lnx. It uses signals Heiken Ashi.