Python初心者が株価分析

投資の第一歩として「株価分析」に興味を持った方も多いのではないでしょうか?
従来、株価の分析といえば専門的なツールや知識が必要でしたが、今ではPythonというプログラミング言語を使うことで、誰でも簡単にデータ分析が可能になっています。

本記事では、初心者がPythonを使って「Yahoo Finance」から株価データを取得し、シンプルな分析とグラフ化を行う方法を、実例を交えてわかりやすく解説していきます。

1. Python環境の準備

Pythonのインストール方法

Pythonは公式サイトから無料でダウンロードできます。
WindowsやMacのどちらでも対応しています。

おすすめの開発環境

初心者には以下の環境がおすすめです:

  • Anaconda:Pythonの配布パッケージ。Jupyter Notebookも同梱されている。
  • Jupyter Notebook:インタラクティブにコードが実行できる学習向けの開発環境。

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

pip install yfinance pandas matplotlib

2. yfinanceとは?初心者向け解説

yfinanceはYahoo Financeの株価データをPythonで簡単に取得できるライブラリです。

  • 株価(終値、始値、高値、安値、出来高)
  • 過去の株価履歴(年単位も可)
  • 財務情報や株式分割情報も取得可能

3. yfinanceを使った株価データの取得方法

import yfinance as yf

toyota = yf.Ticker("7203.T")
data = toyota.history(period="1y")
print(data.head())

4. 取得したデータの可視化

import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt

toyota = yf.Ticker("7203.T")
data = toyota.history(period="1y")

data['Close'].plot(title="TOYOTA")
plt.xlabel("date")
plt.ylabel("Close Price")
plt.grid(True)
plt.show()

5. 株価分析の基本指標をPythonで計算

単純移動平均線(SMA)

import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt

toyota = yf.Ticker("7203.T")
data = toyota.history(period="1y")

data['SMA20'] = data['Close'].rolling(window=20).mean()
data[['Close', 'SMA20']].plot(title="SMA20")
plt.grid(True)
plt.show()

ボリンジャーバンド

import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt

toyota = yf.Ticker("7203.T")
data = toyota.history(period="1y")

data['SMA20'] = data['Close'].rolling(window=20).mean()
data['std'] = data['Close'].rolling(window=20).std()
data['Upper'] = data['SMA20'] + 2 * data['std']
data['Lower'] = data['SMA20'] - 2 * data['std']

data[['Close', 'Upper', 'Lower']].plot(title="Bollinger Bands")
plt.grid(True)
plt.show()

RSI(相対力指数)

import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt

toyota = yf.Ticker("7203.T")
data = toyota.history(period="1y")

def calculate_rsi(series, period=14):
    delta = series.diff()
    gain = (delta.where(delta > 0, 0)).rolling(window=period).mean()
    loss = (-delta.where(delta < 0, 0)).rolling(window=period).mean()
    rs = gain / loss
    return 100 - (100 / (1 + rs))

data['RSI'] = calculate_rsi(data['Close'])
data['RSI'].plot(title="RSI")
plt.grid(True)
plt.show()

6. 分析結果を投資に活かす初心者向けのコツ

  • SMAやRSIの値が一定のしきい値を超えたときに売買判断の参考にする
  • RSIが30以下 → 売られすぎ → 買い時?
  • RSIが70以上 → 買われすぎ → 売り時?

※過去のパターンが将来の利益を保証するものではありません。

7. Pythonによる株価分析のメリット・デメリット

メリット

  • 無料で分析可能
  • データを自由に加工できる
  • 自分だけの投資戦略を構築できる

デメリット

  • データのリアルタイム性に限界あり
  • プログラミング初心者には少しハードルがある

まとめ

本記事では、Pythonとyfinanceを使って初心者でも手軽に株価分析ができる方法をご紹介しました。

株価データの取得、可視化、分析指標の活用など、シンプルながら本格的な分析が可能です。

これからさらにステップアップしていきたい方には、Pythonの体系的な学習をおすすめします。

Pythonを学ぶなら「Udemy」で効率的に

独学でPythonを学ぶ場合、公式リファレンスだけでは挫折しがちです。
そんな時に心強いのが、動画で体系的に学べるUdemyの講座

  • Python初心者向け講座から、投資データ分析に特化した実践講座まで多数
  • 買い切り型で、一度買えばいつでも復習可能
  • セール時は90%オフなど、非常にお得

投資家にとっての“自己投資”として、Udemyは非常にコスパの高い選択肢です。

【裏ワザ】Udemyの講座は“ある方法”でさらにお得に買える

実は、Udemyの講座はポイントサイトを経由することで、さらにお得に購入できることをご存知ですか?

おすすめは「ハピタス」というポイントサイト。
ハピタスを経由してUdemyで講座を購入すると、購入金額の数15%がポイントとして還元されます(2025年4月調査時点)。

手順は3ステップ

  1. ハピタスに無料登録
  2. その買うを、もっとハッピーに。|ハピタス

  3. 「Udemy」と検索して表示されたリンクをクリック
  4. 講座を通常通り購入するだけ

学びながらポイントも貯まり、一石二鳥です。