## 概要
検証#11のペーパーbotを1時間毎cronで常駐させ、**フォワードテスト**を開始。机上のエッジが「これから流れる未来の相場」でも勝つかを、実弾ゼロで蓄積検証する段階。
## 構成
- cron: `5 * * * * bash /home/ubuntu/workspace/trade-backtest/run_paper_tick.sh`(毎時5分・他cronと時刻分散)
- ラッパー: run_paper_tick.sh(bash経由でvenv python起動=bun干渉回避・instinct適用)
- ログ: /home/ubuntu/workspace/trade-backtest/paper_forward.log(末尾2000行に自動トリム)
- 状態: paper_state.json(資金・保有ポジ・決済履歴を永続化)
## 動作
毎時5分に paper_bot.py が1tick実行:
1. 6市場(USDJPY/GC/CL/SPY/AAPL/BTC)の最新1時間足取得
2. 保有仮想ポジのTP/SL判定→仮想クローズ
3. 新規シグナル→3%リスクでロット計算→仮想エントリー
4. paper_forward.log に記録・paper_state.json 更新
## 確認状況
- 手動実行でラッパー動作確認済み(tick#1記録・状態更新・bun干渉なし)
- crontab登録確認済み(既存cron保全したまま追記)
## フォワードテストの意義(最重要)
- バックテスト(過去最適化)と違い、**未来データ=過剰最適化が紛れ込めない真の検証**
- 数週間〜数ヶ月の仮想成績で「机上のエッジが本物か」が分かる
- **安定プラスを確認するまで実弾は流さない**。それまでは仮想売買のみ
- 注意: yfinance 1時間足は遅延・週末ギャップあり→本番運用には低遅延データソース要
## 確認コマンド
```bash
cd /home/ubuntu/workspace/trade-backtest
./venv/bin/python paper_bot.py --status # 仮想ポートフォリオ状態
tail -30 paper_forward.log # 直近tick log
```
## 次段階
- 数週間後、paper_state.json の決済履歴が溜まったら成績集計(勝率・期待値・最大DDが机上と一致するか)
- 一致&プラスなら少額実弾を検討。乖離するならエッジ劣化としてロジック見直し
- ダッシュボードにフォワード成績ビュー追加(データ蓄積後)
## 関連
- LLM Wiki id=452(ペーパーbot), id=451(資金管理), id=447-448(エッジ)
- コード: paper_bot.py / run_paper_tick.sh
検証#12: フォワードテスト開始 paper_bot 1時間毎cron常設 2026-05-31