6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

第1回緊急事態宣言のときに上がった銘柄TOP10を調査

Last updated at Posted at 2021-01-10

<あらすじ>
2020年4月7日に初の緊急事態宣言が東京都、神奈川県、埼玉県、千葉県、大阪府、兵庫県、福岡県の7都府県に対して発令され、4月16日には対象が全国に拡大された。
さらに、2020年の年末ごろから急激な感染拡大を受け、2回目の緊急事態宣言が2021年1月7日、東京、埼玉、千葉、神奈川の1都3県を対象に発令された。

この緊急事態宣言が株価に与える影響について検証する。
また、コロナ新規感染者数の増減で期間を設定し、コロナ感染者数と株価についても検証する。

【結論】
・コロナ感染者が増えると株価が上がる銘柄TOP10などを調査
・1回目の緊急事態宣言時に上がったTOP10銘柄は、2回目の緊急事態宣言を要請された日から10銘柄中9銘柄が上昇中

きっかけ

2019年11月22日に中国武漢市で初めて新型コロナウイルスが確認され、2021年1月9日現在では世界で累計約9000万人、日本でも27万人もの人が感染している。2020年4月7日には初の緊急事態宣言が東京都、神奈川県、埼玉県、千葉県、大阪府、兵庫県、福岡県の7都府県に対して発令され、4月16日には対象が全国に拡大されました。その後、感染状況などから対象地域を減らしていき、5月25日に全国で解除されました。
しかし、2020年の年末ごろから急激な感染拡大を受け、2回目の緊急事態宣言が2021年1月7日、東京、埼玉、千葉、神奈川の1都3県を対象に発令された。

この緊急事態宣言が株価に与える影響を知りたいと思い、検証に至りました。

また、以下のようにコロナ新規感染者数の増減で期間を設定し、その期間における株価の変動についても検証する。

period_all.png
【期間設定】
増加①:2020/1/16~2020/4/11
減少①:2020/4/15~2020/6/25
増加②:2020/6/25~2020/8/9
減少②:2020/8/9~2020/10/27
増加③:2020/10/27~2020/1/4

検証内容

特定の期間における銘柄スクリーニング(ふるい分け)のため検証は簡単です。
東京証券取引所に上場する全4088銘柄を対象に、その期間にどれだけ変化したかを求めランキング形式で示します。
※ TOKYO PRO Market上場など特殊な銘柄は除く

【検証期間】
① 第一回緊急事態宣言(2020/4/7~2020/5/25)
② 新規感染者数が増加した期間(上図の増加①+増加②+増加③)
③ 新規感染者数が減少した期間(上図の減少①+減少②)

【対象銘柄】
東京証券取引所に上場する全4088銘柄

【検証方法】
①は単純に第一回緊急事態宣言の期間の変化率を求めます。
②,③はそれぞれの期間で変化率を求め、足し合わせます。
変動率は以下の通りです。

変化率[\%]=\frac{ある期間の終値-ある期間の始値}{ある期間の始値}\times100

さらに、新型コロナウイルスの影響を受けやすい銘柄を見つけるために①,②,③の全ての変化率を足し合わせて、「影響を受けやすさ」を計算する。

影響を受けやすさ=(期間①の変化率)+(期間②の変化率)-(期間③の変化率)

※③ は新規感染者数が減少した期間のため引き算

「影響を受けやすさ」の値が大きい銘柄ほどコロナ感染者が増えると株価が上がる
逆に、小さい銘柄ほどコロナ感染者が減ったときに株価が上がる

Pythonの検証プログラムは記事の最後に記載

検証結果

以下には、期間①の緊急事態宣言時の上昇銘柄TOP10と、「影響を受けやすさ」から求めたコロナ感染者が増えると株価が上昇する銘柄TOP10を記載する。その他の結果は記事の最後に記載する。

▼①緊急事態宣言時に上がった銘柄TOP10
roc_s_e_10_False.jpg
▼コロナ感染者が増えると株価が上がる銘柄TOP10
total_10_False.jpg
※ 変化率を足し合わせている場合は大小関係が重要であり、値自体にはあまり意味はない

【以下の結果は最後にまとめて記載】
・①緊急事態宣言時に下がった銘柄TOP10
・②新規感染者数が増加した期間に上がった銘柄TOP10
・②新規感染者数が増加した期間に下がった銘柄TOP10
・③新規感染者数が減少した期間に上がった銘柄TOP10
・③新規感染者数が減少した期間に下がった銘柄TOP10
・コロナ感染者が減ると株価が上がる銘柄TOP10

追加検証

東京都の小池知事が2回目の緊急事態宣言を要請した2021年1月2日から上記の20銘柄が上昇したかを確認する。
1~3日は取引所が休業日のため2021年1月4~8日の5日分のデータを使用し株価の変化率を求めた。

【結果】
・1回目の緊急事態宣言時に上がったTOP10銘柄は10銘柄中9銘柄が上昇した
・コロナ感染者が増えると株価が上がる銘柄TOP10は10銘柄中6銘柄の上昇した
⇒コロナ感染者が増えると上がる銘柄は緊急事態宣言が出たからといって上昇するわけではない
⇒1回目の緊急事態宣言時に上がった銘柄は緊急事態宣言が出たら今回も上昇中

▼第2回緊急事態宣言による変化率
add_result.png

#まとめ
緊急事態宣言が株価に与える影響を知るために、東京証券取引所に上場する全4088銘柄を対象にスクリーニングを行いました。
・第1回緊急事態宣言時に上がった銘柄TOP10
・コロナ感染者が増えると株価が上がる銘柄TOP10
を調査し、第2回緊急事態宣言が要請された日から現在(2021年1月8日)までの変化率も算出しました。
すると、1回目の緊急事態宣言時に上がったTOP10銘柄中9銘柄が現在も上昇していることがわかりました。
逆に、コロナ感染者が増えると上がるTOP10銘柄は上昇している銘柄が6つであり、緊急事態宣言が出たからといって上昇するわけではないことも確認できました。

現在はコロナ感染者が急増していますが
・コロナ感染者が減ると株価が上がる銘柄TOP10
にランキング入りした銘柄の動向をチェックすることで、今後投資先選びにも使えるのではないでしょうか。

#次は
急騰中の仮想通貨について何かしら検証してみたいと思います。
仮想通貨はビットコインがアルトコインの先行指数になっていることが明らかなためデータを使って詳しく見てみたいと考えています。
また、ゴールデンクロスなどテクニカル分析が実際どれだけあてになるのかも検証したです。

今後の予定
・ビットコインとアルトコインの関係を調査
・ゴールデンクロス後は実際のところどれだけ上がるのか

検証プログラム

指定した期間の変化率を求めます。

import pandas as pd
import datetime
# 株価分析用に自作関数をまとめたも(いずれまとめて紹介します)
from trade_module import trade_module as tm

# 東証上場銘柄のコードと銘柄名を取得
list_tokyo = tm.get_tokyo()

# 検証期間の設定
date1 = datetime.datetime(2020, 1, 16, 0, 0, 0, 0)
date2 = datetime.datetime(2020, 4, 11, 0, 0, 0, 0)
date3 = datetime.datetime(2020, 6, 25, 0, 0, 0, 0)
date4 = datetime.datetime(2020, 8, 9, 0, 0, 0, 0)
date5 = datetime.datetime(2020, 10, 27, 0, 0, 0, 0)
date6 = datetime.datetime(2021, 1, 4, 0, 0, 0, 0)
date = [date1,date2,date3,date4,date5,date6]

# 結果を入れるデータフレーム作成
col = ["code","name","up1","down1","up2","down2","up3"]
result = pd.DataFrame(columns=col)
result.code = list_tokyo.code
result.name = list_tokyo.name

# 指定した期間の変化率を計算
for i in range(len(result.code)):
    # 用意したデータを読み込み
    data = pd.read_csv("data/"+str(result.code[i])+".T.csv",index_col=0,usecols=[0,4],parse_dates=True)
    # 指定した期間のデータがある銘柄を対象に変化率を計算
    if(data.index[0] <= date1 and data.index[-1] == date6):
        for j in range(len(date)-1):
            price_s = data.Close[date[j]:date[j+1]][0]
            price_e = data.Close[date[j]:date[j+1]][-1]
            result.at[i,col[j+2]] = (price_e-price_s)/price_s*100

# csvファイルを出力
result.to_csv("result.csv", encoding="utf_8_sig")

#検証結果の一覧
▼①緊急事態宣言時に下がった銘柄TOP10
roc_s_e_10_True.jpg

▼②新規感染者数が増加した期間に上がった銘柄TOP10
sum_up_10_False.jpg

▼②新規感染者数が増加した期間に下がった銘柄TOP10
sum_up_10_True.jpg

▼③新規感染者数が減少した期間に上がった銘柄TOP10
sum_down_10_False.jpg

▼③新規感染者数が減少した期間に下がった銘柄TOP10
sum_down_10_True.jpg

▼コロナ感染者が減ると株価が上がる銘柄TOP10
total_10_True.jpg
※ 変化率を足し合わせている場合は大小関係が重要であり、値自体にはあまり意味はない

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?