ChatGPTと共作でアクティブファンドを選んで買ってみた
投資信託を選ぶとき、皆さんは何を基準にしているでしょうか。
ランキングでしょうか。
過去のリターンでしょうか。
証券会社のおすすめでしょうか。
それとも、SNSや投資系YouTuberの情報でしょうか。
今回、私は少し違う方法を試してみました。
ChatGPTと相談しながらPythonでプログラムを作り、投資信託のデータを取得して、自分なりの評価基準で点数をつけ、その結果を参考に実際にアクティブファンドを買ってみたのです。
もちろん、「AIが選んだファンドなら儲かる」という話ではありません。
むしろ、
「生成AIとプログラミングを使ってファンドを選んだら、本当に良い成績を残せるのか」
という実験の始まりです。
きっかけは「Pythonを使ってみよう」でした
私は以前、プログラマーやSEとして仕事をしていました。
ただし、Pythonはほとんど使ったことがありません。
そこで最近、
「せっかく生成AIを使っているのだから、ChatGPTと一緒にPythonを勉強してみよう」
と思いました。
最初に書いたのは、本当に簡単なプログラムでした。
funds = ["Fund A", "Fund B", "Fund C"]
for fund in funds:
print(fund)
ところが、プログラムを書いているうちに思いました。
どうせなら、自分が実際に使えるものを作ったほうが面白いのではないか。
私は以前から投資信託やETFで資産運用をしています。
だったら、
Pythonで投資信託を分析するプログラムを作ってみよう。
話はそこから一気に進みました。
投資信託のデータをPythonで取得する
データには、ウエルスアドバイザーの投資信託情報を利用しました。
そこには、
1年、3年、5年、10年のリターン
シャープレシオ
標準偏差
信託報酬
純資産総額
資金流出入
など、ファンドを比較するためのさまざまな情報があります。
これをPythonのpandasで読み込みます。
最初はうまくいきませんでした。
必要なライブラリが入っていなかったり、数値を取り出すプログラムにバグがあったりしました。
たとえば、
「リターン3年(年率)32.71%」
という文字列から数値を取り出そうとしたところ、なぜか結果が、
3.0
になりました。
シャープレシオも標準偏差も、全部3.0。
原因は単純でした。
プログラムが「3年」の「3」を最初に拾っていたのです。
そこでChatGPTと相談しながら修正しました。
こういうところは、生成AIとプログラミングの相性がかなり良いと感じます。
私がコードを書き、実行結果をChatGPTに見せる。
ChatGPTが原因を考える。
私が修正して、また実行する。
昔なら一人でデバッグしていた作業を、今はAIと会話しながら進められます。
まずは単純にリターン順に並べてみた
正常にデータを取得できるようになると、今度はアクティブファンドを抽出して、1年間のリターン順に並べてみました。
しかし、ここで新しい問題に気づきました。
リターンが高ければ、それだけで良いファンドなのでしょうか。
当然、そんな単純な話ではありません。
大きく値上がりするファンドは、大きく値下がりする可能性もあります。
そこで、
リターン
シャープレシオ
標準偏差
を組み合わせて評価することにしました。
シャープレシオは、取ったリスクに対してどれだけ効率よくリターンを得たかを見る指標です。
標準偏差は、値動きの大きさを見る指標です。
つまり、
「たくさん上がったファンド」だけではなく、「リスクに対して効率よくリターンを得たファンド」を探そう
と考えたわけです。
さらに3年、5年の成績も入れてみた
ところが、1年間だけの成績で判断するのも危険です。
たまたま直近1年間だけ絶好調だった可能性があります。
そこでプログラムを改良しました。
評価項目を、
1年リターン
3年リターン
5年リターン
3年シャープレシオ
3年標準偏差
信託報酬
まで広げました。
そして、それぞれに仮の重みを設定して、総合スコアを計算しました。
もちろん、この評価式が正しいという保証はありません。
むしろ、
「どういう評価式なら、本当に将来の成績が良くなるのか」
をこれから検証すること自体が、この実験の目的です。
そして、本当に買ってみた
プログラムでランキングを作るだけなら、単なる遊びで終わります。
そこで今回は、実際に買ってみることにしました。
予算は100万円。
注文したのは次の4本です。
キャッシュフロー経営評価オープン「選球眼」 25万円
情報エレクトロニクスファンド 20万円
ダイヤセレクト日本株オープン 25万円
日本株配当オープン「四季の実り」 30万円
合計100万円です。
なお、一時は非常に高い騰落率を示しているファンドも試しに注文しました。
しかし、それらについては考え直して取り消しました。
極端に高いリターンだけを見て選ぶのは、今回の実験の趣旨とも違うからです。
この経験から、
ブル・ベア型やレバレッジ型などは通常のアクティブファンドとは分けて評価したほうがよい
という、新しいプログラム上の課題も見つかりました。
買った記録もSQLiteに保存した
せっかくプログラムを作るなら、買って終わりにはしたくありません。
そこで今度はSQLiteでローカルデータベースを作りました。
記録するのは、
ファンド名
発注日
注文金額
NISAなどの口座区分
約定日
受渡日
基準価額
約定後の口数
などです。
ここでも実際に注文してみて気づいたことがありました。
投資信託では、
発注日と約定日は同じとは限りません。
今回も、同じ8月30日に注文したのに、ファンドによって約定予定日が違いました。
机の上で仕様を考えているだけでは、こういうところを見落としたかもしれません。
実際に使ってみると、必要なデータ項目が見えてきます。
これは昔、業務システムを作っていた頃にも経験したことです。
ChatGPTに投資判断を丸投げしたわけではありません
ここは重要なので書いておきます。
私は、
「ChatGPTさん、100万円あるから儲かる投資信託を教えて」
と聞いて、その回答どおりに買ったわけではありません。
データを取得するプログラムを作り、
数値を計算し、
評価方法を考え、
その評価方法自体についてChatGPTと議論し、
最後は自分で判断しました。
生成AIは非常に便利ですが、過去の成績から将来のリターンを保証することはできません。
今回使ったシャープレシオについても、投資対象によって数値が大きく変わるため、できるだけ同じ投資対象のファンド同士で比較する必要があります。
また、過去の運用実績は将来の運用成果を保証するものではありません。
その意味では、
AIに投資を任せたのではなく、AIを開発パートナーとして使った
という表現のほうが近いと思います。
本当の実験は、これから始まります
今回100万円分を買ったからといって、この方法が成功したことにはなりません。
むしろ、ここまでは準備です。
本当の実験はこれからです。
毎週あるいは毎月、基準価額を記録して、
購入した4本の成績
ポートフォリオ全体の成績
プログラム上の評価順位
VOOなどのベンチマーク
を比較していこうと思っています。
半年後、1年後。
果たしてどうなっているでしょうか。
PythonとChatGPTで選んだアクティブファンドは、インデックスに勝てるのでしょうか。
それとも、
「あれこれプログラムまで作ったけれど、結局VOOを持っているだけでよかった」
という結論になるのでしょうか。
それはそれで、立派な実験結果です。
AI時代の「個人開発」は面白い
私は昔、シェアウェアを一人で作り、販売し、サポートまでしていたことがあります。
当時は当然、生成AIなどありませんでした。
分からないことがあれば、自分で調べる。
バグが出れば、自分で原因を探す。
仕様も自分で考える。
全部一人でした。
ところが今は違います。
自分で考えながらコードを書き、分からないところをChatGPTに聞き、エラーを一緒に調べ、評価ロジックまで議論できます。
「一人開発」ではなく、「一人+AI開発」です。
今回、Pythonを少し勉強してみようと思ったところから始まった話が、気づけば投資信託を100万円分注文し、SQLiteのデータベースまで作るところまで進んでしまいました。
まだ始まったばかりです。
これから評価方法も改良します。
データも蓄積します。
失敗するかもしれません。
でも、それも含めて面白い。
さて、半年後。
ChatGPTと私の共同開発チームは、VOOに勝っているでしょうか。
それとも二人そろって、
「VOOさん、すみませんでした」
と頭を下げているでしょうか。
結果は、未来の相場だけが知っています。

いいなと思ったら応援しよう!
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!この記事は noteマネー にピックアップされました

