Add saved bundle status
This commit is contained in:
@@ -153,14 +153,17 @@ public class BacktestController : BaseController
|
||||
{
|
||||
return BadRequest("scoreMin must be between 0 and 100");
|
||||
}
|
||||
|
||||
if (scoreMax.HasValue && (scoreMax < 0 || scoreMax > 100))
|
||||
{
|
||||
return BadRequest("scoreMax must be between 0 and 100");
|
||||
}
|
||||
|
||||
if (winrateMin.HasValue && (winrateMin < 0 || winrateMin > 100))
|
||||
{
|
||||
return BadRequest("winrateMin must be between 0 and 100");
|
||||
}
|
||||
|
||||
if (winrateMax.HasValue && (winrateMax < 0 || winrateMax > 100))
|
||||
{
|
||||
return BadRequest("winrateMax must be between 0 and 100");
|
||||
@@ -170,10 +173,12 @@ public class BacktestController : BaseController
|
||||
{
|
||||
return BadRequest("scoreMin must be less than or equal to scoreMax");
|
||||
}
|
||||
|
||||
if (winrateMin.HasValue && winrateMax.HasValue && winrateMin > winrateMax)
|
||||
{
|
||||
return BadRequest("winrateMin must be less than or equal to winrateMax");
|
||||
}
|
||||
|
||||
if (maxDrawdownMax.HasValue && maxDrawdownMax < 0)
|
||||
{
|
||||
return BadRequest("maxDrawdownMax must be greater than or equal to 0");
|
||||
@@ -186,7 +191,7 @@ public class BacktestController : BaseController
|
||||
var indicatorList = string.IsNullOrWhiteSpace(indicators)
|
||||
? Array.Empty<string>()
|
||||
: indicators.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
|
||||
|
||||
|
||||
var filter = new BacktestsFilter
|
||||
{
|
||||
NameContains = string.IsNullOrWhiteSpace(name) ? null : name.Trim(),
|
||||
@@ -364,14 +369,17 @@ public class BacktestController : BaseController
|
||||
{
|
||||
return BadRequest("scoreMin must be between 0 and 100");
|
||||
}
|
||||
|
||||
if (scoreMax.HasValue && (scoreMax < 0 || scoreMax > 100))
|
||||
{
|
||||
return BadRequest("scoreMax must be between 0 and 100");
|
||||
}
|
||||
|
||||
if (winrateMin.HasValue && (winrateMin < 0 || winrateMin > 100))
|
||||
{
|
||||
return BadRequest("winrateMin must be between 0 and 100");
|
||||
}
|
||||
|
||||
if (winrateMax.HasValue && (winrateMax < 0 || winrateMax > 100))
|
||||
{
|
||||
return BadRequest("winrateMax must be between 0 and 100");
|
||||
@@ -381,10 +389,12 @@ public class BacktestController : BaseController
|
||||
{
|
||||
return BadRequest("scoreMin must be less than or equal to scoreMax");
|
||||
}
|
||||
|
||||
if (winrateMin.HasValue && winrateMax.HasValue && winrateMin > winrateMax)
|
||||
{
|
||||
return BadRequest("winrateMin must be less than or equal to winrateMax");
|
||||
}
|
||||
|
||||
if (maxDrawdownMax.HasValue && maxDrawdownMax < 0)
|
||||
{
|
||||
return BadRequest("maxDrawdownMax must be greater than or equal to 0");
|
||||
@@ -619,8 +629,9 @@ public class BacktestController : BaseController
|
||||
}
|
||||
|
||||
// Calculate total number of backtests
|
||||
var totalBacktests = request.DateTimeRanges.Count * request.MoneyManagementVariants.Count * request.TickerVariants.Count;
|
||||
|
||||
var totalBacktests = request.DateTimeRanges.Count * request.MoneyManagementVariants.Count *
|
||||
request.TickerVariants.Count;
|
||||
|
||||
try
|
||||
{
|
||||
var user = await GetUser();
|
||||
@@ -651,7 +662,9 @@ public class BacktestController : BaseController
|
||||
TotalBacktests = totalBacktests,
|
||||
CompletedBacktests = 0,
|
||||
FailedBacktests = 0,
|
||||
Status = BundleBacktestRequestStatus.Pending,
|
||||
Status = request.SaveAsTemplate
|
||||
? BundleBacktestRequestStatus.Saved
|
||||
: BundleBacktestRequestStatus.Pending,
|
||||
Name = request.Name
|
||||
};
|
||||
|
||||
@@ -687,7 +700,8 @@ public class BacktestController : BaseController
|
||||
Timeframe = request.UniversalConfig.Timeframe,
|
||||
IsForWatchingOnly = request.UniversalConfig.IsForWatchingOnly,
|
||||
BotTradingBalance = request.UniversalConfig.BotTradingBalance,
|
||||
Name = $"{request.UniversalConfig.BotName}_{ticker}_{dateRange.StartDate:yyyyMMdd}_{dateRange.EndDate:yyyyMMdd}",
|
||||
Name =
|
||||
$"{request.UniversalConfig.BotName}_{ticker}_{dateRange.StartDate:yyyyMMdd}_{dateRange.EndDate:yyyyMMdd}",
|
||||
FlipPosition = request.UniversalConfig.FlipPosition,
|
||||
CooldownPeriod = request.UniversalConfig.CooldownPeriod,
|
||||
MaxLossStreak = request.UniversalConfig.MaxLossStreak,
|
||||
@@ -712,15 +726,16 @@ public class BacktestController : BaseController
|
||||
WatchOnly = request.UniversalConfig.WatchOnly,
|
||||
Save = request.UniversalConfig.Save,
|
||||
WithCandles = request.UniversalConfig.WithCandles,
|
||||
MoneyManagement = mmVariant.MoneyManagement != null ?
|
||||
new MoneyManagement
|
||||
MoneyManagement = mmVariant.MoneyManagement != null
|
||||
? new MoneyManagement
|
||||
{
|
||||
Name = mmVariant.MoneyManagement.Name,
|
||||
Timeframe = mmVariant.MoneyManagement.Timeframe,
|
||||
StopLoss = mmVariant.MoneyManagement.StopLoss,
|
||||
TakeProfit = mmVariant.MoneyManagement.TakeProfit,
|
||||
Leverage = mmVariant.MoneyManagement.Leverage
|
||||
} : null
|
||||
}
|
||||
: null
|
||||
};
|
||||
|
||||
backtestRequests.Add(backtestRequest);
|
||||
@@ -980,4 +995,4 @@ public class BacktestController : BaseController
|
||||
Timeframe = moneyManagementRequest.Timeframe
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user