RichardandClaude Opus 5 27577ef1b2 @ Doku: Analyse Linux-Portierung (Avalonia + net10, Aufwand, Fundstellen)
Bestandsaufnahme gegen b96a207, kein Code geaendert. Kernbefunde:

- Der nicht-UI-Teil ist portabel: kein DllImport, keine Registry, kein WMI,
  kein DPAPI, keine Windows-Zeitzonen-IDs. WinForms-Kopplung im Core sind
  genau 3 Dateien, je Modul genau eine Form-Datei.
- Daraus die Empfehlung: erst headless (~6,5 PT), dann Avalonia (~12 PT).
  LiveCharts2 ist Feature-Neubau, kein Migrationsposten (kein Diagramm im
  Bestand).
- Kritisch: ParseExecutionTime verwirft die Zeitzone (Kind=Unspecified) und
  DailyReportService nutzt DateTimeKind.Local - auf einem UTC-Host liefert
  derselbe Code lautlos andere Werte.
- NuGet.config ist bereits heute kaputt: PDFsharp-MigraDoc,
  Microsoft.EntityFrameworkCore (Glob matcht nicht ohne Suffix) und
  Microsoft.CodeAnalysis.CSharp.Workspaces fehlen im packageSourceMapping.
  Gegen leeren Paket-Ordner verifiziert (NU1100).
- Weiter: mysqldump.exe + PATH-Split(';') im BackupWorker, "Segoe UI" und
  kulturabhaengige Betragsformatierung im PdfExporter, Schreibzugriff neben
  der Binaerdatei (FHS), Fundstellenverzeichnis mit Datei+Zeile im Anhang.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 22:26:49 +02:00
@
2026-07-27 09:58:49 +02:00
@
2026-07-28 10:25:14 +02:00
@
2026-07-28 10:25:14 +02:00
@
2026-07-28 20:01:55 +02:00
@
2026-07-27 10:09:46 +02:00
@
2026-07-28 19:53:21 +02:00
2026-07-26 18:19:47 +02:00
@
2026-07-28 00:24:00 +02:00
2026-07-26 18:19:47 +02:00
2026-07-26 18:19:47 +02:00
@
2026-07-28 18:39:14 +02:00

IBKRTrader

Modulares C#-Trading-Framework für Interactive-Brokers-Aktien. Harter Core + unabhängige Strategie-Module + Launcher, der die Fenster der Module öffnet. Konzept nach dem Vorbild von PolytraderSharp (nur IBKR statt Polymarket).

Architektur (Kurzform)

IBKRTrader.App                     WinExe  Generic Host + Launcher/Shell (WinForms)
src/IBKRTrader.Core                Contracts, EF-Persistenz, Trading-Kern, Worker, Security
src/IBKRTrader.Modules.*           je Modul ein eigenes Projekt (referenziert nur Core)
tests/IBKRTrader.Tests             xUnit (Unit + EF-InMemory)
  • Generic Host (Host.CreateDefaultBuilder), Worker/Services als IHostedService.
  • Module über IModule (RegisterServices/RegisterUi/Start/Stop); UI über IModuleUiHost/ModuleView.
  • Persistenz: EF Core (Pomelo/MariaDB), Migrationen extern angewendet (nicht zur Laufzeit).
  • Trading-Kern: IExecutionService (Signal→Risiko→Order→Buchung), IRiskService, IPortfolioService, Broker hinter IBrokerClient: NullBrokerClient (Default, handelt nie) oder IbkrBrokerClient über die TWS API aktivierbar mit IBKR.UseTwsApi.
  • Analyse-Datenfundament: core_decision_journal (jede Entscheidung + ReasonCode), core_order_events, SignalId-Korrelation, JSONL-Log-Sink (Logs/{yyyy-MM-dd}.jsonl) speist den Supervisor.
  • Details: docs/ARCHITECTURE.md.

Build & Test

dotnet build IBKRTrader.slnx
dotnet test  IBKRTrader.slnx
dotnet run --project IBKRTrader.App.csproj -- --smoke-ui   # Headless-UI-Check
dotnet run --project IBKRTrader.App.csproj                 # App starten

Konfiguration

  • appsettings.Local.json (gitignored) hält den DB-Connection-String (Database:MySqlConnectionString).
  • settings.json (gitignored) App-Settings (IBKR-Ports, Logging, Worker, Trading).
  • Optional IBKRTRADER_MASTER_KEY bzw. master.key für at-rest-Verschlüsselung (AES-256-GCM).
  • Supervisor (optional): IBKRTRADER_OPENROUTER_KEY bzw. openrouter.key (KI-Analyse), sowie die Opt-ins IBKRTRADER_SUPERVISOR_DAILY (Tagesbericht, Stunde 023) und IBKRTRADER_MCP_PORT (MCP-Light, nur 127.0.0.1).

Datenbank aufsetzen

Schema wird per EF-Migrationen extern angewendet siehe scripts/README.md:

mysql ... < scripts/drop-app-tables.sql        # nur falls Alt-Tabellen existieren
powershell -File scripts/provision-db.ps1

Module

  • CongressTrading kopiert US-Kongress-Trades (capitoltrades.com) → TradeSignal → ExecutionService.
  • Accounting von der Trading-DB unabhängige Buchführung aus dem IBKR-Kontoauszug (Activity Flex Query) → append-only Ledger acc_*, Periodenabrechnung/BWA, FX (USD/EUR), CSV/PDF-Export. Kein Handel. Live-Abruf hinter Interfaces (Offline-Null-Stubs); Steuerschicht bewusst offen. Konzept: docs/konzepte/KONZEPT-Modul-Accounting.md.
  • Supervisor read-only KI-Analyse/Forensik über alle Module (OpenRouter-Agent + read-only Tool-Registry, Dossier-Browser, optional MCP-Light). Stützt sich auf das Core-Datenfundament (core_decision_journal, core_order_events, SignalId, JSONL-Logs). Konzept: docs/konzepte/KONZEPT-Modul-Supervisor.md.

Status / Nächstes

  • Kurskorrektur auf das PolytraderSharp-Konzept (R1R7) abgeschlossen.
  • Accounting- und Supervisor-Modul (inkl. Core-Datenfundament S-0) ergänzt; Live-Abruf (IBKR Flex / OpenRouter-Key) und Steuerschicht sind bewusst noch offen (Stubs/Platzhalter).
  • IBKR-Broker über die TWS API / IB Gateway ist implementiert (Paper-Konto steht, Verbindung verifiziert) Design und offene Punkte: docs/IBKR-Integration.md, TWS-Einstellungen: docs/TWS-Setup-Checkliste.md.
  • Sicherheit: DB-Passwort rotieren (liegt in der Git-Historie, Commit ebeb035).

Sicherheitshinweis

Automatisierter Handel ist riskant. Standardmäßig handelt die App nicht: der Broker-Adapter ist über IBKR.UseTwsApi abgeschaltet, und selbst mit aktivem Adapter platziert der ExecutionService ohne globales TradingEnabled=true keine Order. Beide Schalter sind bewusst getrennt. Echter Handel erst nach Verifikation gegen den Paper-Account.

S
Description
No description provided
Readme
635 KiB
Languages
C# 76.3%
HTML 23.1%
PowerShell 0.6%