# generate_interactive_quant_dashboard.py """ Interactive Visual Experience Dashboard Generator for Quant.ai. Generates a standalone, beautiful HTML Dashboard allowing the user to visually experience: 1. Cumulative Equity Curve Comparison (Old Baseline vs New Super-Alpha Engine). 2. Daily PnL Breakdown (8/16 - 8/22). 3. Microstructure C++ OFI Signals overlaid on Intraday K-Lines. 4. Purged CV & Deflated Sharpe Ratio (DSR) Model Diagnostics. """ import os import json import numpy as np import pandas as pd from backend.app.ml.max_profit_quant_optimizer import MaxProfitQuantOptimizer from backend.app.ml.hrt_alpha_pipeline import HRTAlphaPipeline def build_quant_dashboard(): fpath = 'backend/data/datasets/intraday_5m_watchlist_dataset.parquet' if not os.path.exists(fpath): print(f"Dataset not found at {fpath}") return df_5m = pd.read_parquet(fpath) date_col = 'Date' if 'Date' in df_5m.columns else 'date' ticker_col = 'ticker' if 'ticker' in df_5m.columns else 'symbol' df_sndk = df_5m[df_5m[ticker_col] == 'SNDK'].sort_values(date_col).reset_index(drop=True) if 'Close' not in df_sndk.columns: df_sndk['Close'] = df_sndk['close'] optimizer = MaxProfitQuantOptimizer(top_capital_allocation_pct=0.60, pyramid_multiplier=2.5) res = optimizer.simulate_pyramid_scaled_trading(df_sndk, capital=300000.0) # Prepare time series data for ECharts / Plotly timestamps = [str(t) for t in df_sndk[date_col].values] prices = df_sndk['Close'].tolist() pyramid_pos = res['pyramid_positions'] # Generate cumulative equity curve raw_ret = df_sndk['Close'].pct_change().fillna(0.0) old_pos = np.where(raw_ret > 0, 1.0, -0.5) new_strategy_cum = np.cumprod(1.0 + pd.Series(pyramid_pos) * raw_ret - 0.0003 * pd.Series(pyramid_pos).diff().abs().fillna(0.0)) * 500000.0 old_strategy_cum = np.cumprod(1.0 + pd.Series(old_pos) * raw_ret - 0.001 * pd.Series(old_pos).diff().abs().fillna(0.0)) * 500000.0 # HRT Pipeline DSR Evaluation pipe = HRTAlphaPipeline() dsr_metrics = pipe.evaluate_hrt_alpha_model(df_sndk) html_content = f"""