# チケット #005: 出力機能実装 ## 概要 バックテスト結果の可視化とレポート生成機能の実装。ターミナル出力とHTMLレポートの2形式で結果を提供 ## 目的 - 結果の即座の確認(ターミナル) - 詳細な分析用レポート(HTML) - インタラクティブなグラフによる視覚的理解 ## 実装要件 ### 1. ターミナル出力 #### サマリーテーブル ```python class TerminalReporter: def display_summary(self, metrics: PerformanceMetrics, buy_hold_metrics: PerformanceMetrics): """ Richライブラリを使用した美しいテーブル表示 """ # 例: # ┌─────────────────────┬────────────┬────────────┐ # │ Metric │ Strategy │ Buy & Hold │ # ├─────────────────────┼────────────┼────────────┤ # │ Total Return │ +45.2% │ +32.1% │ # │ Annual Return │ +38.5% │ +27.8% │ # │ Sharpe Ratio │ 1.45 │ 1.12 │ # │ Max Drawdown │ -12.3% │ -18.5% │ # │ Win Rate │ 58.2% │ N/A │ # │ Total Trades │ 42 │ 1 │ # └─────────────────────┴────────────┴────────────┘ ``` #### プログレスバー ```python def show_progress(self, current: int, total: int, message: str): """ シミュレーション実行中の進捗表示 """ # Rich.progress を使用 ``` ### 2. HTMLレポート生成 #### レポート構造 ```html Backtest Report - {ticker} ({start} to {end})

バックテスト結果レポート

``` #### Plotlyグラフ実装 ```python class ChartGenerator: def create_equity_curve(self, dates: List[str], strategy_equity: List[float], buyhold_equity: List[float]) -> str: """ 戦略とBuy&Holdの資産推移グラフ """ pass def create_drawdown_chart(self, dates: List[str], drawdown_pct: List[float]) -> str: """ ドローダウン推移グラフ """ pass def create_returns_histogram(self, daily_returns: List[float]) -> str: """ 日次リターンの分布 """ pass ``` ### 3. レポート保存と管理 ```python class ReportManager: def __init__(self, reports_dir: str = "reports/"): self.reports_dir = reports_dir def save_report(self, html_content: str, ticker: str, start_date: str, end_date: str) -> str: """ レポートを保存し、ファイルパスを返す ファイル名形式: {ticker}_{start}_{end}_{timestamp}.html """ pass def open_in_browser(self, report_path: str): """ デフォルトブラウザでレポートを開く """ pass ``` ## 受け入れ条件 - [ ] ターミナルでの見やすいサマリー表示 - [ ] インタラクティブなHTMLレポート - [ ] 全グラフの正しい描画 - [ ] レスポンシブデザイン(モバイル対応) - [ ] 取引履歴の完全な表示 - [ ] レポートの自動保存と管理 - [ ] ブラウザでの自動オープン機能 ## 依存関係 - rich(ターミナルUI) - plotly(グラフ描画) - jinja2(HTMLテンプレート) - webbrowser(ブラウザ制御) ## タスク - [ ] TerminalReporterクラスの実装 - [ ] HTMLテンプレートの作成 - [ ] ChartGeneratorクラスの実装 - [ ] Equity Curveグラフ実装 - [ ] Drawdownグラフ実装 - [ ] リターン分布グラフ実装 - [ ] 取引履歴テーブル実装 - [ ] ReportManagerクラスの実装 - [ ] CSSスタイリング - [ ] 統合テスト