祝日を判定する

Pocket

今回は祝日の判定について見ていきます。株を取引できる市場が空いているのは、月曜~金曜になりますが、祝日は空いていません。今市場が空いているかどうかの判定に使用できると思います。


祝日の判定ですが、自前ですべての状況に対応した判定コードを書くのは、かなり難しいです。というのも、祝日は固定のものがほとんどですが、決まっていないものがあります。なので、自前で判定せずになんかしらの祝日の情報テーブルから判定する方が合理的です。

今回はこの内閣府のホームページから、CSVファイルをダウンロードして、そのCSVファイルから祝日を判定します。ファイルをここからダウンロードして、”C:\TradeStation”の下においてください。このページもずっと先まであるわけではないので、定期的にダウンロードする必要があります。

今回作成するロジックを関数として、以下のような仕様で作成します。

  1. 土日であれば”0:休み”を返す
  2. 祝日ファイルを開いて当日があれば”0:休み”を返す
  3. 当日よりも後ろの日が祝日ファイルに1つも無ければ”-1:エラー”を返す
  4. “1:取引日”を返す

以下の操作をして関数を新規作成して、以下のコードを貼り付けてください。

ファイル(F) → 新規作成(N) → 関数(F) → 名前(N):$trading_day → OK

この関数を呼んで、戻り値が1であれば取引可能日、戻り値が0であれば取引できない日、戻り値が-1であれば祝日テーブルが古いので再度ダウンロードが必要になります。テストのために引数で日付を受け取れるようにしていますが、引数が空文字の場合は当日になるので、通常は空文字でいいはずです。(ret = $trading_day(“”);)

祝日判定結果

祝日の判定ができました。今回のプログラムはここからダウンロードできます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です