Vibe Codingで、株式投資管理ツールを作ろうと思った話(その2)
AIに小規模な関数を作らせてみたら、思った以上にデキがよかった。
「これは本格的に使えそうだ」と感じたので、次はもう少し実用寄りの題材で試してみることにした。
まず手を付けたのは、以前PerlやPythonで実装していた「株式投資戦略の売買シグナル」を出すプログラムだ。
AIに作らせたら、どう変わるのかを見てみたかった。
以前作ったのは、売買シグナルとバックテスト
以前コーディングしたのは、ざっくり言うと次の2つだ。
- 投資戦略の売買シグナルツール
- 過去データを使ったバックテストプログラム
初心者にも分かりやすい「ゴールデンクロス」や、投資本で読んだ「タートルズ」といった戦略を実装し、売買シグナルをプログラムで出すものだった。
ただ、現実の売買シグナルは頻繁に出るわけではない。
作った当初は毎日実行していたものの、そのうち起動しなくなり、半年に1回、思い出したように実行するだけになっていた。
「お小遣い稼ぎツール」への憧れと現実
こういうツールを作って実際に株を売買し、お小遣い稼ぎをしたくなる。
プログラマなら、一度は考えることではなかろうか。
もしVibe Codingで簡単にプログラミングできるなら、いろいろな戦略を試して「稼げる売買シグナル」が見つかるかもしれない。
そんな期待もあった。
AIに「戦略名」だけで頼むと、ここまでやってくれる
まずはゴールデンクロスの売買戦略を実装してみた。
株価の長期移動平均線と中期移動平均線の交差で売買する、あの定番の戦略だ。
試しに、
「ゴールデンクロス戦略で売買するプログラムを作成して」
とだけ入力してみると、AIは本当にそれっぽいものを作ってくれた。
タートルズ戦略も同様に、
「タートルズの戦略で売買するプログラムを作成して」
と言えば作ってくれる。
もちろん、売買条件は一般的なものになる。
それでも驚いたのは、過去の株価情報をインターネットから取得し、バックテストまで実行してくれたことだ。
しかも、トヨタなどの複数の主要銘柄について、
- 売買回数
- 通算損益額
を表やグラフで見せてくれるところまで、一気にやってくる。
ただし「出力が物足りない」問題にぶつかった
一方で、表やグラフに盛り込まれる情報は少なく、出力は正直満足できるものではなかった。
そこで、
{銘柄} × {戦略}の組み合わせで、通算損益額が高いものをTOP5で出してほしい- 個別の売買の様子をログとして確認したい
といった追加要求をAIに投げてみた。
しかし、ここからがなかなか思うようにいかない。
こちらが欲しい情報が増えるほど、
- 集計の切り口がズレる
- 条件が一部抜け落ちる
- 表示はされるが「見たい形」にならない
といったことが起き始めた。
以下は、そのとき出力されたログの一例だ。
=== パフォーマンスレポート ===
--- GoldenCross ---
銘柄 名称 戦略 最終資産 総損益 損益率(%) トレード回数 勝率
7203.T トヨタ自動車 GoldenCross 916,467.47 -83,532.53 -8.35 49 0.20
6758.T ソニーグループ GoldenCross 809,313.08 -190,686.92 -19.07 37 0.27
8058.T 三菱商事 GoldenCross 819,196.61 -180,803.39 -18.08 13 0.08
9432.T 日本電信電話 GoldenCross 880,352.52 -119,647.48 -11.96 30 0.27
1306.T NF・TOPIX連動型上場投信 GoldenCross 833,259.80 -166,740.20 -16.67 41 0.29
1308.T 上場インデックスファンドTOPIX GoldenCross 705,099.80 -294,900.20 -29.49 5 0.60
QQQ Invesco QQQ Trust GoldenCross 2,765.10 -234.90 -7.83 71 0.31
--- Turtles ---
銘柄 名称 戦略 最終資産 総損益 損益率(%) トレード回数 勝率
7203.T トヨタ自動車 Turtles 984,410.18 -15,589.82 -1.56 53 0.28
6758.T ソニーグループ Turtles 948,110.40 -51,889.60 -5.19 62 0.37
8058.T 三菱商事 Turtles 993,823.36 -6,176.64 -0.62 65 0.40
9432.T 日本電信電話 Turtles 802,874.70 -197,125.30 -19.71 40 0.25
1306.T NF・TOPIX連動型上場投信 Turtles 1,003,854.18 3,854.18 0.39 55 0.35
1308.T 上場インデックスファンドTOPIX Turtles 1,096,098.14 96,098.14 9.61 60 0.40
QQQ Invesco QQQ Trust Turtles 3,005.70 5.70 0.19 20 0.40
--- MeanReversionShort ---
銘柄 名称 戦略 最終資産 総損益 損益率(%) トレード回数 勝率
7203.T トヨタ自動車 MeanReversionShort 957,199.89 -42,800.11 -4.28 18 0.33
6758.T ソニーグループ MeanReversionShort 995,664.29 -4,335.71 -0.43 35 0.31
8058.T 三菱商事 MeanReversionShort 1,094,854.36 94,854.36 9.49 28 0.54
9432.T 日本電信電話 MeanReversionShort 934,678.24 -65,321.76 -6.53 9 0.22
1306.T NF・TOPIX連動型上場投信 MeanReversionShort 987,891.13 -12,108.87 -1.21 6 0.50
1308.T 上場インデックスファンドTOPIX MeanReversionShort 1,005,527.18 5,527.18 0.55 6 0.33
QQQ Invesco QQQ Trust MeanReversionShort 2,943.80 -56.20 -1.87 9 0.33
一見すると、ちゃんと計算もされていて、それっぽくはある。
だが、
- 戦略ごとの比較がしづらい
- どの銘柄×戦略が「良い」のか直感的に分からない
- 次に何を見ればいいのか判断できない
という問題があった。
「データは出ているが、意思決定に使いにくい」
そんな状態だった。
HTMLで出力させたいが、見た目が“それっぽい”止まり
ログをテキストで見るより、HTMLで出力した方が見やすいはずだ。
そう思ってHTML出力も試してみた。
ただ、ここでも壁にぶつかった。
デザインの指定をほとんどしていないので、せいぜいランキング情報とグラフをHTMLページに貼り付けただけのものになる。
証券会社のツールのような洗練されたUIとは程遠い。
何度もプロンプトを入力して微調整するのも、だんだん疲れてきた。
ここで、ふと思った。
「そもそも、洗練されたGUIを作るようにAIに指示するって、どこまでできるんだろう?」
少し横道:ツールが“売買したい気持ち”を増幅する
話は少し横道にそれるが、投資本を読むとよく書かれている。
株式投資で成功しようと思ったら、確実に勝てそうなときだけ売買するのが基本だ、と。
一方で、自作ツールを作ると、頻繁に売買したくなる。
「シグナルが出た」「次は当たるかもしれない」――そんな気持ちが出てくる。
そこには、常に葛藤がある。
理想は、毎日ツールを自動実行して、
売買シグナルが出たときだけ通知してくれることなのだけど……。


ディスカッション
コメント一覧
まだ、コメントがありません