Files
PolyTraderSharp/agentspace/antigravity/gesamtuebersicht-webui.md
T
RichardandClaude Opus 5 dcc764dec1
CI / Build & Tests (Linux) (push) Canceled after 0s
CI / Plattformneutralität & Hygiene (push) Canceled after 0s
WebUI: Module, Analytics und Buchhaltung als eigene Ansichten
Das WebGUI konnte bisher Dashboard, Konten, Jobs, Logs und Einstellungen.
Die vier Strategie- und Analysemodule waren nur in der Avalonia-Oberflaeche
erreichbar - wer den Server aus der Ferne bediente, sah sie nicht.

Fuenf neue Endpunktgruppen holen sie herein:

  /api/analytics                  KPIs, Equity-Kurve, PnL je Modul und Tag,
                                  durchsuchbare Trade-Historie mit Seitenlauf
  /api/modules/copytrading        Master-Trader (CRUD), offene und
                                  geschlossene Trades, Risikolimits je Konto
  /api/modules/resolutionfarming  Scanner-Kandidaten, Positionen, Historie,
                                  Farming-Parameter je Konto
  /api/modules/supervisor         Profile, Agentenfragen, Berichtsarchiv,
                                  Signal-Dossiers, Counterfactuals
  /api/modules/accounting         BWA-Periodenabrechnung, Ledger-Journal,
                                  PDF- und CSV-Export, Ingest-Laeufe

Dazu im Bestand:
- Dashboard bekommt /overview-widgets: Modul-KPIs (heute/7T/30T), auffaellige
  Trades der letzten 24 Stunden, Warnungen und Fehler des Tages, den letzten
  Supervisor-Bericht.
- Die Kontenliste zeigt 3-Tage-PnL, Winrate, Gesamtergebnis und die
  beteiligten Module statt nur Salden.
- Jobs lassen sich ueber /toggle und /state ein- und ausschalten, nicht nur
  ausloesen.

Die Oberflaeche bleibt ohne Fremdbibliotheken: alle Diagramme sind Inline-SVG,
kein CDN, kein npm. Alle neuen Pfade liegen unter /api/ und damit hinter der
bestehenden Token-Pruefung.

Zwei Fehler nebenbei behoben:

- AccountingReportService.ResolveCurrency lief in eine NullReferenceException,
  wenn der FX-Dienst nicht gesetzt war. Betrifft jeden EUR-Aufruf ohne
  geladene EZB-Kurse.
- Ein Master-Trader, dessen Name ein Apostroph enthaelt, hatte einen toten
  Loeschen-Knopf: escapeHtml laesst ' unberuehrt, und im onclick-Attribut
  beendete das Zeichen das JavaScript-Literal vorzeitig. Laengerer Text mit
  Anfuehrungszeichen konnte darueber eigenen Code einschleusen. Neu setzt
  jsArg() den Wert als JSON-Literal ein; geprueft mit
  O'Brien "quote" <b>bold</b> \ backslash.

McpLightServerTests weicht jetzt aus, wenn HttpListener mangels URL-ACL nicht
binden darf, statt den Lauf scheitern zu lassen.

Geprueft auf der Linux-Test-VM (Ubuntu 26.04, .NET 10): Build ohne Fehler,
533 von 533 Tests bestanden, alle 11 Ansichten und 15 Unteransichten geladen,
alle Endpunkte mit 200 beantwortet, Schreibwege bis in die Datenbank
nachverfolgt, PDF- und CSV-Export gueltig, SSE-Logstrom live.

Offene Befunde aus der Abnahme liegen als #532 (Kopfleiste laeuft unter
1623 px ueber), #533 (EUR-PDF ohne EZB-Kurse liefert Nullbetraege) und #534
(Einstellungen melden Erfolg trotz gescheitertem Speichern) im Bugtracker.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 09:17:49 +02:00

6.6 KiB

PolyTrader WebUI — Gesamtdokumentation & Architekturübersicht

1. Architektur & Hosting

