【Python株価分析・深掘り編】yfinanceとpandas_ta入門!ツールを支える強力ライブラリを徹底解説

「あの株価分析ツール、どうやってインターネットから株価データを取ってきてるの?」
「移動平均線やMACDの計算が、たった1行で書けるなんて、どんな魔法?」

こんにちは! Pythonプログラミング探検隊、隊長のPythonistaです! 先日公開した「Pythonで作る株価買いシグナル自動検出ツール」の記事は、楽しんでいただけましたでしょうか? 複数のライブラリを組み合わせて、実用的なツールを完成させることができましたね。

記事を読んでいただいた方、あるいは実際にコードを動かしてみた方の中には、「あのスクリプトを裏で支えているyfinancepandas_taといったライブラリは、一体何者なんだろう?」と疑問に思った方も多いかもしれません。

今回の「深掘り編」では、そんな皆さんの知的好奇心にお応えして、あの便利ツールを可能にしている2つの超強力な外部ライブラリ、yfinancepandas_taに焦点を当て、その基本的な使い方をじっくりと解説していきます。この2つの「武器」を理解すれば、あのツールを自分なりにカスタマイズしたり、全く新しい金融データ分析ツールを作ったりするための、大きなヒントが得られますよ!


1. yfinance:Yahoo! Financeのデータを手軽に取得

私たちの分析は、まずデータがなければ始まりません。yfinanceは、世界中の投資家が利用するYahoo! Financeの豊富な株価データを、Pythonから驚くほど簡単に取得できるようにしてくれるライブラリです。

1.1. インストール

まずはpipでインストールしましょう。ターミナルやコマンドプロンプトで以下を実行します。

pip install yfinance

1.2. 基本的な使い方 (yf.download())

yfinanceの最も基本的な機能が、download()関数です。これを使うと、指定した銘柄(ティッカー)の過去の株価データをPandasのDataFrameとして直接取得できます。

import yfinance as yf

# 例として、トヨタ自動車(7203.T)の2024年1月1日以降の株価データを取得
# 東証の銘柄は末尾に ".T" をつけます
ticker_code = '7203.T'
start_date = '2024-01-01'

try:
    df_toyota = yf.download(ticker_code, start=start_date, progress=False)
    
    print(f"\n--- {ticker_code} の株価データ (yfinance) ---")
    # .head()で最初の5行、.tail()で最後の5行を表示
    print("最初の5日間:")
    print(df_toyota.head())
    print("\n直近の5日間:")
    print(df_toyota.tail())
    
except Exception as e:
    print(f"エラー: データの取得に失敗しました - {e}")

実行結果 (例):

--- 7203.T の株価データ (yfinance) ---
最初の5日間:
                  Open        High         Low       Close    Volume
Date
2024-01-04  2580.000000  2635.00000  2573.50000  2623.50000  18195800
... (中略) ...

直近の5日間:
                  Open        High         Low       Close    Volume
Date
2025-06-16  3105.000000  3130.00000  3096.00000  3125.00000  15000000
... (中略) ...

このように、たった1行のコードで、日付をインデックスとし、始値(Open), 高値(High), 安値(Low), 終値(Close), 出来高(Volume)を含む、整形されたDataFrameが手に入ります。これがyfinanceの強力さです。


2. pandas_ta:テクニカル指標の計算を完全自動化!

株価データを取得したら、次に行うのはテクニカル分析です。移動平均線(SMA)、MACD、RSIといった指標を自前で計算しようとすると、Pandasの.rolling().ewm()などを使って複雑な数式を組む必要があります。

pandas_taは、その面倒な作業を全て肩代わりしてくれる、まさに「魔法」のようなライブラリです。

2.1. インストール

pip install pandas-ta

2.2. 魔法の.taアクセサの使い方

pandas_taをインポートすると、PandasのDataFrameオブジェクトに.taという特別な「アクセサ」が追加されます。これを通じて、100種類以上のテクニカル指標をメソッドとして呼び出すだけで、計算結果が新しい列としてDataFrameに自動的に追加されます。

