Files
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

3.7 KiB

Paket 3: Fachmodule im WebUI (CopyTrading & ResolutionFarming) — Erfolgreich Abgeschlossen

Status: Abgeschlossen (Build 0 Fehler, 521 Tests bestanden)

1. Übersicht & Ziel

In Paket 3 wurden die beiden aktiven Kern-Trading-Module aus der Desktop-GUI (CopyTradingWindow.axaml und ResolutionFarmingWindow.axaml) vollständig in das WebInterface integriert. Beide Module sind jetzt im Browser voll bedienbar — mit Live-Daten, Modals für Master-Trader, Positionen, Historien und dynamischer Konfiguration je Account.

2. Implementierte Komponenten

Backend

  • src/PolyTrader.Web/Endpoints/CopyTradingEndpoints.cs:
    • GET /api/modules/copytrading/traders: Vollständige Liste aller Master-Trader inklusive Kennzahlen (Winrate, 30T Copy-PnL, Profit-Faktor, zugewiesene Konten).
    • POST /api/modules/copytrading/traders: Erstellung und Bearbeitung von Master-Tradern (Auto-ID, Category-Defaulting, Zuweisungen, In-Memory-Synchronisierung).
    • DELETE /api/modules/copytrading/traders/{id}: Löschen eines Master-Traders aus Repo und Hot-Path-State.
    • GET /api/modules/copytrading/open-trades: Offene Positionen aller Konten mit Berechnungen für Buchgewinn ($ und %) und Status.
    • GET /api/modules/copytrading/closed-trades: Geschlossene Trades mit Paginierung, Filterung nach Master, Win/Loss und Freitextsuche.
    • GET /api/modules/copytrading/settings/{accountId} & POST /api/modules/copytrading/settings/{accountId}: Abruf und Speichern der Account-spezifischen Risikolimits und Ausführungsparameter.
  • src/PolyTrader.Web/Endpoints/ResolutionFarmingEndpoints.cs:
    • GET /api/modules/resolutionfarming/candidates: Letzte 500 Scanner-Kandidaten (Ask, Fee, Net-Edge %, Score, Status).
    • GET /api/modules/resolutionfarming/positions: Offene Farming-Positionen mit Gesamteinsatz und Details.
    • GET /api/modules/resolutionfarming/history: Abgeschlossene Farming-Trades mit Winrate- und PnL-Berechnung.
    • GET /api/modules/resolutionfarming/settings/{accountId} & POST /api/modules/resolutionfarming/settings/{accountId}: Abruf und Speichern der Farming-Parameter je Account.
  • src/PolyTrader.Web/Hosting/WebUiHostingExtensions.cs:
    • Registrierung von MapCopyTradingEndpoints() und MapResolutionFarmingEndpoints().

Frontend

  • src/PolyTrader.Web/wwwroot/index.html:
    • Direkte Navigationslinks für "CopyTrading" und "Resolution Farming".
    • View #view-copytrading mit 4 Sub-Tabs: "Master-Trader", "Offene Positionen", "Geschlossene Trades", "Account-Einstellungen".
    • View #view-resolutionfarming mit Konto-Selektor und 4 Sub-Tabs: "Kandidaten", "Offene Positionen", "Historie", "Einstellungen".
    • Modal-Dialog #modalTrader zum Bearbeiten/Anlegen von Master-Tradern inklusive Account-Zuweisungs-Checkboxen.
  • src/PolyTrader.Web/wwwroot/css/app.css:
    • Modul-Toolbars, Tab-Buttons, Modal-Dialog (Overlay, Blur, Box-Shadow, Responsiv), Tabellen-Aktionsbuttons (Bearbeiten/Löschen).
  • src/PolyTrader.Web/wwwroot/js/app.js:
    • Tab-Wechsel-Logik für beide Module.
    • Vollständiges Laden, Rendern, Suchen, Filtern und Paginieren für Master-Trader, Positionen und Trades.
    • Formular-Validierung und REST-Persistenz für Einstellungen und Master-Trader.
    • Direkte Absprung-Buttons auf den Modul-Karten unter "Module".

Tests

  • tests/PolyTrader.Tests/WebUi/CopyTradingAndResolutionFarmingEndpointsTests.cs:
    • 8 Unit-Tests für Trader-Input-Mapping, Buchgewinn-Berechnung, Closed-Trade-Filterung, Copy-Trading-Settings-Defaults, RF-Kandidaten-Edge-Filterung, RF-Positions-Metriken, RF-Historien-PnL und RF-Settings-Defaults.
    • Gesamttests der Solution: 521 bestanden (100% Erfolgsquote).

Nächstes Paket: Paket 4: Supervisor & Accounting (KI-Berichte, PDF-/CSV-Export & Steuerjournal)