2025.06.30
Claude Codeで投資戦略を自動生成してみた
はじめに
こんにちは。グループ研究開発本部・AI研究開発室のR.I.です。
皆さん、投資で大儲けしたいですよね。寝てる間に勝手にお金が増えているのが理想です。
近年、LLMを組み込んだコーディングツールがめざましい速度で進歩しています。特に、Claude Codeのようなエージェント系コーディングツールでは、プロンプトを与えるだけで投資アイデアの生成からデータ分析、戦略構築、バックテストまでを簡単に自動化できます。これらに加えて、運用まで含めて自動化する仕組みを構築できれば、エージェントが勝手に戦略の生成、検証、評価を繰り返し、寝てる間にお金を増やしてくれる、なんてことも夢ではないかもしれません。さらに、リターンの相関が低い戦略を大量に生成・運用できれば、低いリスクでより高いリターンを得られ、投資戦略としての優位性を確保できる可能性もあります。
本稿では、投資戦略自動生成の初期検証として Claude Code を利用したシステムを構築し、実際に幾つかの戦略を生成して検証を行いました。
システム概要
システム設計
とりあえず、以下のような要件を満たすようにシステムを構築しました。
1. 自動化
- 人間の介入無く、完全に自動で動いて欲しい
- コンテナを利用して、Claude Code実行時に –dangerously-skip-permissions オプションを使用
- プロンプトで、全工程が完了するまで停止しないように指示
2. パフォーマンス
- なるべくパフォーマンスの良い戦略を生成して欲しい
- 年率シャープレシオ1.0以上、月間取引回数10回以上を必須条件として設定し、プロンプトでこれを満たすまで探索を続けるように指示
- パフォーマンスは、レポートにまとめるように指示
- 訓練データにオーバーフィットせず、未知のデータでもパフォーマンスが良い戦略を生成して欲しい
- データを80%の訓練データと20%のテストデータに分割し、訓練データのみで戦略開発し、最後に一回だけテストデータで検証するように指示
3. 実用性
- 実運用可能な戦略を生成して欲しい
- 典型的なデータリークの例を示し、それを防ぐように指示
- 約定タイミングの現実的な設定(シグナル生成後、次のバーで約定など)を指示
4. 多様性
- 多様な戦略を生成して欲しい
- データのディレクトリだけを指定し、EDAから始めるように指示
- 複数銘柄のデータを使用するように指示
…ほとんどがプロンプトエンジニアリングです。リソースの問題で今回は実装しませんでしたが、本来はデータのロードとバックテストはこちらでモジュールを用意し、エージェントの実装に依存しないようにするのが望ましいです。戦略の多様性確保のために過去の知見や戦略をナレッジベースとして保存し、エージェントがMCPを通して利用できるようにするのも良いかもしれません。
データの準備
今回使用するデータは、GMOコインの取引データとします。取得した銘柄はBTC, ETH, XRP, SOL, DOGEの5つで、それぞれ現物とレバレッジ取引について取得しました。期間は2025-01-01から2025-06-29までの約6ヶ月分です。
実験結果
今回は、構築したシステムを用いて投資戦略自動生成の試行を3回行いました。生成された戦略について、パフォーマンスやコードの質などを評価しました。

