【Python】日本株銘柄のファンダメンタルズ分析実践|システムトレード入門

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

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

こんな方におすすめ!
  • Pythonを用いた株式投資のファンダメンタルズ分析に興味がある
  • 株式投資のシステムトレードを実現したい
目次

【株式投資】ファンダメンタルズ分析とは

ファンダメンタルズ分析とは、企業の財務・経済的な健全性を評価し、株式の適正な価値を見積もるための方法です。株式の長期的なパフォーマンスを評価し、株式を購入・売却の意思決定をサポートします。

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

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

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

【事前準備】Pythonによるファンダメンタルズ分析の環境構築

Pythonによるファンダメンタルズ分析実践に際して、必要な事前準備に対応します。

株価・財務データが取得可能なAPIの利用申請

【引用】J-Quants公式ページ:https://jpx-jquants.com/?lang=ja

本記事では、ファンダメンタルズ分析に必要なデータをJ-QuantsのAPIをもとに取得します。

J-Quants APIの利用手順は以下記事で詳しく整理していますため、以下記事のリフレッシュトークン取得の部分までは事前にご確認ください。

あわせて読みたい
【Python】日本株銘柄の株価・財務データの取得方法|株式自動売買入門 株式投資のファンダメンタルズ分析に興味がある方向けに「Pythonで株価・財務データを取得する方法」について解説します。

Pythonライブラリのインストール

ファンダメンタルズ分析に必要なPythonライブラリとして、以下をインストールしましょう。

Pandas

データの加工を行うためのライブラリです。

pip install pandas

Plotly

グラフの表示が可能なデータ可視化ライブラリです。

pip install plotly

【実践】Pythonによる日本株式銘柄のファンダメンタルズ分析

それでは実際にPythonコードを記述し、日本株銘柄のファンダメンタルズ分析を実践します。

API認証情報を設定

はじめに、Pythonコードの先頭に以下のAPI認証情報を記述します。

前述したリフレッシュトークンをREFREAH_TOKEN部分にセットしましょう。

import pandas as pd
import plotly.express as px
import requests
import json

# =============================================================
# リフレッシュトークン(お手元のメモを貼付)
# =============================================================

REFRESH_TOKEN = "............"

# =============================================================
# API認証情報取得
# =============================================================

# idToken取得
req_post  = requests.post(f"https://api.jquants.com/v1/token/auth_refresh?refreshtoken={REFRESH_TOKEN}")
idToken   = req_post.json()["idToken"]

【データ取得】財務データ

後述のファンダメンタルズ分析に際して、各種銘柄の財務データを取得します。以下コードを実行しましょう。

コード

import pandas as pd
import plotly.express as px
import requests
import json

# ===============================================================
# 分析銘柄コード(例)
# ===============================================================

Code_list = {
        "ソニー":       6758,
        "パナソニック":  6752,
        "富士通":       6702,
        "トヨタ":       7203,
        "ホンダ":       7267,
        "日立":         6501,
            }

# ===============================================================
# 最新の財務情報取得
# ===============================================================

Code            = [] # 銘柄コード
Company         = [] # 会社名
Date            = [] # 開示日
NetSales        = [] # 売上高
OperatingProfit = [] # 営業利益


for key, value in Code_list.items():
    # APIコール
    headers = {'Authorization': 'Bearer {}'.format(idToken)}
    urlPath = f'https://api.jquants.com/v1/fins/statements?code={value}'
    req     = requests.get(urlPath, headers=headers)
    result  = req.json()
    
    # 結果格納
    Code.append(value)
    Company.append(key)
    Date.append(result["statements"][-1]["DisclosedDate"])
    NetSales.append(int(result["statements"][-1]["NetSales"]))
    OperatingProfit.append(int(result["statements"][-1]["OperatingProfit"]))
    

# ===============================================================
# データ加工・出力
# ===============================================================

# 項目定義
columns = {"銘柄コード":Code,
           "会社名":Company,
           "開示日":Date,
           "売上高":NetSales,
           "営業利益":OperatingProfit,
          }

# データフレーム
df = pd.DataFrame(columns)

# 出力
print(df)

出力イメージ

上記実行後、次のような出力イメージの結果が取得できます。

# 出力
print(df)

# 出力イメージ
#    銘柄コード     会社名         開示日             売上高           営業利益
# 0   6758        ソニー      20yy-mm-dd       100000000         100000000
# 1   6752    パナソニック     20yy-mm-dd       100000000         100000000
# 2   6702        富士通      20yy-mm-dd       100000000         100000000
# 3   7203        トヨタ      20yy-mm-dd       100000000         100000000
# 4   7267        ホンダ      20yy-mm-dd       100000000         100000000
# 5   6501         日立       20yy-mm-dd       100000000         100000000

この他にもresultを出力いただくと他多数の財務データが参照できます。今回は代表的な財務指標のみ抽出しています。

【分析例】営業利益率を比較

前述で取得したデータフレームdfをもとにファンダメンタルズ分析を実践します。

今回は例として、会社毎の営業利益率を算出し、グラフでの比較を試みます。

コード

import pandas as pd
import plotly.express as px
import requests
import json

# ===============================================================
# データ加工
# ===============================================================

# 営業利益率を計算
df["営業利益率[%]"] =  ( df["営業利益"] / df["売上高"] ) * 100


# ===============================================================
# グラフ作成
# ===============================================================

# 書式設定
fig = px.bar(df,               # データソース
             x='会社名',        # X軸
             y='営業利益率[%]',  # Y軸
            )

# 出力
fig.show()

出力イメージ

コードを実行すると、上図のような出力結果が得られます。

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

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

株式の関連記事一覧

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

人気記事一覧

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

全ての関連記事を見る

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

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

最後に

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

目次