# Projektstand PolyTrader **Stand: 22.08.2026** · erstellt beim Frühjahrsputz, alle Angaben am Code nachgeprüft (nicht aus Plandokumenten übernommen — mehrere davon waren veraltet). > **Arbeitsteilung:** Dieses Dokument beschreibt, was **ist** — Architektur, Kennzahlen, > Modul-Stand. Was **kommt**, steht in der [ROADMAP.md](./ROADMAP.md). Die Detailpläne im > [Archiv](./archiv/) 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-mysql` gelaufen - **Linux-Portierung, UI-Teil** — WinForms vollständig nach Avalonia portiert (A1–A4), LiveCharts2 statt ScottPlot, kategorisierter `SettingsEditor` statt `PropertyGrid` - **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 **Steht vollständig in der [ROADMAP.md](./ROADMAP.md).** Dort sind alle Vorhaben nach Stufen geordnet, mit Blockern und Begründungen — dieses Dokument beschreibt den *Ist*-Zustand, die Roadmap den Weg nach vorn. Kurz zusammengefasst: - **Stufe A — Abnahme & Fundament:** A5-Abnahme der Oberfläche, CI-Runner, Deploymentcenter live, systemd/Feldtest, Master-Key im Zielland - **Stufe B — Module scharf schalten:** CopyTrading Phase 1 (Marktdaten-Fundament, der wichtigste Einzelposten), ResolutionFarming live, AutoRedeem, Accounting A-3/A-5 - **Stufe C — Neue Strategiemodule:** MarketMaking, BundleArbitrage (beide hängen an CopyTrading Phase 1), StrategieDrift und AI-Auflösequalität (zurückgestellt) - **Stufe D — Nicht beschlossen:** DataDriven, Predictalytics-Anbindung - **Technische Schuld:** 15 Build-Warnungen, TerminalLogger/Zeitzone, God-Methoden --- ## 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.ico` und `PolyTrader.App.csproj` - **`LicenseLabrador.Client`** aus `lib/nuget` und dem Quellen-Mapping - **`agentspace/`** (30 Dateien: WinForms-Designer-Patcher, `fix_mongo.py`, Wegwerfskripte) - `Ideen-fuer-Mittwoch.txt`, das Root-`appsettings.json` (Duplikat), lokal `MongoDB/`, `data.db` und eine `.bak`-Datei **Beim Aufräumen aufgefallen und mitbehoben:** - Der Rückfall-Tag **`winforms-final` lag 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 in `src/PolyTrader.App.Avalonia/Assets/`; der `avares://`-Pfad blieb gleich. **Bewusst *nicht* entfernt**, obwohl Pläne es nahelegten: - **`Newtonsoft.Json` im 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 in `ServerSettings`.** 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 | |---|---| | `ROADMAP.md` | **Das Steuerungsdokument** — alle Vorhaben, Status, Reihenfolge | | `PROJEKTSTAND.md` | **Dieses Dokument** — der Ist-Zustand: Architektur, Kennzahlen, Modul-Stand | | `archiv/` | Die Detailpläne, aus denen die Roadmap entstand. Weiterhin die Bauanleitungen | | `LEITFADEN-Avalonia-Portierung.md` | Arbeitsregeln für die Oberfläche. **Vor jeder UI-Arbeit lesen** | | `LEITFADEN-CI.md` | Was die CI prüft und wie der Gitea-Runner eingerichtet wird | | `UI-SPEZIFIKATION-WinForms.md` | Beschreibung der alten Oberfläche — Vergleichsvorlage für A5 | | `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. Wie es weitergeht Die Reihenfolge steht in der **[ROADMAP.md](./ROADMAP.md)**. Die kürzeste Fassung: erst die Abnahmen aus Stufe A abschließen (dort steckt fertige Arbeit, die nur noch bestätigt werden muss), dann CopyTrading Phase 1 — daran hängen beide geplanten Strategiemodule.