Das WebInterface ist als eigenständiges Projekt PolyTrader.Web konzipiert und wird über ASP.NET Core Kestrel auf dem Server gehostet.

  • Frontend: Vanilla HTML5, CSS3 und modernes JavaScript (ES6+), vollständig autark ohne externe CDN-Bibliotheken (kein React, Vue, npm oder Drittanbieter-CDNs). Alle Visualisierungen (Equity-Kurve, Säulendiagramme, Donut-/Balkendiagramme) basieren auf dynamischem, responsivem Inline-SVG.
  • Backend: ASP.NET Core Minimal APIs mit strukturierter Dependency Injection in die PolyTrader-Kern- und Modul-Services (PolyTrader.Core, PolyTrader.Modules.CopyTrading, PolyTrader.Modules.ResolutionFarming, PolyTrader.Modules.Supervisor, PolyTrader.Modules.Accounting).
  • Sicherheit & Auth: Header-basierte Bearer-Token-Authentifizierung (Authorization: Bearer <token>) bzw. Auth-Cookie für Browser-Sessions. Automatischer Redirect auf /login bei ungültigen Anfragen.

2. Navigationsstruktur & Module

Ansicht Pfad / ID Funktionalitäten
Dashboard #view-dashboard Globale PnL, USDC-Salden, Portfolio-Wert, Notfall-Pause, Modul-KPI-Kacheln, Notable Trades (24h), Account-Übersicht (3d PnL, Winrate, Overall PnL)
Analytics #view-analytics KPI-Cards (Trades, Winrate, Profit-Faktor, Max Drawdown, Net PnL), Pure-SVG Equity Curve, Modul-PnL-Chart, Daily PnL Bar Chart, paginierte Trade-Historie mit Volltextsuche & Filterung
CopyTrading #view-copytrading Master-Trader-Verwaltung (CRUD via Modal), Offene Positionen mit Buchgewinn ($/%) & Status, Geschlossene Trades (Paginierung & Suche), Account-spezifische Risikolimits & Eskalationsparameter
Resolution Farming #view-resolutionfarming Account-Wahlschalter, Scanner-Kandidaten (Ask, Fee, Net-Edge, Score, Status), Offene Farming-Positionen, Trade-Historie, Account-Farming-Parameter (Cluster-Limits, Whitelist/Blacklist)
Supervisor #view-supervisor AI Copilot Chat (Profile: Allgemein, Technik, CopyTrading, ResolutionFarming; Schnellabfrage-Presets; Tool-Invocations mit Parametern; Token-Zähler), Archivierte Berichte (Volltext-Modal), Signal-Dossiers (Markdown-Inspektor), Counterfactuals
Accounting #view-accounting BWA-Periodenabrechnung (Anfangs-/Endbestand, Handelsvolumen, Cashflows, Gebühren, Netto-Ergebnis), Währungswahl (USDC/USD/EUR via EZB-Kurse), PDF-Export (MigraDoc Stream), CSV-Export, Ledger-Journal (Suche & Paginierung), Sync & Ingest Historie
Konten #view-accounts Konfigurierte Polymarket-Konten, Wallet-Adressen, Demo/Live-Status, Links zu Polymarket-Profilen
Jobs #view-jobs Hintergrund-Jobs (Scheduler), Status, Intervall, Letzter Lauf, Nächster Lauf, Sofortausführung (Run Now), Live-Toggle (Aktivieren/Deaktivieren)
Terminal / Logs #view-logs Echtzeit-Logstream via Server-Sent Events (SSE), Auto-Scroll, Log-Level-Filter (Info, Warning, Error, Trade), Leeren
Module #view-modules Strategie- und Analyse-Modulübersicht mit Direkt-Startknöpfen in die Fachansichten
Einstellungen #view-settings Server-Port, Lokaler Zugriff vs. LAN/VPN, Token-Anzeige, Token-Kopieren & Neugenerierung

3. Endpunkt-Übersicht (Minimal APIs)

