Add genetic backtest to worker

This commit is contained in:
2025-11-09 03:32:08 +07:00
parent 7dba29c66f
commit 7e08e63dd1
30 changed files with 5056 additions and 232 deletions

View File

@@ -15,18 +15,18 @@ namespace Managing.Application.Backtests;
/// <summary>
/// Service for creating and managing backtest jobs in the queue
/// </summary>
public class BacktestJobService
public class JobService
{
private readonly IBacktestJobRepository _jobRepository;
private readonly IJobRepository _jobRepository;
private readonly IBacktestRepository _backtestRepository;
private readonly IKaigenService _kaigenService;
private readonly ILogger<BacktestJobService> _logger;
private readonly ILogger<JobService> _logger;
public BacktestJobService(
IBacktestJobRepository jobRepository,
public JobService(
IJobRepository jobRepository,
IBacktestRepository backtestRepository,
IKaigenService kaigenService,
ILogger<BacktestJobService> logger)
ILogger<JobService> logger)
{
_jobRepository = jobRepository;
_backtestRepository = backtestRepository;
@@ -37,7 +37,7 @@ public class BacktestJobService
/// <summary>
/// Creates a single backtest job
/// </summary>
public async Task<BacktestJob> CreateJobAsync(
public async Task<Job> CreateJobAsync(
TradingBotConfig config,
DateTime startDate,
DateTime endDate,
@@ -63,10 +63,10 @@ public class BacktestJobService
try
{
var job = new BacktestJob
var job = new Job
{
UserId = user.Id,
Status = BacktestJobStatus.Pending,
Status = JobStatus.Pending,
JobType = JobType.Backtest,
Priority = priority,
ConfigJson = JsonSerializer.Serialize(config),
@@ -109,11 +109,11 @@ public class BacktestJobService
/// <summary>
/// Creates multiple backtest jobs from bundle variants
/// </summary>
public async Task<List<BacktestJob>> CreateBundleJobsAsync(
public async Task<List<Job>> CreateBundleJobsAsync(
BundleBacktestRequest bundleRequest,
List<RunBacktestRequest> backtestRequests)
{
var jobs = new List<BacktestJob>();
var jobs = new List<Job>();
var creditRequestId = (string?)null;
try
@@ -203,10 +203,10 @@ public class BacktestJobService
UseForDynamicStopLoss = backtestRequest.Config.UseForDynamicStopLoss
};
var job = new BacktestJob
var job = new Job
{
UserId = bundleRequest.User.Id,
Status = BacktestJobStatus.Pending,
Status = JobStatus.Pending,
JobType = JobType.Backtest,
Priority = 0, // All bundle jobs have same priority
ConfigJson = JsonSerializer.Serialize(backtestConfig),