無料でロボットをダウンロードする方法を見る
Find us on Twitter!
Join our fan page
Join our fan page
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
YZ_Summer_Time - MetaTrader 5のためのライブラリ
- ビュー:
- 849
- 評価:
- パブリッシュ済み:
- 2016.11.02 09:56
- アップデート済み:
- 2016.11.22 07:34
日付が冬時間に属するか夏時間に属するかを確認します。この関数は時間(夏または冬)を決定します。
冬時間への移行は10月の最終日曜日の夜、夏時間への移行は3月の最終日曜日の夜に行われます。
夏/冬時間を把握するより信頼性の高い方法はありません。
コードはニュースのデバッグのために開発されました。
// // アルゴリズムは2014年10月9日に改善された // // YURAZ yzh@mail.ru // この関数は夏/冬時間を決定する // 冬時間への移行は10月の最終日曜日の夜 // 夏時間への移行は3月の最終日曜日の夜に行われる // 夏/冬時間を把握するより信頼性の高い方法はない // 0を戻す - 夏時間 // 1を戻す - 冬時間 // int YZ_summer_time(datetime pdt) { MqlDateTime dt; TimeToStruct(pdt,dt); int code=1; if(dt.mon>=11 || dt.mon<=2) // 冬 { code=1; } if(dt.mon>=4 && dt.mon<=9) // 夏 { code=0; } datetime tSeek; MqlDateTime dtf; if(dt.mon==10) // 10月 { if(dt.day<25) // 10月の最終日曜日の夜ー冬時間に移行 code=0; // まだ夏 else { TimeToStruct(pdt,dtf); tSeek=StringToTime(IntegerToString(dtf.year)+".10.31 02:00"); // 10月の最後の日を設定 TimeToStruct(tSeek,dtf); for(int i=31; i>=25; i--) { if(dtf.day_of_week==0 ) // 土曜から日曜にかける夜を見つけるのに必要 break; tSeek=tSeek-86400; // (朝のちょうど2時を探す。外国為替は土日にはしまっているので移行自体には意味がない) TimeToStruct(tSeek,dtf); } if(pdt<tSeek) { code=0; // 夏 } else code=1; // 冬 } } if(dt.mon==3) // 3月 { if(dt.day<25) // 3月の最終日曜日の夜ー夏時間に移行 code=1; // まだ冬 else { TimeToStruct(pdt,dtf); tSeek=StringToTime(IntegerToString(dtf.day_of_year)+".03.31 03:00"); // 3月の最後の日を設定< for(int i=31; i>=25; i--) { if(dtf.day_of_week==0 ) // 土曜から日曜にかける夜を見つけるのに必要 break; tSeek=tSeek-86400; // (朝のちょうど3時を探す。外国為替は土日にはしまっているので移行自体には意味がない) TimeToStruct(tSeek,dtf); } if(pdt>tSeek) { code=0; // 夏 } else code=1; // 冬 } } return( code); }
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/11932