From 0aafab82b3f0da75679cc158830357d604b55ce9 Mon Sep 17 00:00:00 2001 From: cryptooda Date: Sat, 16 Aug 2025 19:18:23 +0700 Subject: [PATCH] Fix decimal in amount to trade --- .../Trading/Handlers/OpenPositionCommandHandler.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Managing.Application/Trading/Handlers/OpenPositionCommandHandler.cs b/src/Managing.Application/Trading/Handlers/OpenPositionCommandHandler.cs index c0106c1b..1e614331 100644 --- a/src/Managing.Application/Trading/Handlers/OpenPositionCommandHandler.cs +++ b/src/Managing.Application/Trading/Handlers/OpenPositionCommandHandler.cs @@ -35,7 +35,8 @@ namespace Managing.Application.Trading.Handlers position.InitiatorIdentifier = request.InitiatorIdentifier; // Always use BotTradingBalance directly as the balance to risk - decimal balanceToRisk = request.AmountToTrade; + // Round to 2 decimal places to prevent precision errors + decimal balanceToRisk = Math.Round(request.AmountToTrade, 2); // Minimum check if (balanceToRisk < Constants.GMX.Config.MinimumPositionAmount) @@ -105,7 +106,7 @@ namespace Managing.Application.Trading.Handlers if (!request.IsForPaperTrading) { await tradingService.InsertPositionAsync(position); - + // Notify platform summary about the opened position try { @@ -119,7 +120,7 @@ namespace Managing.Application.Trading.Handlers Volume = position.Open.Price * position.Open.Quantity * position.Open.Leverage, Direction = position.OriginDirection }; - + await platformGrain.OnPositionOpenedAsync(positionOpenedEvent); } }