目次
概要
今日、何気なくチャートを見ていたら相場が止まっていました。
米国市場のカレンダーを見たら、グッドフライデーだということが分かりました。
日本の祝日もはっきりと覚えていない筆者なので、尚更米国の祝日なんて知るはずもなく、したがってGoogle Calendarに自動で米国の祝日を登録できないかなと考えたのですが、Google Apps Script(通称:GAS)を使えると思ったので、登録するスクリプトを作成して自動化を行いました。
コードを張ろうかと思ったのですが、LLM全盛期に高々数百行のスクリプトを張ってもあまり価値がないように思われるので、エッセンスだけ記載しようと思います。
Google Apps Scriptは、Googleのメールも操作できるので、GASを使いこなせると結構便利です。また、時間があるときに記事にしようかと思います。 似たようなスクリプト言語にGoogle Ads Script(こちらはGASとは略さない)があるので、混同しないように注意しましょう。
そして、グッドフライデーがそもそも何なのか分からなかったので調べてみたら少し面白いことが分かったので、まとめておきます。
米国の祝日について
米国の祝日は2026年を例に取ると、下記の通りとなっています。
| 休場日 | 正式名称 | 計算ルール |
|---|---|---|
| 1月1日 | New Year's Day | 1月1日(土→金、日→月) |
| 1月19日 | Martin Luther King Jr. Day | 1月の第3月曜日 |
| 2月16日 | Washington's Birthday | 2月の第3月曜日 |
| 4月3日 | Good Friday | イースターの2日前 |
| 5月25日 | Memorial Day | 5月の最終月曜日 |
| 6月19日 | Juneteenth | 6月19日(土→金、日→月) |
| 7月3日 | Independence Day | 7月4日(土→金、日→月) |
| 9月7日 | Labor Day | 9月の第1月曜日 |
| 11月26日 | Thanksgiving Day | 11月の第4木曜日 |
| 12月25日 | Christmas Day | 12月25日(土→金、日→月) |
グッドフライデー以外の祝日のパターンはいたって単純なのですが、このグッドフライデーというのが曲者です。この後、説明します。
グッドフライデーとは何か
グッドフライデーは、Wikipediaによると「キリスト教用語で、過越の聖なる3日間の復活祭(日曜)の前の金曜日」と定義されています。
復活祭とはイースターとも呼ばれています。
今年のグッドフライデーが4月の第1金曜日なので、グッドフライデーが必ず4月の第1金曜日かと言うとそうはなりません。
それは、イースターの日付の決まり方が特殊だからです。
具体例を挙げると、
| 年 | イースター | グッドフライデー |
|---|---|---|
| 2022 | 4/17 | 4/15 |
| 2023 | 4/9 | 4/7 |
| 2024 | 3/31 | 3/29 |
| 2025 | 4/20 | 4/18 |
| 2026 | 4/5 | 4/3 |
| 2027 | 3/28 | 3/26 |
となっています。
イースターが月の満ち欠けのサイクルに従って決まっているため、グッドフライデーを何月の第何金曜日のように定めることができません。
その日付の計算方法は複数あるようですが、ここではMeeus/Jones/Butcher アルゴリズムによる方法をご紹介します。
下記がその手順です。
- イースターサンデーの日付を求める手順(年 = Y とする)
- a = Y ÷ 19 の余り ← 19年周期の月齢サイクル上の位置
- b = Y ÷ 100 の商 ← 世紀 c = Y ÷ 100 の余り ← 世紀内の年
- d = b ÷ 4 の商 e = b ÷ 4 の余り
- f = (b + 8) ÷ 25 の商 g = (b - f + 1) ÷ 3 の商
- h = (19a + b - d - g + 15) ÷ 30 の余り ← 春分後の満月までの日数(核心部分)
- i = c ÷ 4 の商 k = c ÷ 4 の余り
- l = (32 + 2e + 2i - h - k) ÷ 7 の余り ← 満月から日曜日までの補正
- m = (a + 11h + 22l) ÷ 451 の商 ← 例外補正
- 月 = (h + l - 7m + 114) ÷ 31 の商 日 = (h + l - 7m + 114) ÷ 31 の余り + 1
→ グッドフライデー = イースターの2日前
下記にアルゴリズムを視覚的に表現しているのですが、春分後の満月までの日数を計算し、そこから日曜の計算を行い、最後に例外補正をしていることが分かります。
グッドフライデーは国民の祝日か
調べたところ、連邦の祝日には制定されていない(したがって米国民全員が休みではない)のですが、一部の州が祝日と定めています。
そして、NYSE(ニューヨーク証券取引所)もグッドフライデーを休場にしています。
下記にグッドフライデーを州の祝日として定めている州を示します。
カトリック教徒が多い地域かと思って調べてみたのですが、因果関係はぱっとは見られませんでした。
歴史的な背景があるようです。
最後に
思わぬきっかけで、米国の市場について調べてみたら、グッドフライデーという祝日とイースターについて知ることができて良かったです。
良かったら、Google Apps Scriptも活用してみてください。