Refactor SpotBot position history logging

- Updated SpotBot to log detailed information when a closing position is found in the history, including position direction and dates.
- Enhanced logging for scenarios where no closing position is found or when position history is unavailable, improving clarity on position status.
- Removed outdated log messages to streamline the logging process.
This commit is contained in:
2026-01-05 18:58:27 +07:00
parent 13474b6abb
commit f578d8dc22

View File

@@ -510,23 +510,40 @@ public class SpotBot : TradingBotBase
if (positionHistory != null && positionHistory.Count != 0) if (positionHistory != null && positionHistory.Count != 0)
{ {
var recentPosition = positionHistory // Find a SELL/SHORT position that occurred AFTER our open position was created
// This indicates our LONG position was closed
var closingPosition = positionHistory
.Where(p => p.OriginDirection == TradeDirection.Short &&
p.Date >= position.Date)
.OrderByDescending(p => p.Date) .OrderByDescending(p => p.Date)
.FirstOrDefault(); .FirstOrDefault();
if (recentPosition != null) if (closingPosition != null)
{ {
await LogDebugAsync( await LogDebugAsync(
$"✅ Spot Position Found in History\n" + $"✅ Closing Position Found in History\n" +
$"Position: `{position.Identifier}`\n" + $"Position: `{position.Identifier}`\n" +
$"Ticker: `{recentPosition.Ticker}`\n" + $"Ticker: `{closingPosition.Ticker}`\n" +
$"Date: `{recentPosition.Date}`"); $"Direction: `{closingPosition.OriginDirection}` (SHORT = Sold/Closed)\n" +
$"Date: `{closingPosition.Date}`\n" +
$"Our Position Open Date: `{position.Date}`");
return (true, false); return (true, false);
} }
}
await LogDebugAsync( await LogDebugAsync(
$" No Spot Position Found in Exchange History\nPosition: `{position.Identifier}`\nPosition may still be open or data is delayed"); $" No Closing Position Found in History\n" +
$"Position: `{position.Identifier}`\n" +
$"Found {positionHistory.Count} history entries but none indicate position was closed\n" +
$"Position is likely still open");
}
else
{
await LogDebugAsync(
$" No Position History Available\n" +
$"Position: `{position.Identifier}`\n" +
$"Position is likely still open");
}
return (false, false); return (false, false);
} }
catch (Exception ex) catch (Exception ex)