Slice 3 (Fable-Fixes): K3 Demo-Resolution + M5 Demo-Score/Auto-Pause
K3 – Demo-Auto-Close bei Marktauflösung funktioniert wieder: - System-SELLs (TraderId==0) sind vom Ownership-Check ausgenommen. Regel in reine CopyTradingRisk.IsAuthorizedSell(signalTraderId, positionSourceTraderId) extrahiert (System ODER Besitzer) und in der Engine genutzt. Vorher lehnte der Check jedes System-Close ab (Copy-Positionen haben SourceTraderId>0) -> Demo-Positionen schlossen bei Resolution nie, 30s-Loop feuerte endlos. - Resolved-Cache (_resolvedDemoMarkets) in PollDemoExpirationsAsync: aufgeloeste Maerkte werden nicht erneut angefragt (kein Log-Spam / keine unnoetige API-Last). M5 – Auto-Pause in der Demo-Phase nicht mehr wirkungslos: - Anzeige-Spalten (CopyPnl30d etc.) zeigen Live-Kennzahlen, sobald vorhanden, sonst Demo-Kennzahlen -> Demo-Validierung ist sichtbar statt leer. - Harte Auto-Pause wirkt bewusst NUR auf Live-Ergebnissen. - Kadenz: stuendlicher Light-Check (Auto-Pause) statt nur alle 12h; schwere History-Analyse bleibt 12h (schliessen sich pro Tick aus, kein Doppellauf). Tests: 5 neue (IsAuthorizedSell). Build 0 Fehler, 223 Tests gruen, --smoke-ui ok. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
a3d3d50681
commit
8252219163
@@ -203,5 +203,18 @@ namespace PolyTrader.Tests
|
||||
{
|
||||
Assert.Equal(expected, IsBelowPolymarketMinimum((decimal)shares, (decimal)usdc));
|
||||
}
|
||||
|
||||
// ---------------- IsAuthorizedSell (K3) ----------------
|
||||
|
||||
[Theory]
|
||||
[InlineData(0, 7, true)] // System-Signal schließt fremde Copy-Position (Demo-Resolution)
|
||||
[InlineData(0, 0, true)] // System-Signal, keine Herkunft
|
||||
[InlineData(7, 7, true)] // Master schließt eigene Position
|
||||
[InlineData(7, 9, false)] // Master 7 darf Position von Master 9 nicht schließen
|
||||
[InlineData(9, 0, false)] // echter Master darf herrenlose Position nicht kapern
|
||||
public void IsAuthorizedSell_allows_owner_and_system(int signalTraderId, int positionSourceTraderId, bool expected)
|
||||
{
|
||||
Assert.Equal(expected, IsAuthorizedSell(signalTraderId, positionSourceTraderId));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user