Add updates scenario and strategy

This commit is contained in:
2025-02-26 20:37:32 +07:00
parent 4302bb8435
commit 655ebb6df0
7 changed files with 120 additions and 4 deletions

View File

@@ -26,5 +26,9 @@ namespace Managing.Application.Abstractions
bool DeleteStrategies();
bool DeleteScenarios();
bool UpdateScenario(string name, List<string> strategies, int? loopbackPeriod);
bool UpdateStrategy(StrategyType strategyType, string name, int? period, int? fastPeriods, int? slowPeriods,
int? signalPeriods, double? multiplier, int? stochPeriods, int? smoothPeriods, int? cyclePeriods);
}
}

View File

@@ -138,5 +138,53 @@ namespace Managing.Application.Scenarios
return true;
}
public bool UpdateScenario(string name, List<string> strategies, int? loopbackPeriod)
{
try
{
var scenario = _tradingService.GetScenarioByName(name);
scenario.Strategies.Clear();
foreach (var strategy in strategies)
{
scenario.AddStrategy(_tradingService.GetStrategyByName(strategy));
}
scenario.LoopbackPeriod = loopbackPeriod ?? 1;
_tradingService.UpdateScenario(scenario);
return true;
}
catch (Exception e)
{
Console.WriteLine(e);
return false;
}
}
public bool UpdateStrategy(StrategyType strategyType, string name, int? period, int? fastPeriods,
int? slowPeriods,
int? signalPeriods, double? multiplier, int? stochPeriods, int? smoothPeriods, int? cyclePeriods)
{
try
{
var strategy = _tradingService.GetStrategyByName(name);
strategy.Type = strategyType;
strategy.Period = period;
strategy.FastPeriods = fastPeriods;
strategy.SlowPeriods = slowPeriods;
strategy.SignalPeriods = signalPeriods;
strategy.Multiplier = multiplier;
strategy.StochPeriods = stochPeriods;
strategy.SmoothPeriods = smoothPeriods;
strategy.CyclePeriods = cyclePeriods;
_tradingService.UpdateStrategy(strategy);
return true;
}
catch (Exception e)
{
Console.WriteLine(e);
return false;
}
}
}
}

View File

@@ -268,6 +268,16 @@ public class TradingService : ITradingService
var fundingRates = _exchangeService.GetFundingRates();
}
public void UpdateScenario(Scenario scenario)
{
_tradingRepository.UpdateScenario(scenario);
}
public void UpdateStrategy(Strategy strategy)
{
_tradingRepository.UpdateStrategy(strategy);
}
private async Task ManageTrader(TraderFollowup a, List<Ticker> tickers)
{
var shortAddress = a.Account.Address.Substring(0, 6);