RakuScan という投資分析システムの設計思想を、15章・約5万文字の有料本にまとめた。
毎日16時に16本のプラグインが200銘柄を自動スクリーニングし、Claude が統合レポートを生成して Discord に届ける。月額コスト0円。このシステムをゼロから設計・実装する過程で、何を考え、何に失敗し、なぜ今の形に辿り着いたかを書いた。
Zenn で公開している無料連載3本の深掘り版にあたる。連載が「何を作ったか」の紹介なら、本は「なぜそう作ったか」の記録。
連載と本の違い
連載3本は、RakuScan の各レイヤーを1記事ずつ紹介する構成だった。
| 回 | テーマ | 視点 |
|---|---|---|
| 第1回 | プラグインアーキテクチャ | 設計と仕組みの概要 |
| 第2回 | データ層とパイプライン | API選定とキャッシュの概要 |
| 第3回 | Claude統合とDiscord | 統合分析とBotの概要 |
本では、これらの裏側にある設計判断を15章で掘り下げている。
たとえば連載第1回では「PluginResult という共通インターフェースがある」と書いた。本ではその先、「なぜ score と confidence を分離したのか」まで踏み込んでいる。最初は score だけだった。ところがデータ欠損時に「高スコアだけど信頼できない」状態を表現できず、confidence を追加した——という経緯が本にはある。
連載ではスペースの都合で「こうなっている」で止まった部分を、本では「最初はこうだった → こう壊れた → だからこう直した」まで書いた。
本にしか書いていない3つの話
失敗の記録
連載では完成形を見せたが、本では失敗から書き始めている。
Claude 全任せで月3,000万トークン。 最初は分析のすべてを Claude に投げていた。1銘柄あたり往復5,000〜7,000トークン × 200銘柄 × 毎日。月に換算すると2,000万〜3,000万トークン。API の料金を計算して、個人の趣味で払える額ではないと気づいた。しかもトークンの大半は「200日移動平均を計算して」のような、pandas なら1行で書ける処理に消費されていた。
ここから「Python が計算し、Claude が判断する」分業設計に辿り着くまでの過程を第1章で書いた。結果、Claude に渡すトークンは1/500以下に圧縮された。
1本の長いスクリプトから始まった。 最初の RakuScan は analyze.py 1ファイルのモノリスだった。Altman Z-Score を追加しようとしたら変数名が衝突して、既存のモメンタム計算が壊れた。3つの手法で破綻するなら、9つになったら無理。ここからプラグイン型に舵を切った経緯を第3章で書いた。
EDINET DB 100件/日の壁。 全候補800銘柄に財務データを取りに行こうとして初日で上限に到達。800 ÷ 100 = 8日かかる計算で、月次バッチとしても現実的ではなかった。この制約が、3段階フィルタのユニバース構築という設計を生んだ。制約が設計をドライブした好例として第7章と第8章で詳しく書いている。
設計の比較検討
連載では採用した設計だけを説明したが、本では不採用にした選択肢とその理由も書いている。
- プラグイン型 vs モノリス vs 設定駆動(第3章)— 3つの設計を比較して、なぜプラグイン型を選んだか
- Anthropic API vs Claude Code CLI(第11章)— APIキー管理が不要な CLI を選んだ理由と、レスポンス速度のトレードオフ
- yfinance vs J-Quants Light(第8章)— 無料に拘ったことで得たものと、12日間で2回の障害を食らった話
実数値の公開
開発: 12日間 / 19,000行 / 81ファイル
プラグイン: 16本(5カテゴリ: ファクター, テクニカル, 財務, レジーム, リスク)
トークン効率: 全部Claude方式 → 分業方式で 1/500 以下に圧縮
キャッシュヒット率: 日次パイプラインで 90% 以上
月額コスト: 0円(全API無料枠)
監視銘柄数: 約200銘柄
「どうやって0円で回しているのか」「12日で19,000行をどう書いたのか」の具体的な答えが本の各章に散りばめてある。
15章の全体像
| # | 章タイトル | わかること |
|---|---|---|
| 1 | なぜ投資分析システムを自作したか | Claude全任せの失敗 → 分業設計への転換点 |
| 2 | 全体アーキテクチャ | システム俯瞰図、コンポーネント間の依存関係 |
| 3 | プラグインという設計判断 | モノリス → プラグイン型への移行経緯と比較 |
| 4 | 共通インターフェースの設計 | PluginResult の各フィールドに込めた意図 |
| 5 | YAML + importlib による動的ロード | 「ファイル1個 + YAML1行」を実現する37行のローダー |
| 6 | 9つのプラグインの戦略と実装 | 各手法の学術根拠 → 実装判断の解説 |
| 7 | ユニバース構築の3段階フィルタ | 800銘柄 → 200銘柄の絞り込み設計 |
| 8 | 3つの無料APIで戦う | yfinance / EDINET DB / J-Quants の使い分けと限界 |
| 9 | 2層キャッシュとバッチ取得戦略 | SQLite 2層キャッシュで API コール 99% 削減 |
| 10 | 日次・週次・月次パイプライン | 3層スケジューリングの設計と運用 |
| 11 | Pythonが計算し、Claudeが判断する | AI統合の分業設計とトークン効率化 |
| 12 | Discord Botで双方向にする | Webhook通知 + 対話型Botの設計 |
| 13 | シグナル事後評価とフィードバックループ | 「手法が効いているか」を数値で検知する仕組み |
| 14 | Claude Codeで開発を加速する | スキル・MCP統合、プラグイン自動生成 |
| 15 | 設計の振り返りと今後 | うまくいったこと・失敗・次にやること |
第1章は無料で読める。「Claude に全部やらせようとして失敗した」→ トークンを食い潰して気づいた → 「再現性」という要件 → 既存ツールへの不満 → 自作する判断基準。本全体のテーマを凝縮した章なので、まずここを読んで合うかどうか判断してほしい。
誰に向けた本か
- Python で何か作りたい個人開発者。 投資に興味がなくても、プラグインアーキテクチャ・YAML 駆動設計・ABC による抽象化のパターンは他のプロジェクトにも使い回せる
- AI をシステムに組み込みたいエンジニア。「全部 AI に任せる」と「AI を使わない」の間にある最適な分業点を、トークン消費の実数値つきで示している
- 投資×プログラミングに興味がある人。 Piotroski (2000)、Fama-French (1992)、Jegadeesh-Titman (1993) など学術論文ベースの手法を Python でどう実装したかの解説がある
逆に、投資の銘柄推奨を期待している人には向かない。本書は投資助言ではなく、ソフトウェア設計の解説書。
まとめ
500円・15章・約5万文字。連載で「面白そう」と思った部分があれば、その裏側が本に書いてある。
無料連載も公開中。 本を買う前に概要を掴みたい場合はこちらから。
この記事は Zenn にも同じ内容を投稿しています。