Files
PolyTraderSharp/docs/PROJEKTSTAND.md
T
RichardandClaude Opus 5 1fd3671b42 Projektstand dokumentiert; Modularisierungsplan auf den Iststand nachgezogen
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>
2026-08-22 11:04:02 +02:00

11 KiB
Raw Blame History

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 05 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 06) — 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 (A1A4), 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 F1F6 — 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.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 36 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 P1P11 / L1L5
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

  1. A5 durchklicken — die Oberfläche mit echten Daten abnehmen. Blockiert nichts technisch, ist aber die letzte offene Zusage der UI-Portierung.
  2. CI aufsetzen — der größte strukturelle Mangel. Ein Workflow, der dotnet build und dotnet test auf Linux fährt, hätte den plattformneutralen Zustand von allein gehalten.
  3. Deploymentcenter live abnehmen — danach können die Altdienste abgeschaltet werden, womit zwei Sicherheits-Auflagen von selbst entfallen.
  4. 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.