85 lines
2.7 KiB
Markdown
85 lines
2.7 KiB
Markdown
# チケット #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を使った出力フォーマット
|
||
- [ ] ヘルプメッセージの作成
|
||
- [ ] 統合テスト |