Fix multiple message
This commit is contained in:
@@ -339,7 +339,6 @@ public class TradingBot : Bot, ITradingBot
|
||||
|
||||
private async Task ManagePositions()
|
||||
{
|
||||
// Update positions - iterate through positions instead of signals for better synchronization
|
||||
foreach (var position in Positions.Where(p => !p.IsFinished()))
|
||||
{
|
||||
var signalForPosition = Signals.FirstOrDefault(s => s.Identifier == position.SignalIdentifier);
|
||||
@@ -358,7 +357,7 @@ public class TradingBot : Bot, ITradingBot
|
||||
}
|
||||
|
||||
// Ensure signal status is correctly set to PositionOpen if position is not finished
|
||||
if (signalForPosition.Status != SignalStatus.PositionOpen)
|
||||
if (signalForPosition.Status != SignalStatus.PositionOpen && position.Status != PositionStatus.Finished)
|
||||
{
|
||||
await LogInformation(
|
||||
$"Updating signal {signalForPosition.Identifier} status from {signalForPosition.Status} to PositionOpen");
|
||||
@@ -446,12 +445,12 @@ public class TradingBot : Bot, ITradingBot
|
||||
var currentTime = Config.IsForBacktest ? OptimizedCandles.Last().Date : DateTime.UtcNow;
|
||||
var timeSinceRequest = currentTime - positionForSignal.Open.Date;
|
||||
var waitTimeMinutes = 10;
|
||||
|
||||
|
||||
if (timeSinceRequest.TotalMinutes >= waitTimeMinutes)
|
||||
{
|
||||
await LogWarning(
|
||||
$"Too many open orders ({orders.Count()}) for unfilled position and {waitTimeMinutes} minutes have passed. Canceling all orders and marking position as canceled.");
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
await ExchangeService.CancelOrder(Account, Config.Ticker);
|
||||
@@ -461,7 +460,7 @@ public class TradingBot : Bot, ITradingBot
|
||||
{
|
||||
await LogWarning($"Failed to cancel orders: {ex.Message}");
|
||||
}
|
||||
|
||||
|
||||
await SetPositionStatus(signal.Identifier, PositionStatus.Canceled);
|
||||
SetSignalStatus(signal.Identifier, SignalStatus.Expired);
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user