2.7 KiB
2.7 KiB
チケット #002: CLI インターフェース実装
概要
バックテスト機能のコマンドラインインターフェースの実装。既存のCLIフレームワークを拡張し、backtestサブコマンドを追加
目的
- 直感的なコマンドライン操作でバックテストを実行
- 過去の実行結果の管理と表示
- 結果の比較機能の提供
実装要件
1. コマンド体系
メインコマンド
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)
サブコマンド
# 過去実行の一覧表示
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を使った出力フォーマット
- ヘルプメッセージの作成
- 統合テスト