Watch how to download trading robots for free
Find us on Facebook!
Join our fan page
Join our fan page
You liked the script? Try it in the MetaTrader 5 terminal
- Views:
- 3970
- Rating:
- Published:
- 2015.01.28 15:29
- Updated:
- 2016.11.22 07:32
-
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance
Checking a date for belonging to winter or summer time. The function determines time (summer or winter).
Shift to winter time is made at night of the last October Sunday, and shift to summer time is made at night of the last Sunday of March.
There is not more reliable way of figuring summer and winter time.
The code was developed for news debugging.
// // The algorithm was improved on 2014.10.09 // // YURAZ yzh@mail.ru // function determines summer or winter time // shift to winter time is made at night of the last October Sunday // and shift to summer time is made at night of the last Sunday of March // there is not more reliable way of figuring summer and winter time // return 0 - summer time // return 1 - winter time // 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) // SUMMER { code=0; } datetime tSeek; MqlDateTime dtf; if(dt.mon==10) // October { if(dt.day<25) // night of the last October Sunday - shift to winter time code=0; // still summer else { TimeToStruct(pdt,dtf); tSeek=StringToTime(IntegerToString(dtf.year)+".10.31 02:00"); // set the last October day TimeToStruct(tSeek,dtf); for(int i=31; i>=25; i--) { if(dtf.day_of_week==0 ) // Necessary to find the night from Saturday to Sunday break; tSeek=tSeek-86400; // ( FIND exactly 2 o'clock in the morning i.e. the shift itself has no sense as Forex is closed from Saturday to Sunday ) TimeToStruct(tSeek,dtf); } if(pdt<tSeek) { code=0; // summer } else code=1; // winter } } if(dt.mon==3) // March { if(dt.day<25) // night of the last Sunday of March - shift to summer time code=1; // still winter else { TimeToStruct(pdt,dtf); tSeek=StringToTime(IntegerToString(dtf.day_of_year)+".03.31 03:00"); // set the last day of March for(int i=31; i>=25; i--) { if(dtf.day_of_week==0 ) // Necessary to find the night from Saturday to Sunday break; tSeek=tSeek-86400; // ( FIND exactly 3 o'clock in the morning i.e. the shift itself has no sense as Forex is closed from Saturday to Sunday ) TimeToStruct(tSeek,dtf); } if(pdt>tSeek) { code=0; // summer } else code=1; // winter } } return( code); }
Translated from Russian by MetaQuotes Ltd.
Original code: https://www.mql5.com/ru/code/11932

Trading signals module based on Delta ZigZag indicator.

The module for tracking open positions based on Delta ZigZag for MQL5 Wizard.

Library for calculation of a margin required for opening a position in MetaТrader 5.

Synchronize ОС/EA/MT processes etc. Any self-made DLLs are not needed now.