Der Status des Projekts stand verstreut in elf Umsetzungsplaenen, drei Konzepten, der Linux-Analyse und dem Projektstand - teils widersprechend, teils wochenlang veraltet. Ab jetzt gibt es genau eine Statusquelle. docs/ROADMAP.md (neu): - Alle Vorhaben in vier Stufen A bis D, plus technische Schuld und Verlauf. Die Stufen sind eine Reihenfolge, keine Termine: jede schafft die Voraussetzung fuer die naechste. - Statuszeichen: erledigt / offen / blockiert (mit Ursache) / bewusst zurueckgestellt / Idee, nicht beschlossen. Damit ist das, was wir NICHT bauen wollen, sichtbar vorgehalten statt unauffindbar in einem Plan zu schlummern. - Inhaltlich getragen, nicht nur verlinkt: je Vorhaben Ziel, Phasen, Akzeptanzkriterien, offene Entscheidungen und Leitplanken aus den Quelldokumenten. - Sichtbar gemacht, was vorher zwischen den Dokumenten verborgen lag: CopyTrading Phase 1 ist der Engpass der gesamten Roadmap (MarketMaking und BundleArbitrage haben harte Voraussetzungen darauf), und die Sniper-Metriken aus Phase 3.2 sind ein Spezialfall des StrategieDrift-Fingerprints - zusammen bauen statt doppelt. Archiv (docs/archiv/): - 15 Dokumente verschoben (11 Umsetzungsplaene, 3 Konzepte, ANALYSE-Linux-Portierung). Sie bleiben die Bauanleitungen mit Code-Bezuegen, Risikotabellen und Begruendungen - eingefroren ist nur ihr Status. - archiv/README.md ordnet jedes Dokument seinem Roadmap-Punkt zu. Verweise nachgezogen - der eigentliche Aufwand: - 25 Markdown-Links repariert. 15 davon verschiebungsbedingt (eine Ebene tiefer), der Rest war schon vorher falsch: die Ideensammlung verlinkte Quellcode relativ zum Repo-Wurzelverzeichnis statt zu docs/. - 12 Dateien ausserhalb von docs/ verwiesen in Kommentaren auf die Plaene (csproj, props, setup.json, sechs Quelldateien) - alle auf archiv/ umgebogen. - Verweise auf Dateien, die der Fruehjahrsputz geloescht hat (Ui/, Program.cs, WindowMenuBar), zu Klartext entschaerft statt tote Links zu lassen. - Gegenprobe: 85 Links geprueft, 0 kaputt. Build gruen, 476 Tests gruen. PROJEKTSTAND.md entdoppelt: Abschnitt "Offen" verweist jetzt auf die Roadmap. Arbeitsteilung ist damit klar - Projektstand sagt was IST, Roadmap was KOMMT. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
167 lines
8.5 KiB
Markdown
167 lines
8.5 KiB
Markdown
# 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.
|