投資のためのデータサイエンス

個人の投資活動に役立つデータ分析にまつわる話題を綴ります。

TA-Libによる株価テクニカル分析(その2)ローソク足パターン認識

前々回の投稿ではPythonの株価テクニカル分析ライブラリの一つであるTA-Libを各種オシレーターの計算に用いました。今回はTA-Libにあるローソク足パターン認識機能を利用してみます。尚、TA-Libのインストールはconda-install以外にも「pip install ライブラリのwhlファイル」という方法もあり、PCの環境により特定の方法がうまくいかない場合もあるので注意が必要です。

今回もまず、必要なライブラリをインポートし、株価データをダウンロードします。

# ライブラリのインポート
import talib
import yfinance as yf
import datetime
from datetime import date
import pandas as pd
import numpy as np
import mplfinance as mpf
from pandas_datareader import data as pdr
# Yahoo! Financeからのデータ獲得
start = "2023-08-01"
end = datetime.date.today()
ticker = "3237.T"
yf.pdr_override()
# yahooサイトからデータをダウンロード
df_stock = pdr.get_data_yahoo(ticker, start, end)
df_stock.head()


次に、TA-Libにあるパターン認識機能のうちのいくつかを呼び出して自動判定します。

# 株価データの系列を取り出す
open = df_stock['Open']
high = df_stock['High']
low = df_stock['Low']
close = df_stock['Adj Close']
# パターンを判定する
engulfing = talib.CDLENGULFING(open,high,low,close)
hammer = talib.CDLHAMMER(open,high,low,close)
piercingLine = talib.CDLPIERCING(open,high,low,close)
# 結果を新しいデータフレームに保存する
df_pattern = pd.concat([engulfing, hammer, piercingLine], axis=1)
df_pattern.columns = ['Engulfing','Hammer','PiercingLine']
df_pattern.tail()


判定結果の数値で「100」は強気、「-100」は弱気となります。実際にローソク足チャートで当該日の部分をハイライトしてみると、そのパターンになっていることがわかります。

現実にはローソク足のパターン判定だけでは株購入を判断するのには不十分ですが、作業を自動化して効率を上げることはできそうです。