mirror of
https://github.com/NicolasBohn/NexQuant.git
synced 2026-07-27 15:37:44 +00:00
b98c9cd572
- 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
103 lines
4.0 KiB
Python
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()
|