![見出し画像](https://assets.st-note.com/production/uploads/images/117883921/rectangle_large_type_2_fa2e1b7811c83d23cddf08c400f6382a.jpeg?width=800)
年末年始は動作させなくする(制御)
OnInit()
特になし
OnTick()
//年末年始ではない場合のみ動作させる
if(New_year_holiday() == 0)
{
・
・//作動させたい制御
・
}
New_year_holiday()
//+------------------------------------------------------------------+
// 取引の停止
//+------------------------------------------------------------------+
int New_year_holiday()//年末年始ならTrueを返す
{
datetime present = TimeCurrent();
MqlDateTime present_str;
TimeToStruct(present, present_str);
switch(present_str.year)
{
case 2000:
if(StringToTime("2000.1.9")>=TimeCurrent()||TimeCurrent()>StringToTime("2000.12.21"))
return 1;
break;
case 2001:
if(StringToTime("2001.1.10")>=TimeCurrent()||TimeCurrent()>StringToTime("2001.12.23"))
return 1;
break;
case 2002:
if(StringToTime("2002.1.11")>=TimeCurrent()||TimeCurrent()>StringToTime("2002.12.24"))
return 1;
break;
case 2003:
if(StringToTime("2003.1.13")>=TimeCurrent()||TimeCurrent()>StringToTime("2003.12.26"))
return 1;
break;
case 2004:
if(StringToTime("2004.1.14")>=TimeCurrent()||TimeCurrent()>StringToTime("2004.12.26"))
return 1;
break;
case 2005:
if(StringToTime("2005.1.8")>=TimeCurrent()||TimeCurrent()>StringToTime("2005.12.21"))
return 1;
break;
case 2006:
if(StringToTime("2006.1.9")>=TimeCurrent()||TimeCurrent()>StringToTime("2006.12.22"))
return 1;
break;
case 2007:
if(StringToTime("2007.1.11")>=TimeCurrent()||TimeCurrent()>StringToTime("2007.12.24"))
return 1;
break;
case 2008:
if(StringToTime("2008.1.12")>=TimeCurrent()||TimeCurrent()>StringToTime("2008.12.24"))
return 1;
break;
case 2009:
if(StringToTime("2009.1.13")>=TimeCurrent()||TimeCurrent()>StringToTime("2009.12.26"))
return 1;
break;
case 2010:
if(StringToTime("2010.1.14")>=TimeCurrent()||TimeCurrent()>StringToTime("2010.12.20"))
return 1;
break;
case 2011:
if(StringToTime("2011.1.9")>=TimeCurrent()||TimeCurrent()>StringToTime("2011.12.22"))
return 1;
break;
case 2012:
if(StringToTime("2012.1.10")>=TimeCurrent()||TimeCurrent()>StringToTime("2012.12.22"))
return 1;
break;
case 2013:
if(StringToTime("2013.1.11")>=TimeCurrent()||TimeCurrent()>StringToTime("2013.12.24"))
return 1;
break;
case 2014:
if(StringToTime("2014.1.12")>=TimeCurrent()||TimeCurrent()>StringToTime("2014.12.25"))
return 1;
break;
case 2015:
if(StringToTime("2015.1.14")>=TimeCurrent()||TimeCurrent()>StringToTime("2015.12.20"))
return 1;
break;
case 2016:
if(StringToTime("2016.1.15")>=TimeCurrent()||TimeCurrent()>StringToTime("2016.12.20"))
return 1;
break;
case 2017:
if(StringToTime("2017.1.9")>=TimeCurrent()||TimeCurrent()>StringToTime("2017.12.22"))
return 1;
break;
case 2018:
if(StringToTime("2018.1.10")>=TimeCurrent()||TimeCurrent()>StringToTime("2018.12.23"))
return 1;
break;
case 2019:
if(StringToTime("2019.1.12")>=TimeCurrent()||TimeCurrent()>StringToTime("2019.12.25"))
return 1;
break;
case 2020:
if(StringToTime("2020.1.13")>=TimeCurrent()||TimeCurrent()>StringToTime("2020.12.25"))
return 1;
break;
case 2021:
if(StringToTime("2021.1.14")>=TimeCurrent()||TimeCurrent()>StringToTime("2021.12.20"))
return 1;
break;
case 2022:
if(StringToTime("2022.1.15")>=TimeCurrent()||TimeCurrent()>StringToTime("2022.12.21"))
return 1;
break;
case 2023:
if(StringToTime("2023.1.10")>=TimeCurrent()||TimeCurrent()>StringToTime("2023.12.23"))
return 1;
break;
case 2024:
if(StringToTime("2024.1.11")>=TimeCurrent()||TimeCurrent()>StringToTime("2024.12.23"))
return 1;
break;
}
return 0;
}
処理のイメージ
①New_year_holiday()に、年末年始とする日時を指定し、年末年始なら1を返すようにしておく
②if(New_year_holiday() == 0)で、年末年始かどうかの判定を行い、年末年始かどうかに応じて、処理の有無を分けることができる
MQL5コード一覧はコチラ
この記事が気に入ったらサポートをしてみませんか?