Phase 5: AccountState-Split (Copytrading-Limits -> Modul)
- Copytrading-Detail-Einstellungen (PerMarketLimit, MaxBuyPrice, PerMasterLimit, Zeit-Limits, PreRedeemLimit, ProfitTarget, MaxPriceDifference) aus dem Core- AccountState in das Modul-Modell CopyTradingAccountSettings verschoben. - CopyTradingState.AccountSettings + GetAccountSettings(accountId) (Default-safe). - Consumer umgestellt: CopyTradingEngine, TraderMonitorService, PolymarketWssClient, frm_main lesen die Limits jetzt aus den Account-Settings. - Neues Modul-Repo ICopyTradingAccountSettingsRepository (Collection ct_account_settings), in CopyTradingModule registriert. - StartupHydration: Settings laden + EINMALIGE Migration der Alt-Limits aus dem Roh-accounts-Dokument (keine konfigurierten Limits gehen verloren). - Build 0 Fehler. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
37f9d0fae2
commit
095c4b64aa
+8
-8
@@ -737,34 +737,34 @@ namespace PolyTraderSharp
|
||||
decimal SafeMaxUsd(decimal pct, decimal tot) => tot * (pct / 100m);
|
||||
decimal SafeUtil(decimal curr, decimal maxUsd) => maxUsd > 0 ? (curr / maxUsd) * 100m : 0m;
|
||||
|
||||
decimal max6 = SafeMaxUsd(acc.perMaxTime6h, acc.TotalBalance);
|
||||
decimal max6 = SafeMaxUsd(_copyState.GetAccountSettings(acc.AccountId).perMaxTime6h, acc.TotalBalance);
|
||||
dgv_dashboard_detaillaufzeit.Rows.Add(
|
||||
"< 6h",
|
||||
$"{acc.perMaxTime6h:F2}%",
|
||||
$"{_copyState.GetAccountSettings(acc.AccountId).perMaxTime6h:F2}%",
|
||||
$"${max6:F2}",
|
||||
$"{SafeUtil(under6, max6):F2}%",
|
||||
$"${under6:F2}");
|
||||
|
||||
decimal max24 = SafeMaxUsd(acc.perMaxTime24h, acc.TotalBalance);
|
||||
decimal max24 = SafeMaxUsd(_copyState.GetAccountSettings(acc.AccountId).perMaxTime24h, acc.TotalBalance);
|
||||
dgv_dashboard_detaillaufzeit.Rows.Add(
|
||||
"< 24h",
|
||||
$"{acc.perMaxTime24h:F2}%",
|
||||
$"{_copyState.GetAccountSettings(acc.AccountId).perMaxTime24h:F2}%",
|
||||
$"${max24:F2}",
|
||||
$"{SafeUtil(under24, max24):F2}%",
|
||||
$"${under24:F2}");
|
||||
|
||||
decimal max72 = SafeMaxUsd(acc.perMaxTime72h, acc.TotalBalance);
|
||||
decimal max72 = SafeMaxUsd(_copyState.GetAccountSettings(acc.AccountId).perMaxTime72h, acc.TotalBalance);
|
||||
dgv_dashboard_detaillaufzeit.Rows.Add(
|
||||
"< 72h",
|
||||
$"{acc.perMaxTime72h:F2}%",
|
||||
$"{_copyState.GetAccountSettings(acc.AccountId).perMaxTime72h:F2}%",
|
||||
$"${max72:F2}",
|
||||
$"{SafeUtil(under72, max72):F2}%",
|
||||
$"${under72:F2}");
|
||||
|
||||
decimal maxOver72 = SafeMaxUsd(acc.perMaxTimeNone, acc.TotalBalance);
|
||||
decimal maxOver72 = SafeMaxUsd(_copyState.GetAccountSettings(acc.AccountId).perMaxTimeNone, acc.TotalBalance);
|
||||
dgv_dashboard_detaillaufzeit.Rows.Add(
|
||||
"> 72h",
|
||||
$"{acc.perMaxTimeNone:F2}%",
|
||||
$"{_copyState.GetAccountSettings(acc.AccountId).perMaxTimeNone:F2}%",
|
||||
$"${maxOver72:F2}",
|
||||
$"{SafeUtil(over72, maxOver72):F2}%",
|
||||
$"${over72:F2}");
|
||||
|
||||
Reference in New Issue
Block a user