# チケット #002: CLI インターフェース実装 ## 概要 バックテスト機能のコマンドラインインターフェースの実装。既存のCLIフレームワークを拡張し、backtestサブコマンドを追加 ## 目的 - 直感的なコマンドライン操作でバックテストを実行 - 過去の実行結果の管理と表示 - 結果の比較機能の提供 ## 実装要件 ### 1. コマンド体系 #### メインコマンド ```bash python -m cli.main backtest [OPTIONS] ``` #### オプション - `--ticker`: 銘柄シンボル(必須) - `--start`: 開始日 YYYY-MM-DD(必須) - `--end`: 終了日 YYYY-MM-DD(必須) - `--fee`: 取引手数料率(任意、デフォルト: 0.001) - `--slippage`: スリッページ率(任意、デフォルト: 0.0005) - `--results-db`: 結果保存先DB/ファイル(任意、デフォルト: results.sqlite) #### サブコマンド ```bash # 過去実行の一覧表示 python -m cli.main backtest list # 特定結果のHTMLレポート表示 python -m cli.main backtest show --id 5 # 2つの結果を比較 python -m cli.main backtest compare --id1 3 --id2 7 ``` ### 2. 実装詳細 #### CLIモジュール構造 ``` cli/ ├── commands/ │ └── backtest.py # バックテストコマンド実装 ├── utils/ │ └── validators.py # 入力検証ユーティリティ └── main.py # 既存のエントリーポイント ``` #### Rich ライブラリの活用 - プログレスバーでシミュレーション進捗表示 - 結果サマリーの美しいテーブル表示 - エラーメッセージの分かりやすい表示 ### 3. 入力検証 - 日付フォーマットの検証(YYYY-MM-DD) - 開始日 < 終了日の確認 - 銘柄シンボルの妥当性チェック - 手数料・スリッページの範囲チェック(0-1) ## 受け入れ条件 - [ ] backtestコマンドが正しく実行できる - [ ] 全ての必須パラメータの検証が機能する - [ ] list/show/compareサブコマンドが動作する - [ ] Richによる見やすい出力 - [ ] エラー時の適切なメッセージ表示 - [ ] --helpオプションの充実 ## 依存関係 - click(CLIフレームワーク) - rich(TUIライブラリ) - 既存のcli.mainモジュール ## タスク - [ ] backtest.pyコマンドモジュールの作成 - [ ] メインコマンドの実装(実行オプション) - [ ] listサブコマンドの実装 - [ ] showサブコマンドの実装 - [ ] compareサブコマンドの実装 - [ ] 入力検証ロジックの実装 - [ ] Richを使った出力フォーマット - [ ] ヘルプメッセージの作成 - [ ] 統合テスト