前々回の投稿では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」は弱気となります。実際にローソク足チャートで当該日の部分をハイライトしてみると、そのパターンになっていることがわかります。
現実にはローソク足のパターン判定だけでは株購入を判断するのには不十分ですが、作業を自動化して効率を上げることはできそうです。