Update the gmx for the execution fees

This commit is contained in:
2025-10-17 00:49:20 +07:00
parent d6122aeb27
commit 3f1b5f09e0
3 changed files with 289 additions and 31 deletions

View File

@@ -312,34 +312,6 @@ public class TradingBotBase : ITradingBot
await UpdatePosition(signalForPosition, position);
}
// Second, process all finished positions to ensure they are updated in the database
// TODO : This should be removed in the future, when we have a better way to handle positions
if (!Config.IsForBacktest)
foreach (var position in Positions.Values.Where(p => p.IsFinished()))
{
try
{
var positionInDatabase = await ServiceScopeHelpers.WithScopedService<ITradingService, Position>(
_scopeFactory,
async tradingService =>
{
return await tradingService.GetPositionByIdentifierAsync(position.Identifier);
});
if (positionInDatabase != null && positionInDatabase.Status != position.Status)
{
await UpdatePositionDatabase(position);
await LogInformation(
$"💾 Database Update\nPosition: `{position.Identifier}`\nStatus: `{position.Status}`\nUpdated in database");
}
}
catch (Exception ex)
{
await LogWarning(
$"Failed to update finished position {position.Identifier} in database: {ex.Message}");
}
}
// Then, open positions for signals waiting for a position open
// But first, check if we already have a position for any of these signals
var signalsWaitingForPosition = Signals.Values.Where(s => s.Status == SignalStatus.WaitingForPosition);