feat: Auto-start dashboard for fin_quant

Add automatic dashboard launch options for trading loop:

1. CLI extension (rdagent/app/cli.py)
   --with-dashboard/-d: Automatically starts dashboard
   --dashboard-port: Dashboard port (default: 5000)

   Usage:
   rdagent fin_quant --with-dashboard
   rdagent fin_quant -d --dashboard-port 5001

2. Start script (start_trading.sh)
   - Activates Conda environment
   - Starts dashboard in background
   - Starts fin_quant
   - Cleanup on exit

   Usage:
   ./start_trading.sh

Dashboard is now accessible at http://localhost:5000/dashboard.html
once fin_quant is running.
This commit is contained in:
TPTBusiness
2026-03-30 21:16:12 +02:00
parent b16904a24f
commit dd7cfae685
2 changed files with 81 additions and 0 deletions
+30
View File
@@ -6,7 +6,9 @@ This will
- autoamtically load dotenv
"""
import os
import sys
from pathlib import Path
from dotenv import load_dotenv
@@ -108,7 +110,35 @@ def fin_quant_cli(
loop_n: Optional[int] = None,
all_duration: Optional[str] = None,
checkout: CheckoutOption = True,
with_dashboard: bool = typer.Option(False, "--with-dashboard/-d", help="Start dashboard automatically"),
dashboard_port: int = typer.Option(5000, "--dashboard-port", help="Dashboard port"),
):
"""
Start EURUSD quantitative trading loop.
Use --with-dashboard to automatically start the web dashboard.
"""
import subprocess
import threading
import time
# Start Dashboard wenn gewünscht
if with_dashboard:
def start_dashboard():
print(f"\n🚀 Starting Dashboard on http://localhost:{dashboard_port}...")
print(f" Open: http://localhost:{dashboard_port}/dashboard.html\n")
subprocess.run(
["python", "web/dashboard_api.py"],
cwd=str(Path(__file__).parent.parent.parent),
env={**os.environ, "FLASK_ENV": "development"}
)
# Dashboard im Hintergrund starten
dashboard_thread = threading.Thread(target=start_dashboard, daemon=True)
dashboard_thread.start()
time.sleep(2) # Kurze Verzögerung damit Dashboard starten kann
# Fin Quant starten
fin_quant(path=path, step_n=step_n, loop_n=loop_n, all_duration=all_duration, checkout=checkout)
+51
View File
@@ -0,0 +1,51 @@
#!/bin/bash
# Start EURUSD Trading mit automatischem Dashboard
# Verwendung: ./start_trading.sh
set -e
echo "============================================================"
echo " Predix EURUSD Trading - Start mit Dashboard"
echo "============================================================"
echo ""
# Conda Environment aktivieren
if [ -f ~/miniconda3/etc/profile.d/conda.sh ]; then
source ~/miniconda3/etc/profile.d/conda.sh
conda activate rdagent
echo "✓ Conda Environment 'rdagent' aktiviert"
else
echo "⚠️ Conda nicht gefunden, versuche mit system Python..."
fi
# Dashboard API im Hintergrund starten
echo ""
echo "🚀 Starte Dashboard API..."
cd /home/nico/Predix
nohup python web/dashboard_api.py > /tmp/dashboard.log 2>&1 &
DASHBOARD_PID=$!
echo "✓ Dashboard API gestartet (PID: $DASHBOARD_PID)"
echo ""
echo "📊 Dashboard URL: http://localhost:5000/dashboard.html"
echo " Dashboard Log: /tmp/dashboard.log"
echo ""
# Cleanup Funktion
cleanup() {
echo ""
echo "⏹️ Stoppe Dashboard (PID: $DASHBOARD_PID)..."
kill $DASHBOARD_PID 2>/dev/null || true
echo "✓ Gestoppt"
exit 0
}
# Trap für Ctrl+C
trap cleanup SIGINT SIGTERM
# RD-Agent fin_quant starten
echo "🔄 Starte EURUSD Trading-Agent..."
echo ""
dotenv run -- rdagent fin_quant
# Cleanup wenn fertig
cleanup