Slice 5 (Fable-Fixes): H3 – BUY-Skip waehrend ExitPending
Entscheidung Richard (Variante A): Re-buyt der Master, waehrend unsere SELL-Leiter die Position abverkauft, wird der BUY uebersprungen statt zugekauft. Sonst stockte der BUY die Position auf, die die Leiter danach inkl. neuer Shares zum alten Floor verkauft (oekonomisch widerspruechlich). Die Leiter fuehrt den Exit sauber zu Ende. Guard am Anfang des Engine-BUY-Pfads (spiegelt den bestehenden SELL-ExitPending-Guard). Build 0 Fehler, 233 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
bdcd3641e4
commit
84b2b276d9
@@ -292,6 +292,18 @@ namespace PolyTraderSharp.Services
|
||||
|
||||
if (signal.Side == "BUY")
|
||||
{
|
||||
// H3 (Entscheidung Richard): Läuft für diese Position bereits eine SELL-Eskalationsleiter
|
||||
// (ExitPending), NICHT zukaufen. Sonst stockt der BUY die Position auf, die die Leiter
|
||||
// danach inkl. der neuen Shares zum alten Floor verkauft (ökonomisch widersprüchlich).
|
||||
// Wir überspringen den BUY und lassen die Leiter den Exit sauber zu Ende führen.
|
||||
if (account.OpenPositions.TryGetValue(signal.TokenId, out var exitingPos) && exitingPos.ExitPending)
|
||||
{
|
||||
_logger.TradeReasoning($"⏸️ Trade BUY [{signal.MarketQuestion}] [{shareType}] übersprungen:\n" +
|
||||
$" Konto: {account.Name}\n" +
|
||||
$" Begründung: SELL-Eskalationsleiter läuft (Exit aktiv) – kein Zukauf während des Ausstiegs.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (signal.Price > settings.MaxBuyPrice)
|
||||
{
|
||||
_logger.TradeReasoning($"❌ Trade BUY [{signal.MarketQuestion}] [{shareType}] verworfen (Risk Limit):\n" +
|
||||
|
||||
Reference in New Issue
Block a user