Fix worker and signal

This commit is contained in:
2025-07-21 23:30:54 +07:00
parent 83ed78a1fa
commit 27c1e9d1ba
13 changed files with 132 additions and 60 deletions

View File

@@ -200,7 +200,7 @@ namespace Managing.Application.Backtesting
}
tradingBot.User = user;
await tradingBot.LoadAccount();
tradingBot.Account = await GetAccountFromConfig(config);
var result =
await GetBacktestingResult(config, tradingBot, candles, user, withCandles, requestId, metadata);
@@ -215,7 +215,16 @@ namespace Managing.Application.Backtesting
private async Task<Account> GetAccountFromConfig(TradingBotConfig config)
{
var account = await _accountService.GetAccount(config.AccountName, false, false);
var accounts = _accountService.GetAccounts(false, false).ToArray();
var account = accounts.FirstOrDefault(a =>
a.Name.Equals(config.AccountName, StringComparison.OrdinalIgnoreCase) &&
a.Exchange == TradingExchanges.GmxV2);
if (account == null && accounts.Any())
{
account = accounts.First();
}
if (account != null)
{
return account;
@@ -606,9 +615,10 @@ namespace Managing.Application.Backtesting
_backtestRepository.DeleteBundleBacktestRequestByIdForUser(user, id);
}
public IEnumerable<BundleBacktestRequest> GetPendingBundleBacktestRequests()
public IEnumerable<BundleBacktestRequest> GetBundleBacktestRequestsByStatus(BundleBacktestRequestStatus status)
{
return _backtestRepository.GetPendingBundleBacktestRequests();
// Use the repository method to get all bundles, then filter by status
return _backtestRepository.GetBundleBacktestRequestsByStatus(status);
}
/// <summary>

View File

@@ -167,6 +167,7 @@ public class TradingBot : Bot, ITradingBot
public async Task LoadAccount()
{
if (Config.IsForBacktest) return;
var account = await AccountService.GetAccount(Config.AccountName, false, false);
if (account == null)
{

View File

@@ -31,9 +31,7 @@ public class NotifyBundleBacktestWorker : BaseWorker<NotifyBundleBacktestWorker>
try
{
// Fetch all running bundle requests
var runningBundles = _backtester.GetPendingBundleBacktestRequests()
.Where(b => b.Status == BundleBacktestRequestStatus.Running)
.ToList();
var runningBundles = _backtester.GetBundleBacktestRequestsByStatus(BundleBacktestRequestStatus.Running);
foreach (var bundle in runningBundles)
{
@@ -53,7 +51,8 @@ public class NotifyBundleBacktestWorker : BaseWorker<NotifyBundleBacktestWorker>
var lightResponse = backtest as LightBacktest;
if (lightResponse != null)
{
await _hubContext.Clients.Group($"bundle-{requestId}").SendAsync("BundleBacktestUpdate", lightResponse, stoppingToken);
await _hubContext.Clients.Group($"bundle-{requestId}")
.SendAsync("BundleBacktestUpdate", lightResponse, stoppingToken);
_sentBacktestIds[requestId].Add(backtest.Id);
}
}
@@ -70,4 +69,4 @@ public class NotifyBundleBacktestWorker : BaseWorker<NotifyBundleBacktestWorker>
_logger.LogError(ex, "Error in NotifyBundleBacktestWorker");
}
}
}
}