-
-
Save ronta-trader/635baba952c63c393184cc636528271d to your computer and use it in GitHub Desktop.
サマータイムに対応した日本時間を出力するEA
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#property strict //コンパイルのモード | |
void OnTick() | |
{ | |
Print("日本時間:", TimeCurrent() + CJT()," MT4時間:", TimeCurrent()); | |
} | |
//+------------------------------------------------------------------+ | |
// サマータイム対応日本時間変換関数 CJT関数 | |
//+------------------------------------------------------------------+ | |
// datetime型 | |
// | |
// サマータイムであれば 6時間 を返す | |
// ウィンタータイムであれば 7時間 を返す | |
// | |
// 例えば、 | |
// TimeCurrent() + CJT() | |
// で日本時間が求められる。 | |
// | |
// 【MT4のサマータイム】 | |
// ・3月第2日曜日午前2時〜11月第1日曜日午前2時) | |
// ・サマータイム MT4時間+6時間 で日本時間 | |
// ・ウィンタータイム MT4時間+7時間 で日本時間 | |
//+------------------------------------------------------------------+ | |
datetime CJT(){ | |
datetime Time_Summer = 21600; //6時間 | |
datetime Time_Winter = 25200; //7時間 | |
switch(Year()){ | |
case 2005: if(StringToTime("2005.3.13")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2005.11.6"))return Time_Summer; break; | |
case 2006: if(StringToTime("2006.3.12")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2006.11.5"))return Time_Summer; break; | |
case 2007: if(StringToTime("2007.3.11")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2007.11.4"))return Time_Summer; break; | |
case 2008: if(StringToTime("2008.3.9") <=TimeCurrent()&&TimeCurrent()<=StringToTime("2008.11.2"))return Time_Summer; break; | |
case 2009: if(StringToTime("2009.3.8") <=TimeCurrent()&&TimeCurrent()<=StringToTime("2009.11.1"))return Time_Summer; break; | |
case 2010: if(StringToTime("2010.3.14")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2010.11.7"))return Time_Summer; break; | |
case 2011: if(StringToTime("2011.3.13")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2011.11.6"))return Time_Summer; break; | |
case 2012: if(StringToTime("2012.3.11")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2012.11.4"))return Time_Summer; break; | |
case 2013: if(StringToTime("2013.3.10")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2013.11.3"))return Time_Summer; break; | |
case 2014: if(StringToTime("2014.3.9") <=TimeCurrent()&&TimeCurrent()<=StringToTime("2014.11.2"))return Time_Summer; break; | |
case 2015: if(StringToTime("2015.3.8") <=TimeCurrent()&&TimeCurrent()<=StringToTime("2015.11.1"))return Time_Summer; break; | |
case 2016: if(StringToTime("2016.3.13")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2016.11.6"))return Time_Summer; break; | |
case 2017: if(StringToTime("2017.3.12")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2017.11.5"))return Time_Summer; break; | |
case 2018: if(StringToTime("2018.3.11")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2018.11.4"))return Time_Summer; break; | |
case 2019: if(StringToTime("2019.3.10")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2019.11.3"))return Time_Summer; break; | |
case 2020: if(StringToTime("2020.3.8") <=TimeCurrent()&&TimeCurrent()<=StringToTime("2020.11.1"))return Time_Summer; break; | |
case 2021: if(StringToTime("2021.3.14")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2021.11.7"))return Time_Summer; break; | |
case 2022: if(StringToTime("2022.3.13")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2022.11.6"))return Time_Summer; break; | |
case 2023: if(StringToTime("2023.3.12")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2023.11.5"))return Time_Summer; break; | |
case 2024: if(StringToTime("2024.3.10")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2024.11.3"))return Time_Summer; break; | |
case 2025: if(StringToTime("2025.3.9") <=TimeCurrent()&&TimeCurrent()<=StringToTime("2025.11.2"))return Time_Summer; break; | |
case 2026: if(StringToTime("2026.3.8") <=TimeCurrent()&&TimeCurrent()<=StringToTime("2026.11.1"))return Time_Summer; break; | |
case 2027: if(StringToTime("2027.3.14")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2027.11.7"))return Time_Summer; break; | |
case 2028: if(StringToTime("2028.3.12")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2028.11.5"))return Time_Summer; break; | |
case 2029: if(StringToTime("2029.3.11")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2029.11.4"))return Time_Summer; break; | |
case 2030: if(StringToTime("2030.3.10")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2030.11.3"))return Time_Summer; break; | |
case 2031: if(StringToTime("2031.3.9") <=TimeCurrent()&&TimeCurrent()<=StringToTime("2031.11.2"))return Time_Summer; break; | |
case 2032: if(StringToTime("2032.3.14")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2032.11.7"))return Time_Summer; break; | |
case 2033: if(StringToTime("2033.3.13")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2033.11.6"))return Time_Summer; break; | |
case 2034: if(StringToTime("2034.3.12")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2034.11.5"))return Time_Summer; break; | |
case 2035: if(StringToTime("2035.3.11")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2035.11.4"))return Time_Summer; break; | |
case 2036: if(StringToTime("2036.3.9") <=TimeCurrent()&&TimeCurrent()<=StringToTime("2036.11.2"))return Time_Summer; break; | |
case 2037: if(StringToTime("2037.3.8") <=TimeCurrent()&&TimeCurrent()<=StringToTime("2037.11.1"))return Time_Summer; break; | |
case 2038: if(StringToTime("2038.3.14")<=TimeCurrent()&&TimeCurrent()<=StringToTime("2038.11.7"))return Time_Summer; break; | |
} | |
return Time_Winter; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment