LoginSignup
5
10

More than 3 years have passed since last update.

コロナ・ショック後から株価上昇し続けている15銘柄

Last updated at Posted at 2021-01-31

はじめに

新型コロナウイルス感染症が世界的に流行し始めたことによって,2020年2月末頃から3月にかけて,世界的に株価が大暴落しました(コロナ・ショック).日経平均株価は直前ピークと比べ,3割も暴落し約1万6千円の安値を付けました.

景気対策として行われた各国の中央銀行による大規模な金融緩和の影響もあり,5月以降株価の上昇傾向がはじまり,最近では日経平均株価は約2万8500円の値をつけ,30年5か月ぶりの高値となりました.

最近の高値の要因としては,米国の追加の財政出動などへの期待が高まっていることもあるようです(【日経新聞】日経平均、30年ぶり2万8000円台回復 米財政出動期待で).

このように,日経平均株価はコロナ・ショック後から現在にかけて,常に上昇し続けています.そこで,個別銘柄についても同じように常に価格上昇しているものは存在しないのかについて疑問に思いました.

今回の記事では,「コロナ・ショック後から株価上昇し続けている銘柄は存在するのか」を東京証券取引所に上場している全銘柄の中から調査しました.その結果,株価上昇し続けている銘柄は15銘柄存在することがわかりました.

さらに,その15銘柄のうち,コロナショック後営業利益が上昇し続けている,またはV字回復している銘柄を選定したところ,より今後の株価上昇が期待できる銘柄として10銘柄に絞ることができました.

株価上昇し続けている銘柄は?

【検証方法】
東京証券取引所に上場している全銘柄の株価データを,Yahoo FinanceのAPIを利用し,取得します.
・月ごとに株価上昇率を,データを取得した全銘柄について計算します.計算方法は,

株価上昇率=\frac{今月初日終値-前月初日終値}{前月初日終値}

です.株価上昇率の計算には休日を除く月初日の株価終値を利用しています.
・2020年5月から2021年1月まで (8か月間)の期間において,常に株価上昇率がプラスであるものを選択していきます.
※ データ取得,分析はすべてPythonでおこなっています.詳しい検証方法は記事の一番下の付録を参照してください.

【検証結果】
2020年5月から2021年1月までの期間において,株価が上昇し続けていた銘柄は15銘柄あることがわかりました.以下はその15銘柄のリストです.

  • 株価上昇し続けている15銘柄
証券コード 銘柄名 1か月の株価上昇率(%)
1400 ルーデン・ホールディングス 10.03
1431 Lib Work 13.95
2413 エムスリー 14.33
2484 出前館 16.72
3922 PR TIMES 19.12
3948 光ビジネスフォーム 4.44
4673 川崎地質 7.32
5217 テクノクオーツ 12.71
6365 電業社機械製作所 7.60
6391 加地テック 11.79
6563 みらいワークス 12.36
6622 ダイヘン 6.90
6723 ルネサスエレクトロニクス 13.37
7975 リヒトラブ 2.77
9468 KADOKAWA 12.0

PR TIMES,エムスリー,KADOKAWA,出前館(情報通信サービス業を展開)は特に高い株価上昇率となっており,株価上昇率だけを見ると,今後も株価上昇が大きく期待できる銘柄と言えるでしょう.そのほかには,建築業,機械,電気機器メーカーなど様々な業種がリスト入りしています.

以下のグラフは,各銘柄の株価上昇率の推移です.

図3.png

2-4月はコロナショックで,ほとんどの銘柄に関して,株価が大きく下落しています.しかし,その後,5月以降は常に株価が上がっていることがわかると思います.

特徴的なものとして,医療情報系ベンチャー企業であるエムスリー(2413)はコロナショックでも,ほとんど株価が下がることはなく,その後常に株価を上げてきました.ルネサスエレクトロニクス(6723)はコロナショックによって,40%以上株価を下げましたが,その後40%株価を上げ,コロナショック後,常に株価を上げてきました.出前館(7975)は9月の株価上昇率が60%を超えており,株価が急上昇しました.

さらに,15銘柄の営業利益の状況をみて,今後株価上昇が期待できそうな銘柄を考えていきます.

  • 四半期売上・営業利益の状況

さらに,株価上昇し続けている15銘柄の四半期売上・営業利益の状況です.

