久々に仲値EAを作ってみました。
ALEXAさんや青い豚さん aboyさんにいろいろと教えていただいて祝日を計算する関数を作りました。
参考にしたのは
「青い豚さんのブログ」
https://trv-and-mt4.blogspot.com/2019/12/mt4.html
銀行法
https://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=357CO0000000040&openerCode=1
内閣府hp
https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html
2020と2021はオリンピックで大きく変わるようですが、とりあえずベースができました。
国民の休日が日曜日の場合は翌日にする処理がいります。
国民の休日に挟まれた日も休日になります。(前回は2015年、次は2032年)
MqlDateTime A;
TimeCurrent(A);
bool Holiday()
{
if(A.mon==1&&A.day<=3)return true;//New Year
if(8<=A.day_of_year&&A.day_of_year<=14&&A.day_of_week==MONDAY)return true;//Genpuku
if(A.mon==2&&A.day==11)return true;//Foundation Day
if(A.mon==2&&A.day==23)return true;//Emperor's Day
if(A.mon==3&&A.day==20&&fmod(A.year,4)<=1)return true;//Vernal Equinox Day
if(A.mon==3&&A.day==21)return true;//Vernal Equinox Day
if(A.mon==4&&A.day==29)return true;//Showa
if(A.mon==5&&3<=A.day&&A.day<=5)return true;//GW
if(A.mon==7&&A.day_of_week==MONDAY&&15<=A.day&&A.day<=21)return true;//Love Sea
if(A.mon==8&&A.day==11)return true;//Love Mountain
if(A.mon==9&&A.day_of_week==MONDAY&&15<=A.day&&A.day<=21)return true;//Respect for the Oldish
if(A.year>=2012&&A.mon==9&&A.day==22&&!fmod(A.year,4))return true;//Autumn equinox day
if(A.mon==9&&A.day==23)return true;
if(A.mon==10&&8<=A.day&&A.day<=14&&A.day_of_week==MONDAY)return true;//Sport day
if(A.mon==11&&A.day==3)return true;//Taca's Wedding Anniversary
if(A.mon==11&&A.day==23)return true;//Labor Thanksgiving Day
if(A.mon==12&&A.day==31)return true;//End of Year
return false;
}
0 件のコメント:
コメントを投稿