import yfinance as yf
import pandas_ta as ta

# まずはyfinanceでデータを取得
df = yf.download('7203.T', period='6mo', progress=False)

# --- pandas_taでテクニカル指標を追加 ---

# 1. 単純移動平均線 (SMA) を追加 (期間: 25日と75日)
df.ta.sma(length=25, append=True)
df.ta.sma(length=75, append=True)

# 2. RSIを追加 (期間: 14日)
df.ta.rsi(length=14, append=True)

# 3. MACDを追加 (デフォルト設定)
df.ta.macd(append=True)

# 結果を確認 (後ろの方の行に計算結果が入っている)
print("\n--- テクニカル指標が追加されたDataFrame ---")
print(df.tail())

実行結果 (例):

--- テクニカル指標が追加されたDataFrame ---
                  Open   High    Low  Close    Volume  SMA_25  SMA_75  RSI_14  MACD_12_26_9  MACDh_12_26_9  MACDs_12_26_9
Date
2025-06-16  3105.0  3130.0  3096.0  3125.0  15000000  3050.6  2980.1  58.23      25.123         5.432          19.691
... (以下略) ...

どうでしょうか? df.ta.指標名()というメソッドを呼び出すだけで、SMA_25RSI_14、MACD関連の3つの列などが自動で追加されました。append=Trueが、計算結果を元のDataFrameに直接追加してくれる便利なオプションです。


3. なぜこの2つを組み合わせるのか?

もうお分かりですね。この2つのライブラリは、株価分析のワークフローにおいて完璧なコンビネーションを形成します。

yfinance (データ取得担当) pandas_ta (指標計算担当)

この流れを使うことで、分析ロジックの構築に集中する前に必要な「データ収集」と「データ加工」のステップを、数行のコードで完了させることができます。私たちの「株価買いシグナル自動検出ツール」は、まさにこの強力な連携の上に成り立っていたのです。

import yfinance as yf
import pandas_ta as ta

# 1. yfinanceでデータを取得
df_stock = yf.download("9984.T", period="1y", progress=False)

# 2. pandas_taでテクニカル指標を一括で追加
# カスタム戦略を作成して、複数の指標を一度に追加することも可能
custom_strategy = ta.Strategy(
    name="My Custom Strategy",
    description="SMA, RSI, and MACD",
    ta=[
        {"kind": "sma", "length": 50},
        {"kind": "rsi"},
        {"kind": "macd"},
    ]
)
df_stock.ta.strategy(custom_strategy)

print("\n--- カスタム戦略で指標を追加したDataFrame ---")
print(df_stock.tail())

まとめ:強力なライブラリで、分析作業を加速しよう!

今回は、私たちの株価分析ツールを裏側で支える、yfinancepandas_taという2つの強力なライブラリに焦点を当てて解説しました。

  • yfinance: 最新の株価データを、Pandas DataFrameとして手軽に取得できる。
  • pandas_ta: 取得したDataFrameに、100種類以上のテクニカル指標をわずか1行のコードで追加できる。

プログラミングの大きな魅力の一つは、優れたライブラリを活用することで、複雑な処理を自分で実装することなく、その恩恵を受けられる点にあります。今回の2つのライブラリは、まさにその好例です。

これらのツールの使い方をマスターしたことで、あなたは以前作成した株価分析ツールをさらに自由にカスタマイズしたり、全く新しい分析手法を試したりする準備が整いました。ぜひ、色々な銘柄やテクニカル指標で試してみてください!

その他の投稿はこちら

コメント

このブログの人気の投稿

タイトルまとめ

これで迷わない!WindowsでPython環境構築する一番やさしい方法 #0

【Python標準ライブラリ完結!】11の冒険をありがとう!君のPython力が飛躍する「次の一歩」とは? 🚀