Add support for backtesting trading types in LiveTradingBotGrain and TradingBox
- Introduced handling for TradingType.BacktestFutures and TradingType.BacktestSpot in LiveTradingBotGrain. - Updated TradingBox to map backtest trading types to their respective futures and spot types.
This commit is contained in:
@@ -549,6 +549,8 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable
|
||||
{
|
||||
TradingType.Futures => new FuturesBot(logger, _scopeFactory, config, streamProvider),
|
||||
TradingType.Spot => new SpotBot(logger, _scopeFactory, config, streamProvider),
|
||||
TradingType.BacktestFutures => new FuturesBot(logger, _scopeFactory, config, streamProvider),
|
||||
TradingType.BacktestSpot => new SpotBot(logger, _scopeFactory, config, streamProvider),
|
||||
_ => throw new InvalidOperationException($"Unsupported TradingType for live trading: {config.TradingType}")
|
||||
};
|
||||
|
||||
|
||||
@@ -448,7 +448,7 @@ public class BundleBacktestHealthCheckWorker : BackgroundService
|
||||
|
||||
bundle.Status = failedJobs == 0
|
||||
? BundleBacktestRequestStatus.Completed
|
||||
: BundleBacktestRequestStatus.Completed;
|
||||
: BundleBacktestRequestStatus.Failed;
|
||||
bundle.CompletedBacktests = completedJobs;
|
||||
bundle.FailedBacktests = failedJobs;
|
||||
bundle.CompletedAt = DateTime.UtcNow;
|
||||
@@ -464,7 +464,6 @@ public class BundleBacktestHealthCheckWorker : BackgroundService
|
||||
// Some jobs are still pending or running - bundle is genuinely stuck
|
||||
// Reset any stale running jobs back to pending
|
||||
var runningJobs = jobs.Where(j => j.Status == JobStatus.Running).ToList();
|
||||
var resetJobCount = 0;
|
||||
|
||||
foreach (var job in runningJobs)
|
||||
{
|
||||
@@ -482,14 +481,13 @@ public class BundleBacktestHealthCheckWorker : BackgroundService
|
||||
job.AssignedWorkerId = null;
|
||||
job.LastHeartbeat = null;
|
||||
await jobRepository.UpdateAsync(job);
|
||||
resetJobCount++;
|
||||
}
|
||||
}
|
||||
|
||||
// Update bundle timestamp to give it another chance
|
||||
bundle.UpdatedAt = DateTime.UtcNow;
|
||||
bundle.ErrorMessage =
|
||||
$"Bundle was stuck. Reset {resetJobCount} stale jobs to pending.";
|
||||
$"Bundle was stuck. Reset {runningJobs.Count(j => j.Status == JobStatus.Pending)} stale jobs to pending.";
|
||||
}
|
||||
|
||||
await backtestRepository.UpdateBundleBacktestRequestAsync(bundle);
|
||||
|
||||
Reference in New Issue
Block a user