docs/PROJEKTSTAND.md neu: Einstiegsdokument mit Gesamtueberblick - Architektur, Modul-Stand, was abgeschlossen ist und was offen. Alle Angaben am Code nachgeprueft, nicht aus den Plandokumenten uebernommen. Die offenen Punkte sind danach getrennt, ob sie am Schreibtisch erledigt werden koennen oder echtes Geld/den Zielserver brauchen - das war vorher nirgends zusammengefasst. Modularisierungsplan korrigiert: Die Phasen 3 bis 6 standen auf "IN ARBEIT" beziehungsweise offen, obwohl die Arbeit seit Wochen getan war. Nachgeprueft und abgehakt sind unter anderem: - Phase 5: alle Modul-Services liegen im Modulprojekt, frm_main ist weg, alle vier Module implementieren IPolyTraderModule - Phase 6: komplett - kein MongoDB.Driver/LiteDB mehr in irgendeiner csproj - Phase 7 teilweise: 476 Tests, keine leeren catch-Bloecke mehr, Secrets-Verschluesselung umgesetzt (AES-GCM statt DPAPI, da DPAPI Windows-only ist und die Linux-Portierung blockiert haette) Offen bleiben aus Phase 7 nur God-Methoden und die TerminalLogger-Umstellung. Beim Nachpruefen aufgefallen: Accounting A-3 (US-Steuerschicht, Form 8949) ist entgegen der bisherigen Annahme nicht gebaut - es gibt keinen UsTaxEngine. A-2 und A-4 dagegen sind da. Im Projektstand vermerkt. docs/README.md verweist jetzt auf den Projektstand und fuehrt die bisher fehlenden Ordner sicherheit/ und den Deploymentcenter-Plan auf. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
11 KiB
Projektstand PolyTrader
Stand: 22.08.2026 · erstellt beim Frühjahrsputz, alle Angaben am Code nachgeprüft (nicht aus Plandokumenten übernommen — mehrere davon waren veraltet).
Dieses Dokument ist der Einstiegspunkt: Was existiert, was ist fertig, was ist offen und warum. Die Detailpläne unter
umsetzungsplaene/bleiben maßgeblich für das Wie.
1. Kurzfassung
PolyTrader ist eine modulare Trading- und Analyse-Suite für Polymarket: ein schlanker Core und vier eigenständige Module, dazu eine plattformneutrale Avalonia-Oberfläche.
| Projekte | 7 (Core, 4 Module, Avalonia-App, Tests) — alle auf net10.0 |
| Plattform | Windows und Linux. Seit dem 22.08.2026 kein net10.0-windows mehr im Repo; Linux-Publish verifiziert |
| Produktivcode | ~27.100 LOC, davon Core ~8.000, CopyTrading ~7.700, UI ~4.900 |
| Tests | 476, alle grün (~5.700 LOC) |
| Build | 0 Fehler, 15 Warnungen (alle im Avalonia-Projekt, siehe §5.3) |
| Sicherheit | 0 anfällige Pakete über alle 7 Projekte, inkl. transitiver |
| Datenbank | MySQL über EF Core / Pomelo. Mongo und SQLite vollständig entfernt |
Der große Bogen ist geschlossen. Aus dem monolithischen WinForms-Copytrader ist ein modulares, plattformneutrales System geworden. Was noch offen ist, teilt sich sauber in zwei Gruppen: Dinge, die nur im Zielland mit echtem Geld abgenommen werden können, und bewusst zurückgestellte Neuentwicklung.
2. Architektur
PolyTrader.Core Host, Persistenz (EF/MySQL), Settings, Jobs, Logging,
CLOB-Client, Streaming, Security, Deploymentcenter-Anbindung
│
├── Modules.CopyTrading Master-Trader spiegeln
├── Modules.ResolutionFarming Favoriten nahe Auflösung
├── Modules.Supervisor KI-gestützte Handelsanalyse (OpenRouter)
└── Modules.Accounting Unabhängige Buchhaltung aller Live-Accounts
│
PolyTrader.App.Avalonia Einfenster-Shell mit Seitenleiste
Leitprinzip, das gehalten hat: Der Core kennt keine Module. Module registrieren sich
über IPolyTraderModule und liefern ihre Ansichten über einen toolkit-neutralen
UI-Contract — deshalb war der Wechsel von WinForms nach Avalonia überhaupt möglich, ohne
die Fachlogik anzufassen.
3. Modul-Stand
| Modul | Stand | Offen |
|---|---|---|
| CopyTrading | Produktiv nutzbar. Rentabilitätsplan und alle Review-Fixes umgesetzt | CLOB-User-/Market-WSS-Kanal + Orderbuch-Check, Partial-Fill-Verdrahtung, echte fee_rate_bps — alles live-gebunden |
| ResolutionFarming | Slices 0–5 fertig: Logik, Persistenz, Scanner, UI, Demo-Execution, Monitor | Live-Anbindung und On-Chain-Redeem |
| Supervisor | S-0 bis S-4 komplett: Journal, Dossiers, OpenRouter-Agent, Profile, Berichte, Counterfactual | Predictalytics-Werkzeuge (API existiert noch nicht), Live-Key-Test |
| Accounting | A-1 Ingest, A-2 Abrechnung/BWA/FX und A-4 Export (CSV + PDF) sind gebaut | A-3 US-Steuerschicht fehlt vollständig — kein UsTaxEngine, kein Form-8949/Schedule-D |
4. Abgeschlossen
- Modularisierung (Phasen 0–6) — Core + vier Module, kein Monolith mehr
- MySQL-Migration — Mongo restlos raus,
core_/mod_-Schema, Migration über--migrate-json/--verify-mysqlgelaufen - Linux-Portierung, UI-Teil — WinForms vollständig nach Avalonia portiert (A1–A4),
LiveCharts2 statt ScottPlot, kategorisierter
SettingsEditorstattPropertyGrid - Einfenster-Shell — Mehrfenster-Launcher durch eine Shell mit Seitenleiste ersetzt
- Deploymentcenter-Integration (D-0 bis D-5) — Lizenz, Watchdog, Fehler-Reporting, Auslieferung und Erstinstallation, code-seitig
- Sicherheit F1–F6 — AES-GCM at-rest für Keys über
POLYTRADER_MASTER_KEY, keine Secrets in Argumenten oder Logs - WinForms-Ausbau (P11/L5) und LicenseLabrador-Ablösung (D-6) — 22.08.2026
5. Offen
5.1 Blockiert durch Live-Betrieb / Zielland
Diese Punkte sind nicht liegengeblieben — sie lassen sich am Schreibtisch nicht abschließen, weil sie echtes Geld, echte Marktdaten oder den Zielserver brauchen.
| Punkt | Was fehlt |
|---|---|
| A5 — Abnahme der Oberfläche | Jedes Fenster mit echten Daten durchklicken: Spaltenbreiten, Umbrüche, Splitter, KPI-Kacheln. Vergleich gegen einen Worktree des Tags winforms-final |
| Deploymentcenter live | Abnahme von D-1/D-2 (Watchdog, Lizenz), Live-Abnahme von D-5 (Erstinstallation). Serverseitig fehlen: Release-Signierschlüssel und Installationskonto |
| Alte Dienste abschalten | watchdog.mhdf.de und license.mhdf.de — erst nach der Live-Abnahme, sonst fehlt die Rückfallebene |
| Master-Key im Zielland | Master-Key setzen und Bestandsdaten migrieren; Alchemy- und Mullvad-Zugänge rotieren |
| Modul-Livegang | CopyTrading-WSS-Kanäle, ResolutionFarming-Anbindung und On-Chain-Redeem (siehe §3) |
| systemd / Feldtest | Unit liegt unter deploy/polytrader.service, ist aber nicht im Betrieb erprobt |
5.2 Geplant, aber bewusst nicht gebaut
Vollständige Pläne, null Zeilen Code — jederzeit startbar, nichts davon blockiert etwas anderes:
| Vorhaben | Art |
|---|---|
| Modul MarketMaking | Liquidity Rewards + Spread. Setzt das Orderbuch-Fundament aus CopyTrading Phase 1 voraus |
| Modul BundleArbitrage | Preissummen-Anomalien. Startet bewusst als reines Mess-Modul |
| Modul DataDriven | Konzept, noch kein Umsetzungsplan |
| StrategieDrift | Verhaltensänderung eines Masters erkennen, bevor das PnL es zeigt |
| AI-Auflösequalität | LLM bewertet je Markt das Resolution-Risiko als Entry-Gate |
| AutoRedeem | On-Chain-Auto-Redeem, modulweise schaltbar. Höchste Kritikalitätsstufe |
| Accounting A-3 | US-Steuerschicht (FIFO-Lot-Matching, Form 8949, Schedule D) |
5.3 Technische Restposten
| Punkt | Details |
|---|---|
| Keine CI | Weder .github/workflows noch .gitea/workflows — es existiert keinerlei Automatisierung. Build und Tests laufen ausschließlich von Hand. Der größte strukturelle Mangel |
| 15 Build-Warnungen | Alle im Avalonia-Projekt: 13 × CS8618 (Felder in Fenster-Konstruktoren), 1 × CS8848 (Vorrang bei switch), 1 × CS8602 (möglicher Nullverweis in PdfExporter.cs:40). Die letzten beiden sind einen Blick wert |
| TerminalLogger | Stempelt mit DateTime.Now statt der konfigurierten AppTimeZone. Auf einem UTC-Linuxserver passen Logdatei-Grenzen nicht zur angezeigten Uhrzeit. Umstellung auf Microsoft.Extensions.Logging steht ohnehin aus |
| God-Methoden | PollLiveAccountsAsync, ProcessAccountOrderAsync; duplizierte Closed-Trade-Erzeugung (Phase 7) |
| Aufgeschobene Follow-ups | TradeId-Autoincrement, Dedup, Performance (aus dem CopyTrading-Plan) |
6. Der Frühjahrsputz vom 22.08.2026
Zwei Commits: dd8da3f sicherte den unversionierten Arbeitsstand (58 Dateien: die
Deploymentcenter-Integration und die Einfenster-Shell lagen uncommittet im Arbeitsbaum),
bf8048b räumte auf.
Entfernt — 124 Dateien, 10.619 Zeilen weniger:
- Das WinForms-Projekt samt
Ui/,Models/,Licensing/,services/,Properties/,Resources/icons/,Program.cs,favicon.icoundPolyTrader.App.csproj LicenseLabrador.Clientauslib/nugetund dem Quellen-Mappingagentspace/(30 Dateien: WinForms-Designer-Patcher,fix_mongo.py, Wegwerfskripte)Ideen-fuer-Mittwoch.txt, das Root-appsettings.json(Duplikat), lokalMongoDB/,data.dbund eine.bak-Datei
Beim Aufräumen aufgefallen und mitbehoben:
- Der Rückfall-Tag
winforms-finallag nur lokal und war nicht auf dem Server — genau die Sicherung, auf die sich die Doku als Fallback beruft. Jetzt gepusht. - Die Avalonia-App band ihre PNG-Symbole aus dem Repo-Root ein (
..\..\Resources\*.png) und hätte sie beim Ausbau verloren. Sie liegen jetzt insrc/PolyTrader.App.Avalonia/Assets/; deravares://-Pfad blieb gleich.
Bewusst nicht entfernt, obwohl Pläne es nahelegten:
Newtonsoft.Jsonim Core ist kein toter Ballast, sondern ein Sicherheits-Pin: Nethereum 6.1.0 würde sonst transitiv auf 11.0.2 auflösen (GHSA-5crp-9r3c-p9vr).- Die
Watchdog*-Felder inServerSettings. Schnitt D-6 verlangte ihre Entfernung, aber D-1 hatte sie zuvor auf die Deploymentcenter-API umgewidmet. Sie sind in Gebrauch; ein Entfernen wäre ein Rückschritt gewesen. Resources/*.png— siehe oben.
Gesucht und nicht gefunden: toter Code. Eine Prüfung aller 285 Typen in src/ gegen
ihre Verwendung ergab keinen einzigen verwaisten Typ. Die scheinbaren Treffer waren
EF-Design-Time-Factories und Migrationen (per Reflection genutzt) sowie Null-Stubs, die
über DI registriert sind. Auch leere catch {}-Blöcke: keine.
Doku nachgezogen: Der Modularisierungsplan führte die Phasen 3–6 als „IN ARBEIT"
beziehungsweise offen, obwohl sie seit Wochen erledigt waren — die Häkchen sind jetzt am
Code nachgeprüft gesetzt. Der Watchdog/LicenseLabrador-Plan ist als abgelöst
gekennzeichnet, ANALYSE-Linux-Portierung.md steht auf Revision 6.
7. Doku-Landkarte
| Dokument | Rolle |
|---|---|
PROJEKTSTAND.md |
Dieses Dokument — Einstieg und Gesamtüberblick |
ANALYSE-Linux-Portierung.md |
Rahmen der Linux-Fähigkeit, Fahrplan P1–P11 / L1–L5 |
LEITFADEN-Avalonia-Portierung.md |
Arbeitsregeln für die Oberfläche. Vor jeder UI-Arbeit lesen |
UI-SPEZIFIKATION-WinForms.md |
Beschreibung der alten Oberfläche — Vergleichsvorlage für A5 |
umsetzungsplaene/ |
Detailpläne je Vorhaben |
konzepte/ |
Vorhaben ohne Umsetzungsplan |
sicherheit/SICHERHEITSKONZEPT.md |
Konzept + wiederkehrende Audit-Checkliste. Die offenen Kästchen dort sind eine Vorlage, keine Rückstände |
IDEENSAMMLUNG-Feldtest-2026-08.md |
Beobachtungen aus dem laufenden Einsatz. Nur sammeln |
.agents/rules/clob.md |
Regeln für alles, was Geld bewegt |
Abgelöst, nur noch Verlauf: UMSETZUNGSPLAN-Watchdog-LicenseLabrador-Integration.md
8. Empfohlene nächste Schritte
- A5 durchklicken — die Oberfläche mit echten Daten abnehmen. Blockiert nichts technisch, ist aber die letzte offene Zusage der UI-Portierung.
- CI aufsetzen — der größte strukturelle Mangel. Ein Workflow, der
dotnet buildunddotnet testauf Linux fährt, hätte den plattformneutralen Zustand von allein gehalten. - Deploymentcenter live abnehmen — danach können die Altdienste abgeschaltet werden, womit zwei Sicherheits-Auflagen von selbst entfallen.
- Erst dann neue Module. MarketMaking und BundleArbitrage sind fertig geplant und warten — aber Neuentwicklung vor der Abnahme des Bestehenden vergrößert nur die Menge an ungeprüftem Code.