TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

Pythonで株価を見える化!日経平均をグラフで読み解く基本テクニック

Pythonで株価データを可視化!日経平均株価の推移を分析してみよう

株式市場の動向を把握するためには、データの可視化が非常に有効です。特にPythonを使えば、手軽に株価データを取得し、グラフ化することができます。本記事では、日経平均株価の過去データを用いて、Pythonでのデータ取得から可視化までの一連の流れを解説します。


1. データの取得

まずは、日経平均株価の過去データを取得します。以下のGitHub Gistにて、2001年からのデータがCSV形式で提供されています。

このCSVファイルには、日付、始値、高値、安値、終値出来高の情報が含まれています。


2. 必要なライブラリのインストール

Pythonでデータを扱うために、以下のライブラリを使用します。未インストールの場合は、以下のコマンドでインストールしてください。

pip install pandas matplotlib

3. データの読み込みと前処理

CSVファイルを読み込み、日付を適切な形式に変換します。

import pandas as pd

# CSVファイルの読み込み
df = pd.read_csv('nikkei225.csv', encoding='utf-8')

# 日付の形式を変換
df['日付け'] = pd.to_datetime(df['日付け'])

# 日付をインデックスに設定
df.set_index('日付け', inplace=True)

# データの確認
print(df.head())

4. 株価の推移を可視化

終値の推移を折れ線グラフで可視化します。

import matplotlib.pyplot as plt

# グラフのサイズ設定
plt.figure(figsize=(14, 7))

# 終値のプロット
plt.plot(df.index, df['終値'], label='終値')

# グラフのタイトルとラベル
plt.title('日経平均株価の推移')
plt.xlabel('日付')
plt.ylabel('終値')

# 凡例の表示
plt.legend()

# グリッドの表示
plt.grid(True)

# グラフの表示
plt.show()

5. 移動平均線の追加

短期(25日)と長期(75日)の移動平均線を追加して、トレンドを分析します。

# 移動平均の計算
df['MA25'] = df['終値'].rolling(window=25).mean()
df['MA75'] = df['終値'].rolling(window=75).mean()

# グラフのサイズ設定
plt.figure(figsize=(14, 7))

# 終値と移動平均線のプロット
plt.plot(df.index, df['終値'], label='終値')
plt.plot(df.index, df['MA25'], label='25日移動平均')
plt.plot(df.index, df['MA75'], label='75日移動平均')

# グラフのタイトルとラベル
plt.title('日経平均株価と移動平均線')
plt.xlabel('日付')
plt.ylabel('価格')

# 凡例の表示
plt.legend()

# グリッドの表示
plt.grid(True)

# グラフの表示
plt.show()

6. ボリンジャーバンドの計算と可視化

ボリンジャーバンドを計算し、価格の変動範囲を視覚化します。

# 移動平均と標準偏差の計算
df['MA20'] = df['終値'].rolling(window=20).mean()
df['STD20'] = df['終値'].rolling(window=20).std()

# ボリンジャーバンドの計算
df['Upper'] = df['MA20'] + (df['STD20'] * 2)
df['Lower'] = df['MA20'] - (df['STD20'] * 2)

# グラフのサイズ設定
plt.figure(figsize=(14, 7))

# 終値とボリンジャーバンドのプロット
plt.plot(df.index, df['終値'], label='終値')
plt.plot(df.index, df['Upper'], label='上限バンド', linestyle='--')
plt.plot(df.index, df['Lower'], label='下限バンド', linestyle='--')

# グラフのタイトルとラベル
plt.title('日経平均株価とボリンジャーバンド')
plt.xlabel('日付')
plt.ylabel('価格')

# 凡例の表示
plt.legend()

# グリッドの表示
plt.grid(True)

# グラフの表示
plt.show()

7. まとめ

Pythonを使えば、日経平均株価のデータを簡単に取得し、様々な視点から可視化・分析することができます。移動平均線ボリンジャーバンドなどのテクニカル指標を活用することで、トレンドの把握や売買のタイミングを検討する際の参考になります。

今後は、他の株価指数や個別銘柄の分析、さらには機械学習を用いた予測モデルの構築など、さらに高度な分析にも挑戦してみてください。


参考リンク

参考書籍