【Python】日本株価データを取得・分析・予測する方法

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • 株式投資に興味がある!
  • Pythonを用いて日本の株価データを取得し、分析・予測できるようになりたい。
目次

【Python】日本株価データの取得方法

Pythonを用いて日本株の株価データを取得する方法について解説します。

【事前準備】Pythonライブラリをインストール

以下に示すライブラリを用いて株価データを取得します。ターミナル(MacOS)やコマンドプロンプト(Windows)を開き、以下をインストールしておきましょう。

pip install pandas
pip install pandas_datareader

株価データ取得関数の作成

株価データを取得するための関数を作成します。以下のコードを記述しましょう。

import datetime
import pandas_datareader.data as web

# 株価データを取得する関数
def get_stock_data(meigara_cd:str, from_date:str, to_date:str):
    
    """
    ====================================================
    引数情報
    ・meigara_cd(str): 銘柄コード
    ・from_date(str):  株価取得期間(開始日)
    ・to_date(str):    株価取得期間(終了日)
    ====================================================
    """

    # 株価データを取得
    df = web.DataReader(name        = meigara_cd + ".jp",  # 銘柄コード 
                        data_source = 'stooq',             # 株価データソース
                        start       = from_date,           # 株価取得期間(開始日)
                        end         = to_date,             # 株価取得期間(終了日)
                       )
    
    return df



# 本日日付を取得する関数
def today() -> str:
    return str(datetime.date.today())

株価データ取得

前述で作成した関数を用いて実際に株価データを取得します。以下のコードを実行してみましょう。

コード

# ==========================================================
# 関数実行
# ==========================================================

# 引数情報
meigara_cd  = "6758"         # Sony銘柄
from_date   = "2023-01-01"   # 開始日
to_date     = today()        # 終了日

# 関数実行
data = get_stock_data(meigara_cd,from_date,to_date)


# ==========================================================
# 結果確認
# ==========================================================

# 出力
print(data)

# 出力イメージ
#              Open   High    Low  Close   Volume
# Date                                           
# 2023-08-17  12000  12140  11920  12130  2960800
# 2023-08-16  12200  12205  12010  12010  3069300
# 2023-08-15  12285  12320  12195  12220  3326700
# 2023-08-14  12415  12490  12075  12175  6287400
# 2023-08-10  12385  12635  12115  12565  7794900

出力項目

関数実行に際して以下項目データが時系列で取得できます。

項目名意味
Date日付
Open始値
High高値
Low安値
Close終値
Volume出来高

【参考】米株データの取得方法

本記事では日本株データの取得方法について詳しく解説しています。米国株のデータ取得に興味がある方向けにこちらの記事も配信しています。

あわせて読みたい
【Python】米国株式銘柄データの取得方法|ファンダメンタルズ・テクニカル分析対応 米国株式投資に興味がある方向けに「Pythonで米国銘柄のファンダメンタルズ・ヒストリカルデータを一括取得する方法」について解説します。

【Python】株価チャート分析・可視化

Pythonを用いて取得した株価データをもとにチャート分析する方法を解説します。

【事前準備】Pythonライブラリをインストール

以下に示すライブラリを用いて株価のチャート分析を行います。

pip install matplotlib

株価チャート分析

前述で作成した株価データ取得関数を用いて株価データを取得します。続いて、取得したデータをグラフとして可視化する方法について言及します。

コード

import matplotlib.pyplot as plt

# ==========================================================
# データ取得
# ==========================================================

# 引数情報
meigara_cd  = "6758"         # Sony銘柄
from_date   = "2023-01-01"   # 開始日
to_date     = today()        # 終了日

# 関数実行
data = get_stock_data(meigara_cd,from_date,to_date)

# ==========================================================
# グラフ可視化
# ==========================================================

# グラフ描画
plt.plot_date(data.index, data["Close"], linestyle='solid')

# 書式設定
plt.xlabel("Date")            # X軸ラベル
plt.ylabel("Stock")           # Y軸ラベル
plt.gcf().autofmt_xdate()     # X軸値を45度回転
plt.show()                    # グラフ表示

出力イメージ

上記コードを実行するとグラフが描画されます。このように時系列グラフを描画することで、株価の値動きを分析することができます。

