ChatGPTのCode Interpreterはデータ解析能力を備えているので、株価データをアップロードすればプロ並みのテクニカル分析を実施することができます。
株価の生データを無料でダウンロードさせてくれるサイトは多くはありませんが、SBI証券の口座を持っていたのでHyper SBI-2というソフトウェアをインストールしました。HyperSBI-2は初めて使いましたが、直感的にわかりやすいユーザーインターフェースで、すぐに馴染むことができました。株価動向解析をしたい銘柄を検索すると、個別銘柄に関する詳細株価情報が表示されます。その画面で、最上段の中央右側に表示される「時系列」のボックスをクリックして日足・週足・月足のいずれか、及び表示期間を選択すると、表形式で時系列データが表示されます。その画面右上の「CSVエクスポート」のボックスをクリックすると、希望の生データがダウンロードされます。
XXXXX社(銘柄は伏せます)について2000/1/1から当日までの日足データをダウンロードしました。4897行 x 12列で540KBもある巨大なテキストデータ(コンマ区切り)でしたが、そのままChatGPTにアップロードしました。23年分の日付,始値,高値,安値,終値,5日平均,25日平均,75日平均,VWAP,出来高,5日平均,25日平均のデータですが、後述する理由により「日付,始値,高値,安値,終値,出来高」以外の列を削除し、「Date, Open, High, Low, Close, Volume」と英語に書き換え、またencodingをUTF-8に変更してからアップロードすべきでした。
なお、Code Interpreterはデータ処理の実行中に「Working」「Show work」と表示して待機状態となりますが、以下のチャット・ログでは「……」と記します。
User:
XXXXXと言う会社の日足データです。テクニカル分析を行い、株価動向として過去に類似していた時期を考察しながら、今後の株価動向予測について解説してください。
XXXXX-daily.csv
ChatGPT:
……すみません、何らかの理由でコードの実行がリセットされました。もう一度コードを実行してみます。
……CSVファイルを読み込む際にエンコーディングエラーが発生しました。このエラーはファイルのエンコーディング方式がPythonが予期するもの(通常はutf-8)と異なる場合に起こります。日本語を含むファイルではしばしばこのような問題が生じ、その場合には “shift_jis” や “cp932” などのエンコーディングを試すと解決することがあります。次に “shift_jis” での読み込みを試してみます。
……すみませんが、エラーが発生しました。データフレームの列名を確認して、正しい列名を指定しているかを確認します。
……提供されたデータには次の列が含まれています:
日付: 株価データの日付
始値: その日の始値
高値: その日の最高値
安値: その日の最低値
終値: その日の終値
5日平均: 過去5日間の終値の平均
25日平均: 過去25日間の終値の平均
75日平均: 過去75日間の終値の平均
VWAP: ボリューム加重平均価格
出来高: その日の取引量
5日平均.1: 過去5日間の取引量の平均
25日平均.1: 過去25日間の取引量の平均
これらの情報を用いてテクニカル分析を行い、株価の動向と過去に類似していた時期を考察し、今後の株価動向予測について解説します。まず、”終値”の推移を可視化して全体的なトレンドを把握します。その後、移動平均を用いて短期と長期のトレンドを比較し、その差異から売買のシグナルを探します。さらに、出来高のデータを用いて市場の活況度を把握します。最後に、これらの情報を組み合わせて今後の株価動向を予測します。
……すみませんが、コードの実行がタイムアウトしました。これは、データの量が大きすぎて処理に時間がかかりすぎるために発生します。データの範囲を絞る、または処理をより単純にするなど、異なるアプローチを試してみます。今回は、直近の1年間のデータのみをプロットしてみます。
……グラフによると、XXXXXの株価は過去1年間で上昇傾向にありました。特に、直近の数ヶ月では急激な上昇が見られました。また、5日移動平均と25日移動平均の両方とも株価の上昇を反映していて、これらの移動平均線が株価を下から支える形になっています。これは、上昇トレンドが続いている強いサインと言えます。
次に、過去に類似の動きが見られた時期を見つけるために、移動平均線のクロスオーバーを探します。具体的には、5日移動平均が25日移動平均を下から上に突き抜ける(ゴールデンクロス)点や、5日移動平均が25日移動平均を上から下に突き抜ける(デッドクロス)点を見つけると、それぞれ上昇トレンドの開始や下降トレンドの開始のサインとなります。
また、出来高のデータを用いて市場の活況度を確認します。出来高が増加しているときは、市場参加者の関心が高まっていることを示し、その動向には特に注意が必要です。
これらの情報を組み合わせて、株価の動向予測を行います。テクニカル分析は過去のデータに基づくもので、未来を確実に予測するものではありませんが、市場の動向を理解する一つのツールとして有用です。……過去1年間でゴールデンクロス(5日移動平均が25日移動平均を下から上に突き抜ける点)は次の8回見られました:
2023-06-14
2023-05-12
2023-03-31
2023-03-09
2022-12-14
2022-12-01
2022-11-09
2022-09-26
一方、デッドクロス(5日移動平均が25日移動平均を上から下に突き抜ける点)は次の8回見られました:
2023-06-07
2023-04-21
2023-03-28
2023-01-18
2022-12-08
2022-11-15
2022-10-26
2022-08-08
これらのクロスオーバーはトレンドの変化を示しており、適切な売買タイミングの指標となり得ます。ゴールデンクロスが発生した場合、それは上昇トレンドの開始を示しており、株式を購入する可能性のある良いタイミングと考えられます。一方、デッドクロスが発生した場合、それは下降トレンドの開始を示し、株式を売却する可能性のある良いタイミングと考えられます。
これらのパターンを認識することは重要ですが、テクニカル分析はあくまで予測ツールの1つであり、未来の価格動向を確実に予測するものではないことを念頭に置くことが重要です。また、他の情報や分析結果と組み合わせて使用することが最も効果的です。例えば、出来高の増加、ファンダメンタル分析による評価、業界ニュースなど、多角的に情報を収集して分析することが重要です。
【解説】グラフ中で日本語の文字は文字化けしますが、列の名前を英語に書き換えれば正しく表示されます。CSVファイルをDate, Open, High, Low, Close, Volumeだけの過去10年間の日足(約125KB)に縮小したところ、そのまま処理してくれました。上記の例では単に「テクニカル分析」と書いたのでChatGPTが勝手に指標を決めて解析しましたが、今度は「ストキャスティクスの視点から今後の価格動向を予測してください」と指定してみました。
ChatGPT:
上記のグラフによると、XXXXXの株価とストキャスティクス(%Kラインと%Dライン)の動向を比較することができます。ストキャスティクスは、価格の上昇または下降を予測するために使用されるテクニカル指標で、%Kラインと%Dラインの交差点は売買のシグナルとして解釈されます。
具体的には、%Kラインが%Dラインを下から上に突き抜ける点(ゴールデンクロス)は買いのシグナル(価格の上昇を予測)、%Kラインが%Dラインを上から下に突き抜ける点(デッドクロス)は売りのシグナル(価格の下降を予測)とされます。ただし、これらのシグナルは必ずしも100%正確ではないため、他のテクニカル指標やファンダメンタルズと併せて解釈することが推奨されます。
さらに、ストキャスティクスはオーバーボート(過買)とオーバーソールド(過売)の領域を示すことで知られています。一般的には、%Kまたは%Dが80以上の場合はオーバーボート株価が過剰に上昇し、反落の可能性がある)、20以下の場合はオーバーソールド(株価が過剰に下落し、反発の可能性がある)とされます。
上記のグラフを見ると、%Kラインと%Dラインはしばしば交差し、上昇と下降の動きを示しています。これは、XXXXXの株価が一定の範囲内で上下に動いていることを示しています。
最近のデータを見ると、%Kラインと%Dラインは一緒に上昇しており、これは短期的な上昇トレンドを示している可能性があります。しかし、両ラインはまだ80のラインを超えていないため、オーバーボートの状態にはないと言えます。
したがって、この情報を基に、XXXXXの株価は短期的には上昇傾向にあると考えられますが、市場全体の状況や他のテクニカル指標、そして企業の基本的な健全性なども考慮することが重要です。長期的な予測を立てる場合には、さらに詳細な分析や他の要因の考慮が必要です。
なお、テクニカル分析はあくまで一つの視点であり、必ずしも未来を正確に予測するものではないことを理解してください。投資判断は自己責任で行っていただくようお願いいたします。