戦略の詳細・評価 (LLM要約)
試行1:マルチアセット・クロスマーケット戦略
1回目の試行では、複数の暗号通貨と取引タイプ間の価格差や出来高の不均衡を利用する包括的な戦略が生成されました。
戦略の概要
この戦略は3つの手法を組み合わせています:
- クロスマーケット裁定(現物とレバレッジ間のスプレッド異常を検出)
- 出来高インバランス(買い・売り出来高の不均衡を利用)
- 平均回帰(ボリンジャーバンド突破を利用)
BTC, ETH, XRPのレバレッジ取引と、BTC, ETHの現物取引を対象とし、Z-scoreを用いて異常値を検出する仕組みでした。
パフォーマンス評価
残念ながら、この戦略は壊滅的な結果となりました。
- 総取引数:170,897回(月間35,361回)
- 総リターン:-77.79%
- シャープレシオ:0.04
- 取引コスト:約780万ドル
問題点
最大の問題は取引コストでした。膨大な取引回数により発生した手数料が収益を完全に食い潰してしまいました。エージェントは戦略の改良を3回試みましたが、取引頻度を下げても根本的な問題は解決せず、最終的にシャープレシオ要件(1.0以上)を満たせませんでした。
試行2:強化週次モメンタム戦略
2回目の試行では、中長期のモメンタムを利用した戦略が開発されました。これが唯一すべての要件を満たした実用的な戦略となりました。
戦略の概要
この戦略は以下の要素で構成されています:
- 14日間のモメンタム計算(4%以上の価格変動を検出)
- トレンド確認(7日移動平均 vs 21日移動平均の分離度1.5%以上)
- ブレイクアウト検出(2.5%以上の高値・安値更新)
- 厳格なリスク管理(ストップロス10%、テイクプロフィット20%)
パフォーマンス評価
この戦略は非常に良好な成績を収めました。
- 訓練データ(1-5月):シャープレシオ1.64、総リターン18.7%
- テストデータ(5-6月):シャープレシオ1.36、総リターン4.3%
- 月間取引数:10.8回(要件の月10回以上をクリア)
- 年率リターン:43.6%
訓練データとテストデータで安定した性能を示し、過学習していないことが確認できました。
成功要因
この戦略が成功した理由は以下の通りです:
- 適切な取引頻度(月10回程度)で取引コストを抑制
- 複数の確認条件により高品質なシグナルのみを採用
- 効果的なリスク管理でドローダウンを制限
- 多様な銘柄での分散投資
試行3:改良版マルチストラテジー
3回目の試行では、深い市場分析に基づく洗練された戦略が提案されました。理論的には最も優れた性能を示しましたが、実装に課題が残りました。
戦略の概要
この戦略は詳細な市場分析を基に構築されました:
- 時間帯効果の活用(利益の出やすい時間帯に取引を集中)
- クロス資産相関分析(BTC_JPY vs ETH_JPYなど)
- Lead-Lag関係の利用(先行指標としてのBTC活用)
- ボラティリティベースのポジションサイジング
エージェントは20日間のサンプルデータで詳細なEDAを実施し、時間帯別リターンパターンや資産間相関を発見していました。
パフォーマンス評価
理論上は極めて優秀な成績でした:
- シャープレシオ:5.94(3試行中最高)
- 総取引数:8回
- 月間取引数:24回
- 年率リターン:14.7%
問題点
しかし、以下の課題がありました:
- 取引数が少なすぎて統計的信頼性に欠ける(8回のみ)
- テストデータでの検証が未実施
- 戦略の実装が完全でない可能性
優秀な数値ですが、実用性を判断するには情報不足でした。
全体的な評価
3回の試行を通じて、以下のことが分かりました:
成功した要素
- 適切な取引頻度の設定(月10-20回程度)
- 厳格なリスク管理の実装
- 複数の確認条件による高品質シグナル
- データリーク対策の徹底
課題
- 取引コストの過小評価(特に高頻度戦略)
- 統計的信頼性の確保(十分な取引数の必要性)
- 完全自動化における品質管理
- テストデータ検証の徹底
試行2で生成された週次モメンタム戦略が、実用性と性能のバランスが最も優れた戦略となりました。
まとめ
本稿では、Claude Code を活用した投資戦略自動生成システムの初期検証を行いました。3回の試行を行い、実際に投資戦略の生成、検証が可能であることを示しました。ただし、現状の実装にはまだかなりの問題が残っています。
まず、データの読み込みやバックテストをエージェントの実装に任せている点です。この点について、システム側でのサポート強化はやはり不可欠です。データローダーやバックテストエンジンをモジュール化し、エージェントの実装に依存しない形で提供することで、品質の安定化を図れます。また、過去の成功戦略をナレッジベースとして蓄積し、MCPを通じて活用できる仕組みの構築も有効でしょう。
また、要件に満たない状態でエージェントが停止することも問題です。1回目の試行では、シャープレシオが要件に満たない状態で探索を停止してしまいました。これは、Claude Codeのタスク分割による問題と考えられます。今回の検証ではMCPなどを特に設定せず、Claude CodeのToDoだけで探索を実行させました。これでは条件による繰り返しなどが組み込めず、ある程度の長さで探索を打ち切ってしまいました。
さらに、1回目と3回目のテストデータによる検証を行わなかったことも問題です。現状のClaude Codeは最初にプロンプトを与えるだけで全ての指示を完璧に実行してくれるわけでは無く、コンテキスト長の増大や圧縮などにより指示を忘れてしまいます。そこで、一定時間毎にプロンプトを再送信する、タスクをシステム側で分割して逐次的にプロンプトを送信するなど、何らかの工夫が必要です。
今回の初期検証により、AIエージェントによる投資戦略自動生成は現実的に実現可能な技術であることが確認できました。適切な制約と監視の下で運用すれば、人間が寝ている間にエージェントが戦略を開発・検証し、実用的な投資アイデアを生み出し続けることもできるかもしれません。
さいごに
グループ研究開発本部 AI研究開発室では、データサイエンティスト/機械学習エンジニアを募集しています。ビッグデータの解析業務などAI研究開発室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いします。皆さんのご応募をお待ちしています。
グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。
Follow @GMO_RD