Vibe Codingで、株式投資管理ツールを作ろうと思った話(その4)

 

なぜ「要件定義」から始めることにしたのか

売買シグナルやバックテストのプログラムをAIで作らせてみて感じたのは、
**「コードを書く前に、考えを整理しておかないとズレる」**ということだった。

そこで今回は、いきなり実装に入るのではなく、
「このツールで何を実現したいのか」を明確にするため、
最初から要件定義をAIと一緒に作ることにした。

最初にGeminiに投げた言葉

最初にGeminiに投げたのは、かなりシンプルなプロンプトだった。

「株式投資の情報を管理したい。
そのためのGUIやプログラムを作成してほしいので、
要件定義するのを手伝ってください」

ポイントは、「作ってほしい」ではなく、
**「要件定義を手伝ってほしい」**と明示したことだ。

この時点で、売買戦略や自動化よりも、
「情報をどう管理したいか」に意識が向いていた。

Geminiとの壁打ちは、一度で終わらなかった

要件を一通り入力すると、Geminiは、

「これで要件はすべて出そろいました。コーディングに移りますか?」

「要件定義は完全です。実装に移りますか?」

というような反応を返してくれた。

ただ、ここで私はすぐに実装には進まなかった。

「本当にこれで十分か?」
「まだ考慮できていないことはないか?」

そう考えて、要件を見直し、少しずつ追加していった。

例えば、

  • 日本株だけでなく 米国株 も管理したい
  • iDeCoNISA も対象にしたい
  • 証券会社を 3社 使っているので、情報を 一元管理 したい

といった要望は、最初からすべて出てきたわけではない。
壁打ちを続ける中で、「そういえばこれも必要だ」と後から追加していったものだ。

要件定義は、一発で完成するものではないと実感した。

あえて「作らない」と決めた機能

要件を洗い出す中で、
今回はやらないと決めた機能もある。

自動売買は、今回は見送る

ゴールデンクロスやタートルズといった定番戦略を
試しに実装してみることは考えていた。

ただ、

  • どんな戦略が本当に良いのか
  • どんなアルゴリズムが適切なのか

という点について、まだ明確な答えを持っていない。

この状態で自動売買まで踏み込むと、
ツールの目的がブレると感じたため、今回は見送ることにした。

リアルタイム表示も不要

デイトレードをするわけではないので、

  • リアルタイムの株価
  • リアルタイムの損益表示

も不要だと判断した。

常に最新であることよりも、
落ち着いて全体を把握できることを優先した。

テクニカル指標は最小限に

テクニカル指標も、入れ始めるとキリがない。
今回は必要になったら追加する方針にし、
最初は フィア&グリード指数 だけを見ることにした。

絶対に必要だと考えた「コア機能」

一方で、これがないと意味がないと感じた機能もある。

証券会社をまたいだ一元管理

年齢を重ねると、
複数の証券会社の画面を行き来して状況を把握するのは、
確実に負担になる。

だからこそ、

  • 保有銘柄
  • 保有数量
  • 含み損益

といった情報を、
一つの画面でまとめて確認できることは必須だと考えた。

ポートフォリオ戦略を前提にした管理

単に損益を見るだけではなく、

  • 各銘柄や資産クラスの 目標配分 を事前に設定し
  • 現状がその目標からどれだけズレているかを把握する

そんな使い方をしたいと思った。

売買を自動化するのではなく、
リバランスの判断材料を分かりやすく出すことが目的だ。

「分析ツール」と「管理ツール」は別物だった

これまで作ってきた分析ツールは、

  • 売買シグナルの有無を確認する
  • バックテストで成績をシミュレーションする

ことが目的だった。

ただ、実際には売買シグナルは頻繁に出ない。
何ヶ月も何も起きない銘柄も多い。

結果として、分析ツールを起動する頻度はどんどん下がっていった。

一方、管理ツールは違う。

  • 週に1回
  • 月に1回

といった頻度でも、

「今の投資状況はどうなっているだろう?」

と、自然に確認したくなる。

管理ツールに求めているのは、
正確な分析よりも 俯瞰的な把握 だと気づいた。

Geminiと要件定義をして「助かったこと」

Geminiとの壁打ちで一番助かったのは、
思いつくままに出した要望を、きちんと整理してくれたことだった。

脈絡のない要望を次々に入力しても、

  • 似た機能をまとめ
  • 役割ごとに分類し
  • 要件として形にしてくれる

時間を置いてから追加した要望も、
違和感なく全体に組み込んでくれた。

「考えを吐き出す相手」と「整理してくれる相手」が
同時に存在する感覚は、一人では得られなかったと思う。

AIだけに任せるとズレる部分もある

一方で、AIだけに任せるとズレると感じた点もあった。
それは 優先順位 だ。

例えば、最後の方で「iDeCoの投資状況も管理したい」と追加したところ、
それが重要な要素として扱われ、

  • ツール名
  • 全体の説明

にまで前面に出てきてしまった。

iDeCoは個人的にはそこまで重要度が高くない。
この経験から、

  • 整理はAI
  • 何を主役にするかの判断は人間

という役割分担が必要だと感じた。

要件定義を終えて、正直な気持ち

一通り要件定義は終わった。
ただ、「これで全部出し切れた」という感覚は、正直まだない。

これまでVibe Codingでアプリを作ってきた経験上、
実装してから「この機能も欲しい」と思うことは多い。

どこまで要件を洗い出せば安心できるのか、
その基準もまだはっきりしていない。

だから今回は、
一旦ここで区切りをつけて、実装に進んでみることにした。

実際にAIに作らせてみて、
どんなツールができるのかを確認したい。
そこから見えてくるものも、きっとあるはずだ。


次回は、
この要件定義をAIに渡して、最初にどんな実装が出てきたのか
を書いていく予定です。

 

スポンサーリンク