Remove warning for backtest when signal is expired
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
using Managing.Application.Abstractions;
|
||||
using Managing.Application.Abstractions.Services;
|
||||
using Managing.Application.Trading.Commands;
|
||||
using Managing.Common;
|
||||
using Managing.Domain.Accounts;
|
||||
using Managing.Domain.Shared.Helpers;
|
||||
using Managing.Domain.Trades;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
@@ -21,12 +23,15 @@ public class ClosePositionCommandHandler(
|
||||
{
|
||||
try
|
||||
{
|
||||
// Get Trade
|
||||
var account = await accountService.GetAccountById(request.AccountId, false, false);
|
||||
if (request.Position == null)
|
||||
Account account = null;
|
||||
if (!request.IsForBacktest)
|
||||
{
|
||||
_ = await exchangeService.CancelOrder(account, request.Position.Ticker);
|
||||
return request.Position;
|
||||
account = await accountService.GetAccountById(request.AccountId, false, false);
|
||||
if (request.Position == null)
|
||||
{
|
||||
_ = await exchangeService.CancelOrder(account, request.Position.Ticker);
|
||||
return request.Position;
|
||||
}
|
||||
}
|
||||
|
||||
var isForPaperTrading = request.IsForBacktest;
|
||||
@@ -48,12 +53,14 @@ public class ClosePositionCommandHandler(
|
||||
request.Position.ProfitAndLoss =
|
||||
TradingBox.GetProfitAndLoss(request.Position, request.Position.Open.Quantity, lastPrice,
|
||||
request.Position.Open.Leverage);
|
||||
|
||||
|
||||
// Add UI fees for closing the position (broker closed it)
|
||||
var closingPositionSizeUsd = (lastPrice * request.Position.Open.Quantity) * request.Position.Open.Leverage;
|
||||
var closingPositionSizeUsd =
|
||||
(lastPrice * request.Position.Open.Quantity) * request.Position.Open.Leverage;
|
||||
var closingUiFees = TradingHelpers.CalculateClosingUiFees(closingPositionSizeUsd);
|
||||
request.Position.AddUiFees(closingUiFees);
|
||||
|
||||
request.Position.AddGasFees(Constants.GMX.Config.GasFeePerTransaction);
|
||||
|
||||
await tradingService.UpdatePositionAsync(request.Position);
|
||||
return request.Position;
|
||||
}
|
||||
@@ -78,6 +85,7 @@ public class ClosePositionCommandHandler(
|
||||
var closingPositionSizeUsd = (lastPrice * closedPosition.Quantity) * request.Position.Open.Leverage;
|
||||
var closingUiFees = TradingHelpers.CalculateClosingUiFees(closingPositionSizeUsd);
|
||||
request.Position.AddUiFees(closingUiFees);
|
||||
request.Position.AddGasFees(Constants.GMX.Config.GasFeePerTransaction);
|
||||
|
||||
if (!request.IsForBacktest)
|
||||
await tradingService.UpdatePositionAsync(request.Position);
|
||||
|
||||
Reference in New Issue
Block a user