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>
6.6 KiB
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/loginbei 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-CookiesPOST /api/auth/logout: Löschen des Auth-CookiesGET /api/settings/webui: Aktuelle ServereinstellungenPOST /api/settings/webui: Speichern der Servereinstellungen inappsettings.Local.jsonPOST /api/settings/webui/generate-token: Generierung eines kryptografisch sicheren Tokens
Dashboard & Konten & Jobs
GET /api/dashboard/summary: Globale KPIs, Handelsmodi, Watchdog-/Alchemy-/VPN-StatusGET /api/dashboard/overview-widgets: Modul-KPIs und notable TradesPOST /api/dashboard/trading-mode: Umschalten von Live/Demo/PauseGET /api/accounts: Liste aller Konten mit Performance-MetrikenGET /api/jobs: Liste aller Scheduler-JobsPOST /api/jobs/{name}/toggle: Job aktivieren / deaktivierenPOST /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-PnLGET /api/analytics/trades: Paginierte, durchsuchbare Trade-Historie
CopyTrading
GET /api/modules/copytrading/traders: Alle Master-TraderPOST /api/modules/copytrading/traders: Anlegen / Bearbeiten von Master-TradernDELETE /api/modules/copytrading/traders/{id}: Löschen eines Master-TradersGET /api/modules/copytrading/open-trades: Offene Positionen mit BuchgewinnGET /api/modules/copytrading/closed-trades: Geschlossene Trades mit FilterungGET /api/modules/copytrading/settings/{accountId}: Risikolimits des KontosPOST /api/modules/copytrading/settings/{accountId}: Speichern der Risikolimits
Resolution Farming
GET /api/modules/resolutionfarming/candidates: Scanner-KandidatenGET /api/modules/resolutionfarming/positions: Offene Farming-PositionenGET /api/modules/resolutionfarming/history: Abgeschlossene TradesGET /api/modules/resolutionfarming/settings/{accountId}: Farming-ParameterPOST /api/modules/resolutionfarming/settings/{accountId}: Speichern der Parameter
Supervisor
GET /api/modules/supervisor/profiles: Verfügbare Rollen-ProfilePOST /api/modules/supervisor/ask: Interaktiver Chat mit LLM-Agent & Tool-ExecutionGET /api/modules/supervisor/reports: Archivierte BerichteGET /api/modules/supervisor/reports/{id}: DetailberichtGET /api/modules/supervisor/dossiers: Signal-HistorieGET /api/modules/supervisor/dossiers/{signalId}: Trade-Dossier MarkdownGET /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 PeriodenabrechnungGET /api/modules/accounting/export/csv: Binärer CSV-Download des LedgersGET /api/modules/accounting/ledger: Paginiertes TransaktionsjournalGET /api/modules/accounting/runs: Ingestion-Läufe & SaldendifferenzPOST /api/modules/accounting/ingest: Starten eines Blockchain-Syncs
Terminal & Module
GET /api/logs: Statischer Abruf vergangener LogsGET /api/logs/stream: SSE-Log-StreamGET /api/modules: Liste aller Strategie- und Analyse-Module