![見出し画像](https://assets.st-note.com/production/uploads/images/51759902/rectangle_large_type_2_064838fe397b6da75c29f006f08d2e5a.png?width=1200)
【Python】アノマリーをチャートで確認!
無料で読めます。
セルインメイとか、大統領就任後のハネムーンとか、確定申告の納税売りとか、景気が良いとスカートの丈が短くなるとか、いろいろ、アノマリー的な事が言われたりするけれど・・・
自分の目で確かめたい!
もっと、前後を確かめたい!視覚的に確認したいのだ!
と思い、Pythonで作りました!
このプログラムでできる事
年始からチャートを、同じ日付で縦に並べることができます。
従って、
季節性やアノマリーが横断的に、視覚的に確認できます。
確認箇所の前後の推移も同時に確認できます。
従って、
前年からの文脈を考える事ができます。
(例:株価が高かった翌年の確定申告売りはどうなのか?)
これ良くないですか?
実行結果は下記のような感じです。
0.事前準備
事前準備はこちら。5分もあればできると思います。
では、コードを紹介します。
1.コード
下記のコードをコピペしてライブラリをインストール。
pip install yfinance
次に、入力するサンプルコードは下記の通り。これをコピペしてください。
下記の項目を必要に応じて変更してみてください。
#表示期間
#表示対象
import numpy as np
import pandas as pd
import calendar
import datetime
import yfinance as yf
import matplotlib.pyplot as plt
%matplotlib inline
#表示期間
start = datetime.date(2010,1,1)
end = datetime.date.today()
#表示対象
codelist = ["^GSPC"]#S&P500
# codelist = ["^IXIC"]#NASDAQコメントアウト
data = yf.download(codelist, start=start, end=end)["Adj Close"]
df = pd.DataFrame(data)
#カラム名変更
df.rename(columns={'Adj Close':'S&P500'},inplace=True)
#年ごとにデータをカテゴリわけ
df['Year'] = df.index.year.values
df['Year'] = df['Year'].astype(str)
#年初からの経過日の取得
df['Day'] = df.index.dayofyear
#日付をインデックスに、年をカラムに設定
piv = pd.pivot_table(df.dropna(), index=['Day'],columns=['Year'], values=['S&P500'])
piv.plot(figsize=(9,16),fontsize=10,linewidth=2,alpha=0.9,subplots=True,grid=True)
2.実行結果
実行すると、下記の様なチャートが表示されます。
せっかくなので、少しアノマリーについて見てみましょう。
3.アノマリーについて解説
見方が間違っている可能性もありますが、少し解説します。
まずは、「パフォーマンスが良い年の翌年は確定申告の納税売りが発生するのか?」を見てみよう。
やったこと
1986年以降のチャートを36年分用意。
年末の株価が高いところをチェック。
翌年の確定申告の時期(4月15日近辺)をチェック。
(2020年と2021年は時期が延長されています。)
株価が下がっているところに「☆」チェック。
結果は、下記のような感じです。
前年の株価が高かった21回中、10回が下落しているように見えます。半分強ぐらいの確率なので、アノマリーの有効性については、微妙な感じがします。しかし、株価の横這いを含めると、アノマリーは有効なのかもしれません。
次に、「大統領就任後 100日間のハネムーン期間とその後の株価」の動きを見てみよう。
やったこと
1986年以降のチャートを36年分用意。
大統領選挙の翌年に大統領の名前を記載。
(再選の場合、名前の横に2期目と記載。)
共和党を赤、民主党を青とした。
年初からの株価の動きをチェック。
結果は、下記のような感じです。
ブッシュ子のITバブル崩壊と、オバマのリーマンショックを例外とするならば、そこそこ堅調に株価が推移している事が多いように見えます。
サンプル数が少ないですが、2期目を見ると、100日後から株価が復調する事が多いようにも見えます。
4.さいごに
縦にチャートが並んでいると、アノマリー、季節性が見やすくなったように思います。
アノマリー的に動く個別株等があれば、今回のコードを利用して調べてみるのも良いかも知れませんね。
今回作ったコードが
気なるアノマリーを調べる時に、役に立てれば幸いです。
では!
おつかれさん、の意味を込めて、
「缶コーヒー一杯ぐらい、ご馳走してあげよう」という
太っ腹な方がいれば、よろしくお願いします!
(本編はココまで、課金しても雑談しかありません。)
課金しなくても、参考になったら、「ハートボタン」をクリックしたり、「リツイート」してくれると読まれる可能性があがるので嬉しいです。やる気が出ます。
おまけ
有料特典として、上記で使った36年分のチャート(未加工)を付けておきます。(プログラムを実行すれば取得できますが・・・)
ここから先は
¥ 100
この記事が気に入ったらチップで応援してみませんか?