Richard
|
331623d4f3
|
@
R5: CongressTrading als Strategie (Signal -> ExecutionService) + Positionen im Modul-Fenster
- CongressTradingStrategy: neuer Scrape-Trade -> TradeSignal (buy/sell-Mapping, sonst ignoriert)
-> Core-IExecutionService; CongressScrapeWorker ruft sie je neuem Trade (try/catch-isoliert)
- Modul-Fenster: offene Positionen des Moduls via IPortfolioService.GetPositionsAsync("CT")
- Tests: CongressTradingStrategy (Mapping/Ausfuehrung, gemockter ExecutionService) -> 51/51 gruen
- Handel bleibt sicher aus (TradingEnabled=false + NullBrokerClient), bis Broker+Freigabe
- Build + smoke-ui + App-Start ok
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
|
2026-07-28 19:14:21 +02:00 |
|
Richard
|
19dac18050
|
@
R4: Worker von WorkerEngine auf IHostedService (Generic Host)
- WorkerBase implementiert IHostedService (StartAsync/StopAsync mit CancellationToken,
eigener CTS, Guard auf Info.Active); IWorker auf Metadaten + TriggerAsync reduziert
- Worker via AddHostedService registriert (Core + Modul); AppHost.Start() startet sie,
AppHost.StopAsync() stoppt sie
- WorkerEngine auf leichte Registry reduziert (WorkerInfos fuer UI + TriggerWorkerAsync)
- LauncherForm startet/stoppt keine Worker mehr (Host-getrieben)
- Hosting.Abstractions im Core; Tests angepasst -> 43/43 gruen; smoke-ui + App-Start ok
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
|
2026-07-28 18:39:14 +02:00 |
|
Richard
|
475c0b41cb
|
@
R3 Slice 4: IBKR-Marktdaten auf EF; Dapper vollstaendig entfernt
- 3 IBKR-Entities (IBKRInstrument/IBKRMarketBar/IBKRExternalIdentifier) im CoreDbContext
(core_ibkr_instruments/_market_data/_external_identifiers); Migration AddIbkr
- IBKRMarketDataRepository von Dapper auf EF (IDbContextFactory<CoreDbContext>);
Cross-Modul-Query (ct_trade) via Database.SqlQueryRaw
- DatabaseService, IBKRMigrations, Dapper-Package entfernt; Laufzeit-Migrationen komplett weg
(Schema extern via dotnet ef database update)
- Tests: +4 IBKRMarketDataRepository (EF-InMemory) -> 43/43 gruen; Build + smoke-ui + App-Start ok
R3 abgeschlossen: Persistenz vollstaendig auf EF Core.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
|
2026-07-28 18:29:00 +02:00 |
|
Richard
|
6c8e36dc3c
|
@
R3 Slice 3: CongressTrading-Modul + Worker-Log + core_settings auf EF Core
- Modul: CongressTradingDbContext (ct_congressMember/ct_trade) + Design-Time-Factory;
CongressRepository von Dapper auf EF; CongressTrade.DetailsFetched ergaenzt; Dapper entfernt
- Core: CoreSettingsService (core_settings via EF); WorkerBase-Log auf EF (core_worker_log);
7 Worker-Ctors DatabaseService -> IDbContextFactory<CoreDbContext>
- CoreMigrations + CongressMigrations (Dapper) entfernt; core_-Schema nun rein EF
- EF-Migration InitialCongressTrading; AddCorePersistence-Fallback fuer leeren Connection-String
(App startet ohne DB); Connection aus appsettings.Local.json (gitignored)
- Tests: +4 CongressRepository (EF-InMemory) -> 39/39 gruen; Build + smoke-ui + App-Start ok
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
|
2026-07-28 11:34:42 +02:00 |
|
Richard
|
7e3791b82d
|
@
R3 Slice 2: Trading-Buchführung auf EF Core (+ InMemory-Tests)
- BudgetService, TradeHistoryService, PortfolioService von Dapper/DatabaseService auf
IDbContextFactory<CoreDbContext> (EF Core) umgestellt
- Positionen/Budget/Trade-Historie ueber CoreDbContext (core_position/core_budget/core_trade_history)
- Tests: EF-InMemory-Provider im Testprojekt; 5 PortfolioService-Tests (Buy/Sell/Avg/Exposure/Isolation)
- 35/35 Tests + Build + smoke-ui gruen; WorkerBase-Log/Modul/Dapper-Entfernung folgen
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
|
2026-07-28 10:45:54 +02:00 |
|
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 |
|