Files
NexQuant/rdagent/app/cli_welcome.py
T
TPTBusiness b98c9cd572 feat: Add GitHub infrastructure, CI/CD pipelines, and examples
- Add GitHub issue templates (bug, feature, docs)
- Add pull request template with closed-source checklist
- Add CODEOWNERS for code review assignment
- Add CI/CD workflows (ci, lint, security, docs, release)
  - pytest + coverage with Python 3.10/3.11 matrix
  - Ruff + MyPy code quality checks
  - Bandit + safety security scanning
  - Sphinx docs + GitHub Pages deployment
  - Automated PyPI releases on tag push
- Add 6 comprehensive examples + Jupyter quickstart
  - 01_factor_discovery.py (LLM factor generation)
  - 02_factor_evolution.py (factor optimization)
  - 03_strategy_generation.py (IC-weighted combination)
  - 04_backtest_simple.py (strategy backtesting)
  - 05_model_training.py (XGBoost/LSTM training)
  - 06_rl_trading_agent.py (PPO/DQN/A2C agents)
  - notebooks/quickstart.ipynb (interactive tutorial)
- Restructure .gitignore with explicit closed-source sections
- Add CI/coverage/license badges to README
- Complete CLI docstrings for all 9 commands
- Add data_config.yaml for quant loop configuration
2026-04-11 21:40:18 +02:00

103 lines
4.0 KiB
Python

"""
Predix CLI Welcome Screen - Beautiful dashboard for GitHub README screenshot.
"""
import os
import subprocess
from pathlib import Path
from rich.console import Console
from rich.panel import Panel
from rich.table import Table
from rich.text import Text
from rich.align import Align
from rich.layout import Layout
from datetime import datetime
console = Console()
def show_welcome():
"""Show beautiful Predix welcome screen."""
# Header
console.print()
title = Text("🤖 PREDIX", style="bold cyan")
subtitle = Text("AI-Powered Quantitative Trading Agent for EUR/USD Forex", style="dim white")
console.print(Align.center(title))
console.print(Align.center(subtitle))
console.print()
# Version info
version_panel = Panel(
f"[bold green]v2.0.0[/bold green] • Released: 2026.04.10 • [dim]MIT License[/dim]",
border_style="green",
title="📦 Release",
title_align="left"
)
console.print(version_panel)
console.print()
# System Stats
stats_table = Table(show_header=False, box=None, padding=(0, 2))
stats_table.add_column("Metric", style="cyan")
stats_table.add_column("Value", style="bold white")
stats_table.add_column("Metric2", style="cyan")
stats_table.add_column("Value2", style="bold white")
# Count factors and strategies
factors_dir = Path("results/factors")
strategies_dir = Path("results/strategies_new")
factor_count = len(list(factors_dir.glob("*.json"))) if factors_dir.exists() else 0
strategy_count = len(list(strategies_dir.glob("*.json"))) if strategies_dir.exists() else 0
stats_table.add_row("📊 Factors", f"[green]{factor_count:,}[/green]", "📈 Strategies", f"[green]{strategy_count}[/green]")
stats_table.add_row("🧠 LLM", "[yellow]Qwen3.5-35B (local)[/yellow]", "⚡ Optuna", "[yellow]Enabled[/yellow]")
stats_table.add_row("🔒 Security", "[green]All resolved[/green]", "🧪 Tests", "[green]282+ passing[/green]")
stats_panel = Panel(stats_table, border_style="blue", title="📊 System Status", title_align="left")
console.print(stats_panel)
console.print()
# Available Commands
cmd_table = Table(show_header=True, header_style="bold magenta", box=None)
cmd_table.add_column("Command", style="cyan", width=40)
cmd_table.add_column("Description", style="white", width=50)
cmd_table.add_row("rdagent fin_quant", "Start EUR/USD factor evolution loop")
cmd_table.add_row("rdagent start_llama", "Start local llama.cpp server")
cmd_table.add_row("rdagent start_loop", "Start strategy generator loop")
cmd_table.add_row("rdagent generate_strategies", "Generate strategies from factors")
cmd_table.add_row("rdagent optimize_portfolio", "Portfolio optimization")
cmd_table.add_row("rdagent eval_all", "Evaluate factors with full data")
cmd_table.add_row("rdagent batch_backtest", "Batch backtest existing factors")
cmd_table.add_row("rdagent report", "Generate PDF performance reports")
cmd_table.add_row("rdagent rebacktest", "Re-backtest existing strategies")
cmd_panel = Panel(cmd_table, border_style="magenta", title="🚀 Available Commands", title_align="left")
console.print(cmd_panel)
console.print()
# Quick Start
quick_start = Panel(
"[bold cyan]1.[/bold cyan] Start LLM Server: [dim]rdagent start_llama[/dim]\n"
"[bold cyan]2.[/bold cyan] Run Trading Loop: [dim]rdagent fin_quant --auto-strategies[/dim]\n"
"[bold cyan]3.[/bold cyan] Generate Strategies: [dim]rdagent generate_strategies --count 5 --optuna[/dim]",
border_style="yellow",
title="💡 Quick Start",
title_align="left"
)
console.print(quick_start)
console.print()
# Footer
footer = Text("📄 github.com/TPTBusiness/Predix • 🔒 MIT License • 📖 docs/", style="dim white")
console.print(Align.center(footer))
console.print()
if __name__ == "__main__":
show_welcome()
def main():
"""Entry point for 'predix' CLI command."""
show_welcome()