証券コード 銘柄名 売上
1Q
売上
2Q
売上
3Q
営業利益
1Q
営業利益
2Q
営業利益
3Q
1400 ルーデン・ホールディングス 722 577 623 35 -9 28
1431 Lib Work 962 1230 1011 -68 -77 -195
2413 エムスリー 34654 35478 39544 7404 11253 12678
2484 出前館 2994 3484 4228 -619 -1015 -3194
3922 PR TIMES 819 922 1028 277 354 472
3948 光ビジネスフォーム 1695 2045 1705 57 190 123
4673 川崎地質 2979 1549 1980 345 -58 39
5217 テクノクオーツ 2341 3020 3175 334 613 662
6365 電業社機械製作所 10875 2938 3517 2322 -152 53
6391 加地テック 2263 772 1234 242 2 177
6563 みらいワークス 1095 1014 1034 26 14 13
6622 ダイヘン 44770 30546 32485 4521 1150 2532
6723 ルネサスエレクトロニクス 178743 166672 178678 13313 17256 17249
7975 リヒトラブ 2466 1920 2006 210 47 129
9468 KADOKAWA 54476 47023 50530 -373 3581 4266

(単位:百万円)
1Q:1~3月,2Q:4~6月,3Q:7~9月(川崎地質のみ、1Q:3~5月、2Q:6~8月、3Q:9~11月)

以下は各銘柄の営業利益をグラフにしたものです.営業利益の絶対値が大きいものと小さいもので分けています.

画像1.png

画像2.png

表やグラフから,15銘柄にうち、営業利益が右肩上がり,または,V字回復している銘柄は以下の10銘柄です.

・ルーデン・ホールディングス
・エムスリー
・PR TIMES
・光ビジネスフォーム
・テクノクオーツ
・加地テック
・ダイヘン
・ルネサスエレクトロニクス
・リヒトラブ
・KADOKAWA

また,出前館は,上記で示したように,高い平均株価上昇率を示していましたが,今回提示したリストには含まれておらず,営業利益の状況を見てみると赤字が拡大し続けているので,危険な投資先とも言えるかもしれません.

おわりに

コロナショック後(2020年5月から2021年1月までの期間),東証に上場している全銘柄の中で,株価が上昇し続けていた銘柄を調査したところ,15銘柄あることがわかりました.さらに,そのうちの4半期の営業利益を調べたところ,10銘柄は右肩上がり,またはV字回復しているということがわかりました.その10銘柄は以下の通りです.

  • ルーデン・ホールディングス
  • エムスリー
  • PR TIMES
  • 光ビジネスフォーム
  • テクノクオーツ
  • 加地テック
  • ダイヘン
  • ルネサスエレクトロニクス
  • リヒトラブ
  • KADOKAWA

株価が上昇し続けている,営業利益が右肩上がり,またはV字回復であることを考えると,この10銘柄が今後も株価上昇が期待できます.
逆に,残りの5銘柄は上がり続けてはいますが,少し注意が必要でしょう。


<過去記事>
【5年分データ分析】ゴールデンクロスの数日後に株価は上がっているのか
日経225全銘柄の投資効率を検証
日経平均株価が上がった次の日に上がる銘柄を見つけたい
どの暗号資産が効率よく稼げるか
1株1千円以下の価格変動が大きい銘柄に投資してパフォーマンスをあげる
第1回緊急事態宣言のときに上がった銘柄TOP10を調査

付録(検証方法)

  • 準備

・フォルダ「data」を作成します.これは株価データを保存するための場所です.
東証上場銘柄一覧(2020年12月末)にあるdata_j.xlsをダウンロードします.data_j.xlsをエクセルなどで開き,csvファイル(data_j.csv)として,保存しなおします.Pythonではcsvファイルを読み込めるようにしているので,この操作をしています.

  • 株価時系列データ取得プログラム

今回はPythonのライブラリpandas_datareaderを用いて,Yahoo Financeからデータを取得します.以下のプログラムは,data_j.csvを参照して,東京証券取引所に上場している全銘柄の株価データを取得します.

全銘柄の時系列データを取得するので,かなり時間がかかります.途中でプログラムを止めても問題ないように,データ取得していない銘柄の時系列データのみダウンロードするように設計しています.したがって,タイムエラーなどによって,株価データ取得に失敗することがありますが,その場合はもう1度プログラムを実行すれば,その未取得データのみが取得できます.

get_data_price.py
import pandas as pd
import glob
import pandas_datareader.data as web

# 東証全銘柄リスト
def get_tokyo():
    tokyo = pd.read_csv("data_j.csv", engine="python", names=("date","code", "name","market", "CodeIndustry33", "ClassificationIndustry33", "CodeIndustry17", "ClassificationIndustry17", "CodeScale", "ClassificationScale"), skiprows=1, usecols=[1,2], encoding="utf-8")
    return tokyo

