Add custom scenario
This commit is contained in:
@@ -118,9 +118,9 @@ public class BacktestController : BaseController
|
||||
return BadRequest("Account name is required");
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(request.Config.ScenarioName))
|
||||
if (string.IsNullOrEmpty(request.Config.ScenarioName) && request.Config.Scenario == null)
|
||||
{
|
||||
return BadRequest("Scenario name is required");
|
||||
return BadRequest("Either scenario name or scenario object is required");
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(request.MoneyManagementName) && request.MoneyManagement == null)
|
||||
@@ -131,13 +131,9 @@ public class BacktestController : BaseController
|
||||
try
|
||||
{
|
||||
Backtest backtestResult = null;
|
||||
var scenario = _scenarioService.GetScenario(request.Config.ScenarioName);
|
||||
var account = await _accountService.GetAccount(request.Config.AccountName, true, false);
|
||||
var user = await GetUser();
|
||||
|
||||
if (scenario == null)
|
||||
return BadRequest("No scenario found");
|
||||
|
||||
// Get money management
|
||||
MoneyManagement moneyManagement;
|
||||
if (!string.IsNullOrEmpty(request.MoneyManagementName))
|
||||
@@ -152,13 +148,14 @@ public class BacktestController : BaseController
|
||||
moneyManagement?.FormatPercentage();
|
||||
}
|
||||
|
||||
// Update config with money management
|
||||
// Update config with money management - TradingBot will handle scenario loading
|
||||
var backtestConfig = new TradingBotConfig
|
||||
{
|
||||
AccountName = request.Config.AccountName,
|
||||
MoneyManagement = moneyManagement,
|
||||
Ticker = request.Config.Ticker,
|
||||
ScenarioName = request.Config.ScenarioName,
|
||||
Scenario = request.Config.Scenario,
|
||||
Timeframe = request.Config.Timeframe,
|
||||
IsForWatchingOnly = request.WatchOnly,
|
||||
BotTradingBalance = request.Balance,
|
||||
@@ -170,9 +167,8 @@ public class BacktestController : BaseController
|
||||
FlipOnlyWhenInProfit = request.Config.FlipOnlyWhenInProfit,
|
||||
FlipPosition = request.Config.FlipPosition,
|
||||
Name = request.Config.Name ??
|
||||
$"Backtest-{request.Config.ScenarioName}-{DateTime.UtcNow:yyyyMMdd-HHmmss}",
|
||||
$"Backtest-{request.Config.ScenarioName ?? request.Config.Scenario?.Name ?? "Custom"}-{DateTime.UtcNow:yyyyMMdd-HHmmss}",
|
||||
CloseEarlyWhenProfitable = request.Config.CloseEarlyWhenProfitable,
|
||||
Scenario = scenario,
|
||||
};
|
||||
|
||||
switch (request.Config.BotType)
|
||||
|
||||
Reference in New Issue
Block a user