From 51fbef6072f45a1fb52d1c76ff663e2c9d152d8c Mon Sep 17 00:00:00 2001 From: cryptooda Date: Mon, 6 Oct 2025 21:35:48 +0700 Subject: [PATCH] Fix position status when checkbroker say no --- .../Bots/TradingBotBase.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/Managing.Application/Bots/TradingBotBase.cs b/src/Managing.Application/Bots/TradingBotBase.cs index b0cd15eb..5dd0ee35 100644 --- a/src/Managing.Application/Bots/TradingBotBase.cs +++ b/src/Managing.Application/Bots/TradingBotBase.cs @@ -1086,9 +1086,24 @@ public class TradingBotBase : ITradingBot var reason = $"Cannot open position. There is already a position open for {Config.Ticker} on the broker."; - if (previousPosition != null && orders.Count >= 2) + if (previousPosition != null) { - await SetPositionStatus(previousPosition.SignalIdentifier, PositionStatus.Filled); + if (orders.Count >= 2) + { + await SetPositionStatus(previousPosition.SignalIdentifier, PositionStatus.Filled); + } + else + { + // Broker already has an open position, cancel the internally created (DB) position + await SetPositionStatus(previousPosition.SignalIdentifier, PositionStatus.Canceled); + if (!Config.IsForBacktest) + { + await UpdatePositionDatabase(previousPosition); + } + + reason += + " Position open on broker; internal position has been marked as Canceled."; + } } else {