# 株価取得(日足) csv保存
def get_price_csv(stock_name,start='2015-1-1',end=None):
    data = web.DataReader(stock_name,"yahoo",start,end)
    data.to_csv("./data_price/"+stock_name+".csv")

def get_all(list_stock_name, dir_name, func, filetype='csv'):
    for code in list_stock_name.code:
        code = str(code)
        if not ('.T' in code):
            code+='.T'
        filename = '{}\\{}.{}'.format(dir_name, code, filetype)
        if filename in glob.glob(f"{dir_name}/*"):
            pass
        else:
            print(code, 'GET... ', end='')
            try:
                func(str(code))
                print('SUCCESS')
            except Exception as e:
                print('FAIL:', e)

if __name__ == '__main__':
    list_stock_name = get_tokyo()
    get_all(list_stock_name, './data_price', get_price_csv) # 株価取得

  • 分析プログラム

以下のプログラムは,ダウンロードした時系列データを読み込み,各月の株価上昇率を計算し,2020年5-2021年1月において,常に株価が上昇している銘柄を選択します.

最後に各月の株価上昇率,その平均値の結果がcsvファイルとして保存されます.このとき,各月の株価上昇率のグラフの作成されます.

stock_price_rise.py
import pandas as pd

# 東証上場全銘柄のリスト
def get_tokyo():
    tokyo = pd.read_csv("data_j.csv", engine="python", names=("date","code", "name","market", "CodeIndustry33", "ClassificationIndustry33", "CodeIndustry17", "ClassificationIndustry17", "CodeScale", "ClassificationScale"), skiprows=1, usecols=[1,2], encoding="utf-8")
    return tokyo

# 価格の時系列データフレーム作成
def make_df_price(list_stock_name, item):
    data   = {} # 自己資本
    stock_name = str(list_stock_name.code[0])
    if not ('.T' in stock_name):
            stock_name+='.T'
    dummy = pd.read_csv('./data_price/' + stock_name + '.csv')[item]
    for code in list_stock_name.code:
        stock_name = str(code)
        if not ('.T' in stock_name):
            stock_name+='.T'
        try:
            data[stock_name] = pd.read_csv('./data_price/' + stock_name + '.csv', index_col=0)[item]
        except:
            data[stock_name] = dummy # エラー発生時はダミーを入れる
    return pd.DataFrame(data)

# 東証上場全銘柄のリスト作成
list_stock_name = get_tokyo()
# 価格の時系列データフレーム作成
df_closes = make_df_price(list_stock_name, 'Close')['2020-01-06':'2021-01-04']

# 特定の日の株価データフレーム作成
df_closes2 = df_closes.loc[['2020-01-06',
                            '2020-02-03',
                            '2020-03-02',
                            '2020-04-01',
                            '2020-05-01',
                            '2020-06-01',
                            '2020-07-01',
                            '2020-08-03',
                            '2020-09-01',
                            '2020-10-02',
                            '2020-11-02',
                            '2020-12-01',
                            '2021-01-04',]]
# 株価上昇率の計算
result = ((df_closes2-df_closes2.shift(1))/df_closes2.shift(1)*100).T
# 2020年5月から収益率がプラスのものを検索
result_rise = result[#(result['2020-02-03']>0)&\
                     #(result['2020-03-02']>0)&\
                     #(result['2020-04-01']>0)&\
                     (result['2020-05-01']>0)&\
                     (result['2020-06-01']>0)&\
                     (result['2020-07-01']>0)&\
                     (result['2020-08-03']>0)&\
                     (result['2020-09-01']>0)&\
                     (result['2020-10-02']>0)&\
                     (result['2020-11-02']>0)&\
                     (result['2020-12-01']>0)&\
                     (result['2021-01-04']>0)
                     ]

# 証券コードと銘柄名の対応表を作成
result_rise_name = pd.DataFrame(index=list(result_rise.index), columns=['name'])
for stock_code in list(result_rise.index):
    result_rise_name.loc[stock_code] = list_stock_name[list_stock_name.code == int(stock_code[0:-2])]['name'].iloc[0]

# 結果リスト
mean = pd.DataFrame(result_rise.T['2020-05-01':'2021-01-04'].mean(), columns=['ave'])
result = pd.concat([result_rise, result_rise_name, mean], axis=1)
# 結果を出力
result = result.drop(['1329.T', '1365.T', '1626.T', '2068.T'])# ETFは除く
result.to_csv('result.csv', encoding="cp932")
print(result)

# グラフ作成
result_rise.T.plot(figsize=(9, 6), title='Return')
5
10
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
5
10