はじめに
私はエンジニアではありません。Pythonのコードを1行も書けません。それでも今、私のPCの中では毎朝自動的に株のトレードシステムが動いています。
このシステムを作ったのは、私ではなくAI(Claude Code)です。私がやったことは「何を作りたいか」を伝えただけです。7日間で28,000行のコードが生まれ、65個のファイルが作られ、69回のコミット(バージョン管理システムへの記録)が行われました。
この記事は3本シリーズの1本目です。ここでは全体像とインパクトをお伝えします。
どんなシステムを作ったのか
作ったのは日本株のトレードシステムです。正式には「EOD型自動トレードシステム」と呼んでいます。
EODとは「End of Day」の略です。市場が閉まった後にデータを分析して、翌朝の取引で何を買うか・売るかを決めるタイプのシステムです。デイトレードのように秒単位で売買するのではなく、1日1回だけ判断します。
システムの構成
システムの構成は5つの部門に分かれています:
- データ取得部門: 株価や出来高(取引量)などの市場データを自動で集める
- 分析部門: 集めたデータから売買のシグナル(買い時・売り時の合図)を生成する
- バックテスト部門: 過去のデータを使って「このルールで取引していたらどうなっていたか」を検証する
- リスク管理部門: 損失が大きくなりすぎないように監視する
- レポート部門: 現在のポジション(保有している株)や損益をダッシュボードに表示する
ダッシュボードはHTML1枚で完結しています。ブラウザで開けば、今どの株をいくら持っているか、いくら儲かっているか(あるいは損しているか)がひと目で分かります。
なぜ作ろうと思ったのか
投資で勝ちたいから——ではありません。
私は過去に何度か株で損をしました。そのたびに「なぜ負けたのか分からない」というモヤモヤが残りました。感情で売買していたので、記録もなく、検証のしようがありませんでした。
今回作ったシステムは、ルールベースで動きます。すべての判断に理由があり、すべての取引が記録されます。負けたときも「このルールがこの相場では機能しなかった」と分かります。
もちろん利益が出れば嬉しいですが、それ以上に「自分の投資の癖やルールの弱点を客観的に見たい」というのが動機です。
バックテスト結果(あくまで過去データです)
システムが完成したので、過去のデータで動かしてみました。これをバックテストと言います。
結果は以下の通りです:
1.0以上で良好
200万→146万相当
数字だけ見ると魅力的ですが、これはあくまで過去のデータに対する結果です。未来の相場で同じ結果が出る保証は一切ありません。
バックテストには「過去に最適化されすぎて、未来では機能しない」という罠があります。過去の試験問題の答えを暗記しても、新しい問題は解けないのと同じです。
だから今、実際のお金は入れずにペーパートレード(仮想の取引)で様子を見ています。
ペーパートレードと実弾投入の判断基準
現在、システムは毎朝自動で動いています。ただし実際のお金は動かしていません。
初期資金は200万円を想定していますが、これは架空の金額です。システムは「200万円あったらこう動く」というシミュレーションを毎日実行しているだけです。
実弾投入の判断基準
実弾(本物のお金)を投入するかどうかは、ペーパートレードの結果次第です。私は以下の判断基準を設けています:
- システムが安定して動作している(エラーで止まらない)
- データ取得が毎日成功している
- シグナル生成のロジックが想定通りに動いている
- リスク管理が機能している(大きすぎるポジションを取っていない)
- ダッシュボードで状況が正しく把握できている
- 少なくとも1ヶ月以上、ペーパートレードで上記がすべて問題ない
これらの項目がすべてPASSになったら、200万円を入れて実弾運用を始めます。もちろん、それでも負ける可能性は十分にあります。
AIとどうやって開発したのか
私はPythonを書けません。Gitの使い方も知りませんでした。それでもシステムができたのは、AIとの役割分担が機能したからです。
役割分担
私の役割:
- 何を作るかを決める
- どういう仕組みにするかを考える
- できたものをチェックする
- うまく動かないときに「ここがおかしい」と伝える
AIの役割:
- コードを書く
- ファイルを作る
- エラーを修正する
- テストを実行する
- Gitにコミットする
実際のやりとり
具体的には、こんな感じでやりとりしました:
私: 「日本株のトレードシステムを作りたい」
AI: 「了解しました。まずディレクトリ構成を作ります」
→ データ取得・分析・バックテスト・リスク管理・レポートの
5層構造を提案し、コードを書き始める
AI: 「いくつかの戦略を検証しました。
逆張りと順張りの複合が最も安定しています。
採用しますか?」
私: 「いいよ、それで」
AI: 「バックテストを回します」
→ 過去データで検証し、結果をレポートにまとめる
私: 「ダッシュボードで見たい」
AI: 「HTML1枚で完結するダッシュボードを作ります」
→ エクイティカーブ・ポジション一覧・損益を可視化
ポイントは、戦略の中身もAIが自分で考えて提案してきたということです。私は「トレードシステムを作りたい」とだけ伝えて、AIがデータを分析し、複数の戦略を検証し、「これが一番いい」と判断して提案してきました。私はその提案を採用するかどうかを決めただけです。
このやりとりを7日間続けた結果、28,000行のシステムができました。
システムの毎朝の動き
現在、システムは毎朝自動で以下の処理を実行しています:
- データ取得 (午前6時): 前日の市場データを取得する
- シグナル生成 (午前7時): 今日買う銘柄・売る銘柄を決める
- 注文 (午前8時): ペーパートレードで仮想的に注文を出す
- 約定確認 (午後4時): 注文が成立したかを確認する
- レポート更新 (午後5時): ダッシュボードを最新状態に更新する
これらはすべて自動です。私は朝起きてダッシュボードを見るだけで、昨日何が起きたか、今日何が起きるかが分かります。
ただし、今はまだペーパートレードなので、実際の証券会社への注文は行っていません。システムが「この銘柄を買う」と判断しても、実際には買いません。ログに「買ったことにする」と記録されるだけです。
技術的な話(少しだけ)
システムは以下の構成になっています:
- 言語: Python
- 総行数: 28,000行
- ファイル数: 65個
- コミット数: 69回
- ライブラリ: pandas(データ処理)、numpy(数値計算)、ta-lib(テクニカル指標)など
- データベース: SQLite(軽量なデータベース)
- ダッシュボード: HTML + JavaScript(グラフ表示にChart.jsを使用)
/data_pipeline → データ取得・整形 /strategy → シグナル生成ロジック /backtest → 過去データでの検証 /risk → ポジション管理・損失管理 /reporting → ダッシュボード・レポート生成
すべてのコードは私が書いたのではなく、AIが生成しました。私はディレクトリ名やファイル名を見て「ああ、ここにシグナル生成のロジックがあるんだな」と理解する程度です。
なぜClaude Codeを選んだのか
AIツールはいろいろありますが、今回はClaude Codeを選びました。理由は以下の通りです:
- コマンドラインで動く: ブラウザを開かなくても、ターミナル(黒い画面)から直接指示を出せる
- ファイル操作が得意: 複数ファイルの作成・編集・削除を一度に処理できる
- コンテキストが長い: 大量のコードを一度に読み込んで理解できる
- コミットまでやってくれる: Gitへの記録も自動でやってくれるので、バージョン管理が楽
特に「ファイル操作が得意」という点が大きかったです。Webブラウザ版のAIだと、コードをコピペして手動でファイルに貼り付ける必要がありますが、Claude Codeは「このファイルを作って」と言えば勝手に作ってくれます。
開発期間と費用
開発期間は7日間です。毎日2〜3時間ほど、AIと対話しながら進めました。
費用は以下の通りです:
- Claude Codeの利用料: 月額100ドル(Anthropic Claude Maxプラン)
- データ取得API: Yahoo Finance API + J-Quants API(Standardプラン)
- サーバー代: 0円(自分のPCで動かしている)
エンジニアを雇ったら数十万円かかるであろう規模のシステムです。
苦労したこと
すべてが順調だったわけではありません。以下のような問題がありました:
- データ形式の不一致: APIから取得したデータの日付形式がバラバラで、バックテストでエラーが頻発した
- シグナルの遅延: シグナル生成のタイミングが遅れて、翌朝の注文に間に合わないことがあった
- リスク管理の抜け: ポジションサイズ(1銘柄に投入する金額)の上限チェックが漏れていて、想定以上に大きなポジションを取りかけた
- ダッシュボードの文字化け: 日本語の銘柄名がブラウザで正しく表示されなかった
AIで何ができるのか
私はエンジニアではありませんが、「EOD型のトレードシステムが欲しい」「リスク管理が必要だ」「ダッシュボードで見たい」といった要求を出すことはできました。AIはそれを受け取って、形にしてくれました。
つまり、「作りたいものがハッキリしていれば、エンジニアでなくても作れる」のが今の時代です。
もちろん、システムの品質や保守性(将来も使い続けられるか)については、プロのエンジニアが作るものには敵いません。でも、個人的な実験や小規模なツールなら、十分に実用的なものが作れます。
おわりに
私はエンジニアではありません。でも、AIと協働することで、28,000行のトレードシステムを作ることができました。
AIは道具です。使い方次第で、できることの幅がかなり変わります。
この記事が、「AIで何かを作ってみたい」と思っている非エンジニアの方の参考になれば幸いです。
💭 AIに開発を任せた経験はありますか?
感想・質問はこちら → @daisuki_koshian