Authentifizierung & Settings

  • POST /api/auth/login: Authentifizierung via Token, Setzen des Auth-Cookies
  • POST /api/auth/logout: Löschen des Auth-Cookies
  • GET /api/settings/webui: Aktuelle Servereinstellungen
  • POST /api/settings/webui: Speichern der Servereinstellungen in appsettings.Local.json
  • POST /api/settings/webui/generate-token: Generierung eines kryptografisch sicheren Tokens

Dashboard & Konten & Jobs

  • GET /api/dashboard/summary: Globale KPIs, Handelsmodi, Watchdog-/Alchemy-/VPN-Status
  • GET /api/dashboard/overview-widgets: Modul-KPIs und notable Trades
  • POST /api/dashboard/trading-mode: Umschalten von Live/Demo/Pause
  • GET /api/accounts: Liste aller Konten mit Performance-Metriken
  • GET /api/jobs: Liste aller Scheduler-Jobs
  • POST /api/jobs/{name}/toggle: Job aktivieren / deaktivieren
  • POST /api/jobs/{name}/run: Job sofort anstoßen

Analytics

  • GET /api/analytics/kpis: Aggregierte Kennzahlen (Winrate, Profit-Faktor, Drawdown)
  • GET /api/analytics/charts: Zeitreihendaten für SVG-Equity-Kurve, Modul-Aufteilung und Tages-PnL
  • GET /api/analytics/trades: Paginierte, durchsuchbare Trade-Historie

CopyTrading

  • GET /api/modules/copytrading/traders: Alle Master-Trader
  • POST /api/modules/copytrading/traders: Anlegen / Bearbeiten von Master-Tradern
  • DELETE /api/modules/copytrading/traders/{id}: Löschen eines Master-Traders
  • GET /api/modules/copytrading/open-trades: Offene Positionen mit Buchgewinn
  • GET /api/modules/copytrading/closed-trades: Geschlossene Trades mit Filterung
  • GET /api/modules/copytrading/settings/{accountId}: Risikolimits des Kontos
  • POST /api/modules/copytrading/settings/{accountId}: Speichern der Risikolimits

Resolution Farming

  • GET /api/modules/resolutionfarming/candidates: Scanner-Kandidaten
  • GET /api/modules/resolutionfarming/positions: Offene Farming-Positionen
  • GET /api/modules/resolutionfarming/history: Abgeschlossene Trades
  • GET /api/modules/resolutionfarming/settings/{accountId}: Farming-Parameter
  • POST /api/modules/resolutionfarming/settings/{accountId}: Speichern der Parameter

Supervisor

  • GET /api/modules/supervisor/profiles: Verfügbare Rollen-Profile
  • POST /api/modules/supervisor/ask: Interaktiver Chat mit LLM-Agent & Tool-Execution
  • GET /api/modules/supervisor/reports: Archivierte Berichte
  • GET /api/modules/supervisor/reports/{id}: Detailbericht
  • GET /api/modules/supervisor/dossiers: Signal-Historie
  • GET /api/modules/supervisor/dossiers/{signalId}: Trade-Dossier Markdown
  • GET /api/modules/supervisor/counterfactuals: Realitäts-Abgleich abgelehnter Trades

Accounting & BWA

  • GET /api/modules/accounting/statement: Periodenabrechnung mit FX-Faktor (USDC/USD/EUR)
  • GET /api/modules/accounting/export/pdf: Binärer PDF-Download der Periodenabrechnung
  • GET /api/modules/accounting/export/csv: Binärer CSV-Download des Ledgers
  • GET /api/modules/accounting/ledger: Paginiertes Transaktionsjournal
  • GET /api/modules/accounting/runs: Ingestion-Läufe & Saldendifferenz
  • POST /api/modules/accounting/ingest: Starten eines Blockchain-Syncs

Terminal & Module

  • GET /api/logs: Statischer Abruf vergangener Logs
  • GET /api/logs/stream: SSE-Log-Stream
  • GET /api/modules: Liste aller Strategie- und Analyse-Module