Pythonの「TA-Lib」ライブラリでテクニカル指標の計算と可視化をしてみよう「Python」×「株価データ」で学ぶデータ分析のいろは(3)(1/2 ページ)

日々変動する株価データを題材にPythonにおけるデータ分析のいろはを学んでいく本連載。第3回は複数のテクニカル指標の計算と可視化を説明します。

» 2021年09月28日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

はじめに

 連載第2回では株価データの取得、データフレームの基本的な取り扱い、簡単な可視化方法を紹介しました。第3回は、複数のテクニカル指標の計算と可視化、株価データの考察をしてみましょう。

 連載の趣旨がデータ分析である以上、Python自体の言語仕様や文法に関しては詳しい説明を割愛する場合があることをご了承ください。

サンプルの実行方法

 サンプルファイルを実行する場合は、サンプルファイルのリンクを開いた後に、メニューの「ファイル」から「ドライブにコピーを保存」を選択して保存したコピーを「Google Colaboratory」で実行してください。

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

 Pythonでは外部ライブラリをインストールすることで、より高度な機能を利用することができます。本稿では、Google Colaboratoryでデータを可視化するためのライブラリをインストールし、株価データを詳細に可視化できるような環境を構築します。

インストールするライブラリ

 今回は「TA-Lib」という金融データを分析するためのライブラリを利用します。Ta-Libは、株価の推移から将来の値動きを予想する「テクニカル指標」を200以上計算できるライブラリです。Ta-Libでよく利用されるオシレーターには次のものがあります。

名前 概要
MACD 売買シグナルを検出
RSI 買われ過ぎ、売られ過ぎを判断
stochastic 変動幅の中で終値の位置を判断
パラボリック 相場、トレンドの転換点を検出
表1 よく利用されるオシレーター

 TA-Libで算出できる全てのテクニカル指標は、公式ドキュメント(https://ta-lib.org/function.html)で確認できます。

Google Colaboratoryの仮想環境を利用してライブラリをインストールする

 Ta-Libは、pipによるインストールには対応していません。ソースコードを入手した後で、Google Colaboratoryでコンパイル、バイナリを作成してインストールします。

!wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
!tar -xzvf ta-lib-0.4.0-src.tar.gz
!cd ta-lib && ./configure --prefix=/usr && make && make install
!pip install Ta-Lib
TA-Libのインストール(Ch3.ipynb抜粋)

TA-Libのインストール TA-Libのインストール

 Google Colaboratoryは仮想環境を備えており、オープンソースのソフトウェアをインストールすることが可能です。今回はTa-Libをソースコードからコンパイルして、バイナリを作成後、pipコマンドでインストールしました。実行した後に「Successfully installed」というメッセージが確認できればインストール完了です。なお、インストールには数分かかります。

売買シグナルに注目した分析

 株価を売買すべき転換点を「売買シグナル」といいます。株価が上下する転換点と考えておいてください。売買シグナルが分かると、どの時点で株を売る/買うというタイミングが分かります。この売買シグナルに注目して株価を分析してみます。

MACDを利用する

 移動平均線の売買シグナルを利用したテクニカル指標の一つに「MACD」(Moving Average Convergence Divergence)があります。MACDでは、MACDラインとシグナルラインの2本の線で売買シグナルを検出します。

ライン 概要
MACDライン 短期/長期の移動平均の差
シグナルライン MACDラインの移動平均
表2 MACDで利用する線

 TA-Libを利用してMACDを計算し、その結果を可視化してみましょう。

MACDを計算する

 MACDは、TA-LIbで簡単に計算できます。実際に計算したMACDの値を確認してみましょう。今回は「MCJ(6670)」の株価を例に説明します。

MACDの計算

import talib as ta
df = get_stock_data(6670)  # (株)MCJ(6670)の株価を取得
# 終値からMACDを計算
close = df['Close']
macd, macdsignal, _ = ta.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)
df['macd'] = macd
df['macd_signal'] = macdsignal
df.tail()
(Ch3.ipynb抜粋)

 TA-LibのMACDメソッドに終値のシリーズと短期日数、長期日数、シグナル日数を渡すと、MACD、シグナル、2つの差分がそれぞれシリーズで得られます。利用するのは、MACD、シグナルのみなので、その2つを取得してデータフレームに格納しています。MACDを計算する書式は次の通りです。

%MACD%, %シグナルライン%, %2つの差分% = %TA-Libオブジェクト%.MACD(%終値のシリーズ%, fastperiod=短期日数, slowperiod=長期日数, signalperiod=シグナル日数)
MACDを計算する書式

 MACDを計算する際のパラメーターは、MACDを考案したジェラルド・アペル氏が勧める、12日、26日、9日を利用しています。算出したMACDとMACDシグナルを、それぞれmacd, macd_signalの名前でデータフレームに格納します。サンプルを実行すると、次のようにMACDとMACDシグナルが計算できていることが分かります。

MACDの計算 MACDの計算

補足

 各テクニカル指標を計算する際のパラメーターは、一般的によく利用されている値を用いています。本連載では、株価分析の手法の解説が趣旨なので、テクニカル指標のパラメーターは1つの例として考えてください。

MACDを可視化する

 計算したMACDをmplfinanceで可視化してみます。直近100日分のMACDをローソク足、出来高とともに表示します。

import mplfinance as mpf
mdf = df.tail(100)  # 直近100日分のデータ
apd  = [
    mpf.make_addplot(mdf['macd'], panel=2, color='red'), # パネルの2番地に赤で描画
    mpf.make_addplot(mdf['macd_signal'], panel=2, color='blue'), 
]
mpf.plot(mdf, type='candle', volume=True, addplot=apd)
MACDの可視化(Ch3.ipynb抜粋)

 連載第2回で説明したように、make_addplotメソッドでMACDとMACDシグナルを追加しています。その際に、panelプロパティで表示する領域、colorプロパティで線の色を指定します。panelプロパティは、表示する領域を上から順に「0,1,2,,,N」で指定します。今回は、ローソク足と出来高の下にMACDを表示するので、panelプロパティには2を指定しました。

MACDの可視化 MACDの可視化

 MACDラインがシグナルラインを下から上に追い抜いたところ(①、②)で、株価が上昇に転じていることが分かります。逆に、MACDラインがシグナルラインを上から下に追い抜いたところ(③、④)で、株価が下落に転じていることが分かります。①、②が買い、③、④が売りのタイミングと判断できます。

 このようにMACDの2本の線で売買シグナルが検出できました。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。