Schau, wie man Roboter kostenlos herunterladen kann
Find us on Telegram!
Join our fan page
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

YZ_Summer_Time - Bibliothek für den MetaTrader 5

Ansichten:
671
Rating:
(34)
Veröffentlicht:
2016.08.02 17:18
Aktualisiert:
2016.11.22 07:34
\MQL5\Include\

Prüfung eines Datums darauf, ob es zur Winter- oder Sommerzeit gehört. Die Funktion ermittelt die Zeit (Sommer oder Winter).

Die Verschiebung zur Winterzeit erfolgt am letzten Sonntag im Oktober und die Verschiebung zur Sommerzeit wird in der Nacht des letzten Sonntags im März vorgenommen.

Es gibt keinen zuverlässigeren Weg um Sommer- und Winterzeit zu bestimmen.

Der Code wurde für das Debuggen von Nachrichten entwickelt.

//
// Der Algorithmus wurde am 2014.10.09 verbessert
//
// YURAZ yzh@mail.ru
// Funktion bestimmt Sommer-oder Winterzeit
// Verschiebung zur Winterzeit erfolgt am letzten Sonntag im Oktober 
// und Verschiebung zur Sommerzeit wird in der Nacht des letzten Sonntags im März vorgenommen
// Es gibt keinen zuverlässigeren Weg um Sommer- und Winterzeit zu bestimmen.
// return 0 - Sommerzeit
// return 1 - Winterzeit
//
int YZ_summer_time(datetime pdt)
  {
   MqlDateTime dt;
   TimeToStruct(pdt,dt);
   int code=1;
   if(dt.mon>=11 || dt.mon<=2) // WINTER
     {
      code=1;
     }
   if(dt.mon>=4 && dt.mon<=9) // SOMMER
     {
      code=0;
     }
   datetime tSeek;
   MqlDateTime dtf;
   if(dt.mon==10) // Oktober
     {
      if(dt.day<25) // Nacht des letzten Sonntags im Oktober - Verschiebung zu Winterzeit
         code=0; // noch Sommer
      else
        {
         TimeToStruct(pdt,dtf);
         tSeek=StringToTime(IntegerToString(dtf.year)+".10.31 02:00");  // letzten Oktobertag einstellen
         TimeToStruct(tSeek,dtf);
         for(int i=31; i>=25;  i--)
           {
            if(dtf.day_of_week==0 ) // Notwendig  um die Nacht  von Samstag auf Sonntag zu finden
               break;  
            tSeek=tSeek-86400; // ( FINDE  exakt 2 Uhr morgens  d.h. die Verschiebung selbst hat keinen Sinn, da Forex von Samstag auf Sonntag geschlossen ist  )
            TimeToStruct(tSeek,dtf);
           }
         if(pdt<tSeek)
           {
            code=0; // Sommer
           }
         else
            code=1; // Winter
        }
     }
   if(dt.mon==3) // März
     {
      if(dt.day<25) // Nacht des letzten Sonntags im März  - Verschiebung zur Sommerzeit
         code=1; // noch Winter
      else
        {
         TimeToStruct(pdt,dtf);
         tSeek=StringToTime(IntegerToString(dtf.day_of_year)+".03.31 03:00");  // letzten Tag des März einstellen
         for(int i=31; i>=25;  i--)
           {
            if(dtf.day_of_week==0 ) // Notwendig  um die Nacht  von Samstag auf Sonntag zu finden
               break;  
            tSeek=tSeek-86400; // ( FINDE  exakt 3 Uhr morgens  d.h. die Verschiebung selbst hat keinen Sinn, da Forex von Samstag auf Sonntag geschlossen ist  )
            TimeToStruct(tSeek,dtf);
           }
         if(pdt>tSeek)
           {
            code=0; // Sommer
           }
         else
            code=1; // Winter
        }
     }
  return( code);
  }


Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/11932

Setting Chart Setting Chart

Mehrere Charts mit einem Klick einstellen.

Apply Template Apply Template

Einfaches Skript um eine Vorlage (Template) und oder TimeFrame auf alle geöffneten Charts anzuwenden.

Script and Template for Market Analysis Script and Template for Market Analysis

Skript um meine Vorlage auf alle geöffneten Charts anzuwenden.

Margin Calculation Margin Calculation

Bibliothek für die Berechnung der notwendigen Margin für das Öffnen einer Position in MetaТrader 5.