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>
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# 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)**
|
||||
Reference in New Issue
Block a user