Claude Code で FX 自動売買 Bot を作った話
はじめに
「FX の自動売買 Bot を作りたい」と思い立ってから、本番稼働まで約 2 週間。その開発を支えたのが Claude Code (Anthropic の CLI ベース AI コーディングツール) でした。
この記事では、Claude Code を活用した Bot 開発の全工程を振り返ります。
なぜ Claude Code を選んだか
Bot 開発には以下の複合スキルが必要です:
- テクニカル指標のロジック実装
- 取引所 API のハンドリング
- リスク管理・ポジション管理
- Docker + CI/CD でのデプロイ
- 監視・通知の仕組み
一人で全部やると時間がかかりますが、Claude Code はターミナルから直接コード生成・修正・テスト実行まで一気通貫でできます。IDE を開かずにプロジェクト全体を構築できる点が決め手でした。
開発の流れ
Phase 1: アーキテクチャ設計
最初に Claude Code に「FX自動売買Botのアーキテクチャを設計して」と依頼。以下の構成が提案されました:
src/
├── main.py # メインループ (スケジューラ)
├── brokers/ # 取引所 API 抽象化
├── strategies/ # 売買戦略 (プラグイン式)
├── core/ # リスク管理、ポジション管理
└── notifiers/ # LINE 通知
ポイントは 戦略をプラグイン式 にしたこと。新しい戦略を追加するときに既存コードを触らなくて済みます。
Phase 2: 戦略実装
EMA + MACD + RSI を使ったトレンドフォロー戦略を実装:
# シグナル判定のコア部分 (簡略化)
def generate_signal(self, candles: list[Candle]) -> Signal:
ema_cross = ema20[-1] > ema50[-1]
macd_cross = macd[-1] > signal[-1] and macd[-2] <= signal[-2]
rsi_ok = 40 < rsi[-1] < 70
score = sum([ema_cross, macd_cross, rsi_ok])
if score >= 2:
return Signal.BUY
Claude Code がテストコードも同時に生成してくれるので、ロジックの正しさを即座に確認できました。
Phase 3: ブローカー接続
GMO コインの API を使って実際の注文を出す部分。REST API と WebSocket の両方を実装:
- REST: 注文発注・残高取得・ポジション管理
- WebSocket: リアルタイムティッカー (価格監視)
API のレートリミットやエラーハンドリングも Claude Code に「GMO コインの API 仕様を踏まえてリトライロジックを入れて」と指示するだけで実装完了。
Phase 4: リスク管理
ここが Bot の生命線:
- ATR ベースの SL/TP: ボラティリティに応じた動的な損切り・利確
- 最大ドローダウン 10% で強制停止: 暴走防止
- ボラティリティガード: 異常な値動きを検知して取引を一時停止
- OCO 注文: Bot がクラッシュしても SL は取引所側で執行
Phase 5: インフラ
Oracle Cloud Always Free (ARM 1 OCPU / 6GB) に Docker Compose でデプロイ:
services:
autotrade: # メイン Bot
watchdog: # 死活監視 (Bot停止→LINE通知)
dashboard: # Streamlit ダッシュボード
nginx: # リバースプロキシ + HTTPS
月額コスト: ¥0 (Oracle Cloud の Always Free 枠内)
Claude Code で良かった点
- コンテキスト理解: プロジェクト全体を把握した上で修正を提案してくれる
- テスト生成: 実装と同時にテストを書いてくれる (現在 145 テスト)
- リファクタリング: 「この部分を抽象化して」で一発
- デバッグ: エラーログを貼るだけで原因特定 + 修正
現在の運用状況
- 稼働: 24/7 (Oracle Cloud)
- 通貨ペア: USD/JPY (1時間足)
- 通知: 全トレードを LINE に送信
- ダッシュボード: https://autotrade.uselect.jp で実績公開中
- 実績: 月次レポート で公開
まとめ
Claude Code を使えば、一人のエンジニアでも本格的な自動売買システムを短期間で構築できます。特に「アーキテクチャ設計 → 実装 → テスト → デプロイ」の全工程を一つのツールで完結できるのは大きな強みです。
次回は「Oracle Cloud Always Free で Bot を 24 時間運用する方法」を詳しく解説します。