先日、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ライブラリを用いて計算された各種指標のチャートを描画しています。