【Python】株価時系列モデル作成と株価予測

Pythonを用いて株価時系列モデルを作成し、未来の株価を予測する方法を解説します。

【事前準備】Pythonライブラリをインストール

以下に示すライブラリを用いて株価データを分析します。

pip install prophet
pip install plotly

時系列モデル作成・株価予測

前述で作成した株価データ取得関数を用いて株価データを取得し、そのデータをインプットとした株価時系列モデルを作成します。そして、時系列モデルをもとに未来の株価を予測します。以下のコードを実行しましょう。

コード

from prophet import Prophet
import pandas as pd
from prophet.plot import plot_plotly
import plotly.offline as py

# ==========================================================
# データ取得
# ==========================================================

# 引数情報
meigara_cd  = "6758"         # Sony銘柄
from_date   = "2022-01-01"   # 開始日
to_date     = today()        # 終了日

# 関数実行
data = get_stock_data(meigara_cd,from_date,to_date)

# Prophet投入用インプットデータ作成
df = pd.DataFrame({"ds":data.index, "y":data["Close"]}).reset_index(drop=True)

# ==========================================================
# 時系列モデル作成
# ==========================================================

# モデルインスタンス
proph = Prophet()

# モデル学習
proph.fit(df)

# ==========================================================
# 予測
# ==========================================================

# 未来予測用のデータフレーム
future = proph.make_future_dataframe(periods=365)

# 時系列を予測
forecast = proph.predict(future)

# ==========================================================
# 予測(可視化)
# ==========================================================

py.init_notebook_mode()

figure = plot_plotly(proph,      # 時系列モデル
                     forecast,   # 予測結果
                    )

# 出力
py.iplot(figure)

出力イメージ

上記コードを実行すると未来を予測含むグラフが描画されます。左部の散布図は過去データをもとに描画されたヒストリカル線であり、それ以降が予測線になります。

今回時系列モデルの作成では、Prophetというライブラリを用いました。Prophetついて詳しく学びたい方はこちらの記事をご覧ください。

あわせて読みたい
【Python】仮想通貨の時系列予測モデルをProphetで作成|AI・機械学習によるビットコイン自動取引 仮想通貨の自動売買に興味がある方向けに「Pythonで仮想通貨の将来値動きを予測する時系列モデルを作成する方法」について解説します。

【参考】厳選した株式投資におすすめの証券口座一覧

株式投資を始めたい方向けに使い勝手の良いおすすめ証券口座を紹介します。

スクロールできます
証券口座概要使い勝手手数料投信NISA米株IPO信用取引
マネックス証券
取引に役立つ豊富な情報や操作性に優れたツールを提供。
株初心者にはおすすめ
⭕️⭕️⭕️⭕️⭕️⭕️⭕️
GMOクリック証券
「NTTコム オンラインNPSRベンチマーク調査 2020」において
家族・友人におすすめしたいネット証券No.1に選出
⭕️⭕️⭕️⭕️⭕️
au株コム証券
KDDI x MUFG
MUFGグループという信頼感ある証券会社
⭕️⭕️⭕️⭕️⭕️⭕️

【参考】株式投資の自動化|Pythonによるシステムトレード

本記事ではPythonを用いた株式投資のシステムトレーディング手法を多数配信しています。

株式の関連記事一覧

株式投資の「自動売買」「システムトレード」に興味がある方向けの記事を多数配信しています。

人気記事一覧

#記事タイトル
1【Python】日本株銘柄の株価・財務データの取得方法
2【Python】日本株銘柄のファンダメンタルズ分析
3【Python】日本株価データを用いたテクニカル分析
4【Python】米国株銘柄の株価・財務データの取得方法

全ての関連記事を見る

【有料版】株式投資のシステムトレード

株式投資のシステムトレード実現に際して、中・上級者向け応用情報も配信しております。

【参考】仮想通貨・ビットコイン|金融投資情報

当サイトでは仮想通貨・ビットコインにおける多様な分析および自動売買手法を配信しています。ビットコイン投資にも興味がある方は是非こちらもご覧下さい。

仮想通貨・ビットコイン|情報一覧

自動売買ツールとは|超具体的実装方法

最後に

この記事が気に入ったら
フォローしてね!

目次