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

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

PythonとChatGPTを利用した株価テクニカル分析

先日、Pythonによる株価テクニカル分析に関連して大変興味深い記事を見つけました。Pythonで株価のテクニカル分析の各種指標を計算し、その結果を定型のプロンプトの後につけてChatGPTに入力すると、ChatGPTが株価のテクニカル分析を行ってくれるというものです。

Stocks Technical Analysis (TA) with Python & ChatGPT: A Comprehensive Guide
medium.com

ただし上記記事は英文で、Mediumの有料購読をしていないと閲覧に制限があります。

ここでは上記記事のリンクのみ掲載しますが、上記記事のコードは、一か所を修正すれば日本株の分析にも使えます。修正箇所はこれまでにも本ブログに掲載した、Yahoo! Financeから株価データをダウンロードする部分です。
(05Sep23) コードにライブラリのインポート部分を追加しました。

# ライブラリのインポート
import matplotlib.pyplot as plt
import pandas as pd
import yfinance as yf
import pandas_ta as ta
import matplotlib.dates as mdates
from datetime import datetime, timedelta
import numpy as np
from pandas_datareader import data as pdr
# Define the stock symbol and timeframe
symbol = '4755.T'  # 4755は楽天グループ
end_date = datetime.today()
start_date = end_date - timedelta(days=120)  # 4 months before today
yf.pdr_override()
# yahooサイトからデータをダウンロード
stock_data = pdr.get_data_yahoo(symbol, start_date, end_date)

本記事に掲載されているChatGPTに入力するためのプロンプトは英文で最適化されているはずなので、このままの日本語への直訳は(たぶん)意味がありません。しかし株価テクニカル分析は国とは関係なく共通なので、上記のコードの修正を行い、単に銘柄の文字列の部分に"(銘柄コード).T"を入れればChatGPTが日本企業の株価のテクニカル分析をやってくれます(もちろん出力はすべて英文)。ただしChatGPTに入力しているのは直近の一日のオシレーター等の指標のみであることに注意が必要です。また、この記事ではテクニカル分析Pythonライブラリとして"pandas_ta"を利用していますが、当方が使ってみた限りでは"Williams %R"の計算が正しくない(たぶん符号が逆)ようです。これはChatGPTの回答からも確認できます。このコードの後半ではpandas_taライブラリを用いて計算された各種指標のチャートを描画しています。