Fix worker and signal
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user