Refactor pagination sorting parameters across multiple controllers and services to use the new SortDirection enum; update related API models and TypeScript definitions for consistency. Fix minor documentation and naming inconsistencies in the Bot and Data controllers.
This commit is contained in:
@@ -47,7 +47,7 @@ public interface IBotService
|
||||
/// <param name="ticker">Filter by ticker (partial match, case-insensitive)</param>
|
||||
/// <param name="agentName">Filter by agent name (partial match, case-insensitive)</param>
|
||||
/// <param name="sortBy">Sort field</param>
|
||||
/// <param name="sortDirection">Sort direction ("Asc" or "Desc")</param>
|
||||
/// <param name="sortDirection">Sort direction</param>
|
||||
/// <param name="showOnlyProfitable">Whether to show only profitable bots (ROI > 0)</param>
|
||||
/// <returns>Tuple containing the bots for the current page and total count</returns>
|
||||
Task<(IEnumerable<Bot> Bots, int TotalCount)> GetBotsPaginatedAsync(
|
||||
@@ -58,7 +58,7 @@ public interface IBotService
|
||||
string? ticker = null,
|
||||
string? agentName = null,
|
||||
BotSortableColumn sortBy = BotSortableColumn.CreateDate,
|
||||
string sortDirection = "Desc",
|
||||
SortDirection sortDirection = SortDirection.Desc,
|
||||
bool showOnlyProfitable = false);
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace Managing.Application.Abstractions
|
||||
{
|
||||
public interface IScenarioService
|
||||
{
|
||||
Task<Scenario> CreateScenario(string name, List<string> strategies, int? loopbackPeriod = 1);
|
||||
Task<Scenario> CreateScenario(string name, List<string> strategies, int loopbackPeriod = 1);
|
||||
Task<IEnumerable<IndicatorBase>> GetIndicatorsAsync();
|
||||
Task<bool> UpdateScenario(string name, List<string> strategies, int? loopbackPeriod);
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ public class JobService
|
||||
if (backtestRequest.Config.Scenario != null)
|
||||
{
|
||||
var sReq = backtestRequest.Config.Scenario;
|
||||
scenario = new LightScenario(sReq.Name, sReq.LoopbackPeriod)
|
||||
scenario = new LightScenario(sReq.Name, sReq.LookbackPeriod)
|
||||
{
|
||||
Indicators = sReq.Indicators?.Select(ind => new LightIndicator(ind.Name, ind.Type)
|
||||
{
|
||||
|
||||
@@ -176,7 +176,7 @@ public class BacktestFuturesBot : TradingBotBase, ITradingBot
|
||||
throw new ArgumentNullException(nameof(Config.Scenario), "Config.Scenario cannot be null");
|
||||
|
||||
// Use TradingBox.GetSignal for backtest with pre-calculated indicators
|
||||
var backtestSignal = TradingBox.GetSignal(candles, Config.Scenario, Signals, Config.Scenario.LoopbackPeriod,
|
||||
var backtestSignal = TradingBox.GetSignal(candles, Config.Scenario, Signals, Config.Scenario.LookbackPeriod,
|
||||
preCalculatedIndicatorValues);
|
||||
if (backtestSignal == null) return;
|
||||
|
||||
|
||||
@@ -180,7 +180,7 @@ public class BacktestSpotBot : TradingBotBase, ITradingBot
|
||||
throw new ArgumentNullException(nameof(Config.Scenario), "Config.Scenario cannot be null");
|
||||
|
||||
// Use TradingBox.GetSignal for backtest with pre-calculated indicators
|
||||
var backtestSignal = TradingBox.GetSignal(candles, Config.Scenario, Signals, Config.Scenario.LoopbackPeriod,
|
||||
var backtestSignal = TradingBox.GetSignal(candles, Config.Scenario, Signals, Config.Scenario.LookbackPeriod,
|
||||
preCalculatedIndicatorValues);
|
||||
if (backtestSignal == null) return;
|
||||
|
||||
|
||||
@@ -487,7 +487,7 @@ namespace Managing.Application.ManageBot
|
||||
string? ticker = null,
|
||||
string? agentName = null,
|
||||
BotSortableColumn sortBy = BotSortableColumn.CreateDate,
|
||||
string sortDirection = "Desc",
|
||||
SortDirection sortDirection = SortDirection.Desc,
|
||||
bool showOnlyProfitable = false)
|
||||
{
|
||||
return await ServiceScopeHelpers.WithScopedService<IBotRepository, (IEnumerable<Bot> Bots, int TotalCount)>(
|
||||
|
||||
@@ -68,7 +68,7 @@ public class ScenarioRunnerGrain : Grain, IScenarioRunnerGrain
|
||||
|
||||
// Get candles as ordered List (already ordered by date from CandleStoreGrain)
|
||||
var candlesList = await GetCandlesAsync(tradingExchanges, config);
|
||||
|
||||
|
||||
if (candlesList.Count == 0)
|
||||
{
|
||||
_logger.LogWarning($"No candles available for {config.Ticker} for {config.Name}");
|
||||
@@ -88,7 +88,7 @@ public class ScenarioRunnerGrain : Grain, IScenarioRunnerGrain
|
||||
candlesList,
|
||||
config.Scenario,
|
||||
previousSignals,
|
||||
config.Scenario?.LoopbackPeriod ?? 1);
|
||||
config.Scenario?.LookbackPeriod ?? 1);
|
||||
|
||||
if (signal != null && signal.Date > candle.Date)
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace Managing.Application.Scenarios
|
||||
_tradingService = tradingService;
|
||||
}
|
||||
|
||||
public async Task<Scenario> CreateScenario(string name, List<string> strategies, int? loopbackPeriod = 1)
|
||||
public async Task<Scenario> CreateScenario(string name, List<string> strategies, int loopbackPeriod = 1)
|
||||
{
|
||||
var scenario = new Scenario(name, loopbackPeriod);
|
||||
|
||||
@@ -77,7 +77,7 @@ namespace Managing.Application.Scenarios
|
||||
scenario.AddIndicator(await _tradingService.GetIndicatorByNameAsync(strategy));
|
||||
}
|
||||
|
||||
scenario.LoopbackPeriod = loopbackPeriod ?? 1;
|
||||
scenario.LookbackPeriod = loopbackPeriod ?? 1;
|
||||
await _tradingService.UpdateScenarioAsync(scenario);
|
||||
return true;
|
||||
}
|
||||
@@ -262,7 +262,7 @@ namespace Managing.Application.Scenarios
|
||||
}
|
||||
|
||||
scenario.Indicators.Clear();
|
||||
scenario.LoopbackPeriod = loopbackPeriod ?? 1;
|
||||
scenario.LookbackPeriod = loopbackPeriod ?? 1;
|
||||
|
||||
foreach (var strategyName in strategies)
|
||||
{
|
||||
|
||||
@@ -225,7 +225,7 @@ public class BundleBacktestWorker : BaseWorker<BundleBacktestWorker>
|
||||
if (runBacktestRequest.Config.Scenario != null)
|
||||
{
|
||||
var sReq = runBacktestRequest.Config.Scenario;
|
||||
scenario = new LightScenario(sReq.Name, sReq.LoopbackPeriod)
|
||||
scenario = new LightScenario(sReq.Name, sReq.LookbackPeriod)
|
||||
{
|
||||
Indicators = sReq.Indicators?.Select(i => new LightIndicator(i.Name, i.Type)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user