こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- Pythonを用いた株式投資のファンダメンタルズ分析に興味がある
- 株式投資のシステムトレードを実現したい
【株式投資】ファンダメンタルズ分析とは
ファンダメンタルズ分析とは、企業の財務・経済的な健全性を評価し、株式の適正な価値を見積もるための方法です。株式の長期的なパフォーマンスを評価し、株式を購入・売却の意思決定をサポートします。
【参考】厳選した株式投資におすすめの証券口座一覧
株式投資を始めたい方向けに使い勝手の良いおすすめ証券口座を紹介します。
証券口座 | 概要 | 使い勝手 | 手数料 | 投信 | NISA | 米株 | IPO | 信用取引 |
---|---|---|---|---|---|---|---|---|
マネックス証券 | 取引に役立つ豊富な情報や操作性に優れたツールを提供。 株初心者にはおすすめ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ |
GMOクリック証券 | 「NTTコム オンラインNPSRベンチマーク調査 2020」において 家族・友人におすすめしたいネット証券No.1に選出 | ⭕️ | ⭕️ | △ | ⭕️ | ⭕️ | △ | ⭕️ |
au株コム証券 | KDDI x MUFG MUFGグループという信頼感ある証券会社 | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | △ | ⭕️ |
【事前準備】Pythonによるファンダメンタルズ分析の環境構築
Pythonによるファンダメンタルズ分析実践に際して、必要な事前準備に対応します。
株価・財務データが取得可能なAPIの利用申請
本記事では、ファンダメンタルズ分析に必要なデータをJ-QuantsのAPIをもとに取得します。
J-Quants APIの利用手順は以下記事で詳しく整理していますため、以下記事のリフレッシュトークン取得の部分までは事前にご確認ください。
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】米国株銘柄の株価・財務データの取得方法 |
全ての関連記事を見る
【有料版】株式投資のシステムトレード
株式投資のシステムトレード実現に際して、中・上級者向け応用情報も配信しております。
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら