ぺーぱーの日々

上機嫌でいること、夢中でいることを目標に、今日も色んなことに手を出します。

MENU

nojimaと家電大手の株価連動

初めに

 

現在保有しているnojima株について、データ解析をしていきたい。

 

知りたいこと

・nojimaと一番連動率が高い銘柄はどれか

そのために

・いくつかの銘柄との株価連動を可視化する

比較対象銘柄

・Nikkei225

・家電大手

実装手順

・必要な株価データをDFに格納

・nojimaの終値と14日移動平均線の描画

・比較対象の銘柄の騰落率をDFに追加

・比較対象の銘柄の騰落率の推移を描画

(余力があれば、比較対象を変える)

 

 

実装したコード

必要な株価データをDFに格納

 

内容:ノジマ日経225ヤマダ電機の株価データをDFに格納

df_nojima = pandas_datareader.data.DataReader('7419.JP',  'stooq', '2015-01-01')
df_nikkei = pandas_datareader.data.DataReader('^NKX', 'stooq', '2015-01-01')
df_yamada = pandas_datareader.data.DataReader('9831.JP', 'stooq', '2015-01-01')

nojimaの終値と14日移動平均線の描画

内容:nojimaの終値と14日移動平均線を折れ線グラフで描画する

df_nojima['SMA'] = df_nojima['Close'].rolling(window=14).mean()
df_nojima['Close'].plot(figsize=(15,6), color="red")
df_nojima['SMA'].plot(figsize=(15,6), color="green")
plt.show()

出力結果:

 

比較対象の銘柄の騰落率をDFに追加

内容:ノジマと、日経225ヤマダ電機の騰落率の推移を折れ線グラフで描画

実装したコード:

3銘柄の騰落率のデータをDFに追加

df_nojima['change'] = (((df_nojima['Close'] - df_nojima['Open'])) / (df_nojima['Open']) * 100)
df_nikkei['change'] = (((df_nikkei['Close'] - df_nikkei['Open'])) / (df_nikkei['Open']) * 100)
df_yamada['change'] = (((df_yamada['Close'] - df_yamada['Open'])) / (df_yamada['Open']) * 100)

ノジマ日経225終値グラフを描画

df_nojima['Close'].plot(figsize=(15,6), color='red')
df_nikkei['Close'].plot(figsize=(15,6), color='blue')
plt.show()

出力結果

感想

株価が10倍近く違うので、連動しているのかがわかりづらいが、とりあえず先を急ぐ。単位の違う2つの値を図式化する方法については、別の機会にやろうと思う。

 

比較対象の銘柄の騰落率の推移を描画

内容:3銘柄(ノジマ日経225ヤマダ電機)の騰落率を1つのグラフに描画

実装したコード

# データマイニング
df_nojima['change'].tail(100).plot(grid=True, figsize=(15,6), color="red")
df_nikkei['change'].tail(100).plot(grid=True, figsize=(15,6), color="blue")
df_yamada['change'].tail(100).plot(grid=True, figsize=(15,6), color="orange")
plt.show()

出力結果

気づくこと

ノジマ株が最も騰落が激しい

・日経はほとんど横ばい(株価が高いからそのようになるのは当然?)

ノジマヤマダ電機は、反比例している(ように見える)

 

比較対象の追加

余力があるので、家電小売大手4社とノジマ株の連動性を可視化する。

 

対象銘柄

必要な株価データをDFに格納

内容ノジマ以外の4銘柄の株価データをDFに格納

実装したコード

df_nojima = pandas_datareader.data.DataReader('7419.JP',  'stooq', '2015-01-01')
df_bic = pandas_datareader.data.DataReader('3048.JP', 'stooq', '2015-01-01')
df_case = pandas_datareader.data.DataReader('8282.JP', 'stooq', '2015-01-01')
df_edion = pandas_datareader.data.DataReader('2730.JP', 'stooq', '2015-01-01')
df_joshin = pandas_datareader.data.DataReader('8173.JP', 'stooq', '2015-01-01')

比較対象の銘柄の騰落率をDFに追加

実装したコード

df_nojima['change'] = (((df_nojima['Close'] - df_nojima['Open'])) / (df_nojima['Open']) * 100)
df_bic['change'] = (((df_bic['Close'] - df_bic['Open'])) / (df_bic['Open']) * 100)
df_case['change'] = (((df_case['Close'] - df_case['Open'])) / (df_case['Open']) * 100)
df_edion['change'] = (((df_edion['Close'] - df_edion['Open'])) / (df_edion['Open']) * 100)
df_joshin['change'] = (((df_joshin['Close'] - df_joshin['Open'])) / (df_joshin['Open']) * 100)

比較対象の銘柄の騰落率の推移を描画

内容:比較対象の4銘柄とノジマの騰落率をグラフ化(2つずつに分けて実行)

実装したコード(ノジマビックカメラケーズデンキ

df_nojima['change'].tail(100).plot(grid=True, figsize=(15,6), color="red")
df_bic['change'].tail(100).plot(grid=True, figsize=(15,6), color="blue")
df_case['change'].tail(100).plot(grid=True, figsize=(15,6), color="orange")
plt.show()

出力結果

気づいたこと

ノジマが一番騰落率が高い

・3銘柄とも連動している箇所が多い(特に、青とオレンジ{ビックカメラとケーズ電気}の連動率が高い)

 

実装したコード(ノジマエディオンジョーシン

df_nojima['change'].tail(100).plot(grid=True, figsize=(15,6), color="red")
df_edion['change'].tail(100).plot(grid=True, figsize=(15,6), color="blue")
df_joshin['change'].tail(100).plot(grid=True, figsize=(15,6), color="orange")
plt.show()

出力結果

気づいたこと

ノジマの騰落率が最も高い

ノジマ以外の2銘柄の騰落率が小さくて、あまり連動しているかがわからない

 

まとめ

なんかデータ解析してる!と感じながら、楽しんでできた。ただ、問題は、いくつかある。

  • 株価が離れた銘柄を比較検討するのには、もう一工夫が必要
  • 騰落率の高い銘柄と低い銘柄を比較検討するのにも、もう一工夫が必要

という、グラフの可視化における超初歩的な教訓を肌で実感した。Excelとかでも、桁の違う2つのデータをグラフ化するときに、横軸を2つ設定するなど工夫が必要なように、pythonを使っての可視化も同様に一工夫が必要であることがわかった。

 

当初知りたかった、「ノジマと最も連動率が高い銘柄」だが、該当なし。(笑)

なんのための時間だった!?となっているが、

値の違うデータの取り扱い注意!

というデータ解析におけるとっても大切な教訓を得られたと考え、今回は終了。