Richard
8f44c0fd82
@
...
R2: Generic Host + Modul-Vertrag + Shell-UI (PolytraderSharp-Konzept)
- Core/Modularity: neuer IModule (Name, DbPrefix, RegisterServices(services,config),
RegisterUi(host,sp), StartAsync/StopAsync, GetActivationBlocker) + ModuleView
+ IModuleUiHost + WindowMenu. Alte IModule/ModuleRegistry/WindowManager/ModuleFormBase entfernt.
- Program.cs: Host.CreateDefaultBuilder + IConfiguration (appsettings.json/.Local.json);
Core-Services registriert, Module via RegisterServices, Views via RegisterUi.
- UI: ShellUiHost (Einzelinstanz-Fenster + Fenster-Menue), LauncherForm als Shell
(Buttons je View), Core-Views Logs/Settings/Workers als eigene Fenster.
- CongressTrading auf neuen Vertrag; Worker als IWorker registriert.
- --smoke-ui Headless-Test (konstruiert jede View + Launcher).
- appsettings.Local.json gitignored.
- Tests angepasst -> 30/30 gruen; Build + Smoke-UI + App-Start verifiziert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
@
2026-07-28 00:24:00 +02:00
Richard
c20538c8d8
@
...
R1: Umbau auf Multi-Projekt-Struktur (Vorbild PolytraderSharp)
Kurskorrektur: Vorbild ist PolytraderSharp (C#), nicht die veraltete Python-Version.
Reiner Strukturumbau, Verhalten unveraendert.
- src/IBKRTrader.Core (classlib): Core-Code + UI-Contract (ModuleFormBase, WindowManager)
- src/IBKRTrader.Modules.CongressTrading (classlib, referenziert nur Core)
- Root: IBKRTrader.App (WinExe) referenziert Core + Modul
- tests/IBKRTrader.Tests: Referenzen auf Core + Modul
- Neue .slnx; ungenutztes HtmlAgilityPack entfernt
- docs/ARCHITECTURE.md: korrigierter Ziel-Stand + R-Phasenplan
- Build + 38/38 Tests gruen; App startet
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
@
2026-07-27 20:26:25 +02:00
Richard
2ad4b55db1
@
...
Phase 3: Trading-Kern (Risk, Execution, Portfolio) mit sicherem Broker-Default
- Core/Trading/TradingModels: Signal, Order(Request/Result), RiskContext/Decision,
Account, Position, Quote, ExecutionResult, Enums (Side/OrderType/Mode)
- IBrokerClient + NullBrokerClient (sicherer Default, handelt NIE bis IBKR-Adapter verifiziert)
- RiskService (+IRiskService): Sizing nach MaxTrade%, Modul-Limit, Slippage; Buy/Sell
- PortfolioService (+IPortfolioService): core_position + core_trade_history + core_budget
- ExecutionService (+IExecutionService): Signal -> Kurs -> Konto -> Risiko -> Order -> Buchung
- TradingSettings in AppSettings (Paper/Live, TradingEnabled, Risikoparameter)
- CoreMigrations: core_position; DI-Registrierung der Trading-Services
- Tests: RiskService (11) + ExecutionService (6, NSubstitute) -> 38/38 gruen
Offen (bewusst gekapselt): echter IbkrBrokerClient gegen Client-Portal-Gateway (manuell verifizieren).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
@
2026-07-27 11:33:59 +02:00
Richard
d0bc833235
@
...
Phase 2: Launcher-UI + eigenstaendige Modul-Fenster
- Form1 -> LauncherForm (Dateien via git mv, Designer/resx angepasst)
- Modul-Tab: Karten aus ModuleRegistry mit "Fenster oeffnen"-Button je Modul
- UI/WindowManager: Fenster-Tracking (Key->Form), Re-Open fokussiert, CloseAll
- UI/ModuleFormBase: Basisklasse fuer eigenstaendige Modul-Fenster
- CongressTradingForm: DB-Kennzahlen + manueller Scrape-Trigger (Phase-4-Ausbau folgt)
- WindowManager in DI; Launcher schliesst Modul-Fenster beim Beenden
- Tests: WindowManager (6) -> 21/21 gruen; Launcher-Start verifiziert
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
@
2026-07-27 10:39:50 +02:00
Richard
5815d3258f
@
...
.gitattributes: Zeilenenden-Normalisierung (stoppt LF/CRLF-Warnungen)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
@
2026-07-27 10:09:46 +02:00
Richard
af398353f0
@
...
Phase 1: Modul-System formalisiert (IModule + ModuleRegistry)
- Core/Modules/IModule.cs: Vertrag (Key, DisplayName, Description, Version,
RegisterServices, InitializeAsync, GetWorkers, CreateWindow)
- Core/Modules/ModuleRegistry.cs
- CongressTradingModule auf IModule umgestellt (instanzbasiert, Platzhalter-Fenster)
- Program.cs iteriert ueber IModule[] + Registry; Form1 initialisiert Module ueber Registry
- Testbarkeit: WorkerBase DB-Log-Seam (virtuell); CapitolTradesScraper.ParseTradesFromHtml
extrahiert (offline gegen ct_raw.html testbar)
- Tests: ModuleRegistry, CongressTradingModule, WorkerBase, CapitolTradesScraper -> 15/15 gruen
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
@
2026-07-27 10:07:47 +02:00
Richard
9abad277c2
@
...
Phase 0: Test-Fundament & Architektur-Doku
- IBKRTrader.Tests (xUnit + NSubstitute + FluentAssertions), nur Unit-Tests
- Repo-lokale NuGet.config: Test-Pakete in Allowlist ergaenzt
- Hauptprojekt: Test-Unterordner aus SDK-Globbing ausgeschlossen
- docs/ARCHITECTURE.md: Plan + Phasen-Checkliste
- grundregeln.md: .NET 10, Launcher-Modell; DB-Passwort entfernt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
@
2026-07-27 09:58:49 +02:00
Richard and Claude Opus 4.8
ebeb035e92
Initial commit: IBKRTrader
...
.NET WinForms-Anwendung (Core, Modules/CongressTrading, UI).
Enthaelt .gitignore und settings.example.json als Konfigurationsvorlage.
Echte settings.json mit Zugangsdaten ist bewusst ausgeschlossen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-26 18:19:47 +02:00