備忘録
備忘録
学びと解説
学びと解説
Python
Python
Linux
Linux

記事内に商品プロモーションを含む場合があります。

Pythonで株価データを分析する方法:初心者向けの投資シミュレーションの手順と解説

はじめに

株式投資に興味があるが、データ分析が難しいと思っていないだろうか?
Pythonを使えば、初心者でも簡単に株価データを取得し、分析やシミュレーションを実施できる。

この記事では、Pythonのライブラリを活用して、株価データを効率的に分析する方法を解説する。
具体例として、NASDAQに上場しているエヌビディア(NVDA)の株価を用いた投資シミュレーションを紹介する。

Pythonを使った株価データ分析に必要なツール

Pythonとライブラリのインストール方法

まずは次のライブラリを導入する。これらを利用することで、株価データの取得、分析、可視化が簡単に行える。

pip install yfinance matplotlib pandas

使用するライブラリの特徴

  • yfinance
    Yahoo Finance(ヤフーファイナンス)のデータを取得するライブラリ。
    銘柄コード(例:NVDA)を指定するだけで、株価データや取引量をダウンロードできる。
  • pandas
    データを表形式(スプレッドシートのような形式)で扱うためのライブラリ。
    取得した株価データの並べ替えやフィルタリングが簡単に行える。
  • matplotlib
    データの可視化に用いるライブラリ。
    株価の推移をグラフとして表示することで、価格変動の傾向を視覚的に確認可能。

Pythonでエヌビディアの株価データを取得してみよう

次に、Pythonを使ってエヌビディア(NVDA)の株価データを取得する方法を紹介する。
以下のコードを実行するだけで、指定した期間の株価データが取得できる。

株価データの取得方法

import yfinance as yf

# NVIDIA (NVDA) の株価データを取得
ticker = "NVDA"
data = yf.download(ticker, start="2024-01-01", end="2024-11-01")

# データの先頭5行を表示
print(data.head())

出力例

             Open    High    Low   Close  Adj Close   Volume
Date                                                     
2024-01-01  500.0  510.0  495.0  505.0     505.0   12345678
2024-01-02  506.0  515.0  500.0  510.0     510.0   98765432
...

上記のコードで取得したデータは、「始値」「高値」「安値」「終値」「取引量」など、投資判断に役立つ情報が含まれている。

株価の推移をグラフ化する

次に、取得した株価データをグラフで表示してみよう。
Pythonのmatplotlibライブラリを活用すれば、株価の変動を視覚的に確認できる。

株価データの可視化

import matplotlib.pyplot as plt

# 株価の終値をプロット
data["Close"].plot(title=f"{ticker} Stock Price", figsize=(10, 6))
plt.xlabel("Date")
plt.ylabel("Price")
plt.show()

このコードを実行すると、以下のようなグラフが描画される。
価格変動の傾向を一目で把握できるため、投資判断の材料として非常に有用だ。

pandasでデータをさらに詳細に分析

pandasを使えば、取得した株価データを詳細に分析することが可能だ。
ここでは、移動平均線を計算し、株価のトレンドを把握する方法を紹介する。

移動平均線の計算とプロット

以下のコードで、短期(5日間)および長期(20日間)の移動平均線を計算してグラフに表示する。

# 移動平均線の計算
data["SMA_5"] = data["Close"].rolling(window=5).mean()  # 5日移動平均
data["SMA_20"] = data["Close"].rolling(window=20).mean()  # 20日移動平均

# 移動平均線をグラフにプロット
data[["Close", "SMA_5", "SMA_20"]].plot(title=f"{ticker} Stock Price with SMA", figsize=(10, 6))
plt.xlabel("Date")
plt.ylabel("Price")
plt.show()

結果

このグラフには、株価の終値と5日移動平均線20日移動平均線が表示される。
移動平均線を用いることで、短期的な価格変動と長期的なトレンドを同時に確認できる。

シンプルな投資シミュレーションを実施

ここからは、シミュレーションを実行する。
2024年1月1日に株を購入し、2024年10月31日に売却した場合の利益と収益率(ROI)を計算する。

投資シミュレーションのコード

# 投資シミュレーション用コード
initial_date = "2024-01-01"  # 購入日
final_date = "2024-10-31"   # 売却日

# 株価の終値を取得
buy_price = data.loc[initial_date]["Close"]
sell_price = data.loc[final_date]["Close"]

# 利益計算
profit = sell_price - buy_price
roi = (profit / buy_price) * 100

# 結果を出力
print(f"{initial_date}に購入し、{final_date}に売却した場合:")
print(f"購入価格: ${buy_price:.2f}, 売却価格: ${sell_price:.2f}")
print(f"利益: ${profit:.2f}, ROI (投資収益率): {roi:.2f}%")

出力例

2024-01-01に購入し、2024-10-31に売却した場合:
購入価格: $500.00, 売却価格: $750.00
利益: $250.00, ROI (投資収益率): 50.00%

このように、指定期間内でどれだけの利益が得られるかを簡単に計算できる。
これを応用することで、異なる期間や条件でのシミュレーションも実施可能だ。

まとめ

この記事では、Pythonを使った株価データの分析と投資シミュレーションについて解説した。
以下が主なポイントだ。

  1. 株価データの取得:yfinanceを使えば簡単に市場データを取得可能。
  2. データの可視化:matplotlibを活用して価格変動をグラフで表示。
  3. データ分析の応用:pandasを使い移動平均線を計算してトレンドを把握。
  4. シミュレーション:指定期間内での売買シミュレーションにより、収益率を計算。

エヌビディア(NVDA)を例にシミュレーションを行ったが、他の銘柄でも同様の分析ができる。
この記事を参考に、自分の興味のある株式で試してみてほしい。