Phase 5.3-ClosedTrade: ClosedTrade -> Modul + ICopyTradeLogRepository

- ClosedTrade (+ ClosedTradeRow) nach src/PolyTrader.Modules.CopyTrading/Models/.
- Neues ICopyTradeLogRepository (+ Mongo-Impl) im Modul: EnsureIndexes, Exists,
  Insert, Find(predicate) auf der closed_trades-Collection.
- closed_trades-Zugriffe der Modul-Services vom App-Shim auf das Repo umgestellt:
  TraderMonitorService, PersistenceService, PolymarketWssClient, TraderAnalyticsJob.
  Shim-/DB-Usings dort entfernt.
- TraderMonitorService nutzt kein _db mehr (auch die uebrigen _db-Guards aus 3d
  entfernt, da Repos immer verfuegbar sind). Verhaltensneutral.
- frm_main (UI) + Program.cs (BsonDocument-Cleanup) bleiben auf _db.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-01 22:27:22 +02:00
co-authored by Claude Opus 4.8
parent 3be75c0f05
commit 88fc982089
8 changed files with 122 additions and 73 deletions
+5 -6
View File
@@ -1,7 +1,6 @@
using System;
using MongoDB.Driver;
using PolyTrader.Core.Persistence;
using PolyTraderSharp.Extensions;
using PolyTrader.Modules.CopyTrading.Persistence;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
@@ -24,7 +23,7 @@ namespace PolyTraderSharp.Services
private readonly ServerSettings _settings;
private readonly PolymarketClobClient _clob;
private readonly TerminalLogger _logger;
private readonly IMongoDatabase _db;
private readonly ICopyTradeLogRepository _tradeLog;
private readonly IPositionRepository _positionRepo;
private readonly IAccountRepository _accountRepo;
@@ -37,7 +36,7 @@ namespace PolyTraderSharp.Services
ServerSettings settings,
PolymarketClobClient clob,
TerminalLogger logger,
IMongoDatabase db,
ICopyTradeLogRepository tradeLog,
IPositionRepository positionRepo,
IAccountRepository accountRepo)
{
@@ -46,7 +45,7 @@ namespace PolyTraderSharp.Services
_settings = settings;
_clob = clob;
_logger = logger;
_db = db;
_tradeLog = tradeLog;
_positionRepo = positionRepo;
_accountRepo = accountRepo;
}
@@ -287,7 +286,7 @@ namespace PolyTraderSharp.Services
ExitReason = "Pre Redeem"
};
_db.GetCollection<ClosedTrade>("closed_trades").Insert(ct);
_tradeLog.Insert(ct);
_accountRepo.Upsert(acc);
_logger.Trade($"✅ [AUTO REDEEM DEMO ERFOLGREICH] {pos.MarketQuestion} | Exit: {pos.Size:F2} @ {exactLimitPrice:F3} | PnL: ${realizedPnl:F2}");