Update vitejs + fix bot saving
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
using Managing.Application.Abstractions;
|
||||
using Managing.Application.Abstractions.Repositories;
|
||||
using Managing.Application.Abstractions.Services;
|
||||
using Managing.Application.Bots;
|
||||
using Managing.Core;
|
||||
using Managing.Core.FixedSizedQueue;
|
||||
using Managing.Domain.Accounts;
|
||||
using Managing.Domain.Backtests;
|
||||
using Managing.Domain.Bots;
|
||||
using Managing.Domain.Candles;
|
||||
using Managing.Domain.MoneyManagements;
|
||||
using Managing.Domain.Scenarios;
|
||||
@@ -86,10 +86,10 @@ namespace Managing.Application.Backtesting
|
||||
|
||||
var scalpingBot = _botFactory.CreateBacktestScalpingBot(config);
|
||||
scalpingBot.LoadScenario(scenario.Name);
|
||||
scalpingBot.User = user;
|
||||
await scalpingBot.LoadAccount();
|
||||
var candles = initialCandles ?? GetCandles(account, ticker, timeframe, startDate, endDate);
|
||||
var result = GetBacktestingResult(ticker, scenario, timeframe, scalpingBot, candles, balance, account,
|
||||
moneyManagement);
|
||||
var result = GetBacktestingResult(config, scalpingBot, candles);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
@@ -141,11 +141,11 @@ namespace Managing.Application.Backtesting
|
||||
|
||||
var flippingBot = _botFactory.CreateBacktestFlippingBot(config);
|
||||
flippingBot.LoadScenario(scenario.Name);
|
||||
flippingBot.User = user;
|
||||
await flippingBot.LoadAccount();
|
||||
|
||||
var candles = initialCandles ?? GetCandles(account, ticker, timeframe, startDate, endDate);
|
||||
var result = GetBacktestingResult(ticker, scenario, timeframe, flippingBot, candles, balance, account,
|
||||
moneyManagement);
|
||||
var result = GetBacktestingResult(config, flippingBot, candles);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
@@ -193,10 +193,10 @@ namespace Managing.Application.Backtesting
|
||||
|
||||
var bot = _botFactory.CreateBacktestScalpingBot(config);
|
||||
bot.LoadScenario(scenario.Name);
|
||||
bot.User = user;
|
||||
await bot.LoadAccount();
|
||||
|
||||
var result = GetBacktestingResult(ticker, scenario, timeframe, bot, candles, balance, account,
|
||||
moneyManagement);
|
||||
var result = GetBacktestingResult(config, bot, candles);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
@@ -235,10 +235,10 @@ namespace Managing.Application.Backtesting
|
||||
|
||||
var bot = _botFactory.CreateBacktestFlippingBot(config);
|
||||
bot.LoadScenario(scenario.Name);
|
||||
bot.User = user;
|
||||
await bot.LoadAccount();
|
||||
|
||||
var result = GetBacktestingResult(ticker, scenario, timeframe, bot, candles, balance, account,
|
||||
moneyManagement);
|
||||
var result = GetBacktestingResult(config, bot, candles);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
@@ -264,21 +264,16 @@ namespace Managing.Application.Backtesting
|
||||
}
|
||||
|
||||
private Backtest GetBacktestingResult(
|
||||
Ticker ticker,
|
||||
Scenario scenario,
|
||||
Timeframe timeframe,
|
||||
TradingBotConfig config,
|
||||
ITradingBot bot,
|
||||
List<Candle> candles,
|
||||
decimal balance,
|
||||
Account account,
|
||||
MoneyManagement moneyManagement)
|
||||
List<Candle> candles)
|
||||
{
|
||||
if (candles == null || candles.Count == 0)
|
||||
{
|
||||
throw new Exception("No candle to backtest");
|
||||
}
|
||||
|
||||
bot.WalletBalances.Add(candles.FirstOrDefault().Date, balance);
|
||||
bot.WalletBalances.Add(candles.FirstOrDefault().Date, config.BotTradingBalance);
|
||||
foreach (var candle in candles)
|
||||
{
|
||||
bot.OptimizedCandles.Enqueue(candle);
|
||||
@@ -294,9 +289,10 @@ namespace Managing.Application.Backtesting
|
||||
|
||||
var finalPnl = bot.GetProfitAndLoss();
|
||||
var winRate = bot.GetWinRate();
|
||||
var optimizedMoneyManagement = TradingBox.GetBestMoneyManagement(candles, bot.Positions, moneyManagement);
|
||||
var optimizedMoneyManagement =
|
||||
TradingBox.GetBestMoneyManagement(candles, bot.Positions, config.MoneyManagement);
|
||||
var stats = TradingHelpers.GetStatistics(bot.WalletBalances);
|
||||
var growthPercentage = TradingHelpers.GetGrowthFromInitalBalance(balance, finalPnl);
|
||||
var growthPercentage = TradingHelpers.GetGrowthFromInitalBalance(config.BotTradingBalance, finalPnl);
|
||||
var hodlPercentage = TradingHelpers.GetHodlPercentage(candles[0], candles.Last());
|
||||
|
||||
var scoringParams = new BacktestScoringParams(
|
||||
@@ -313,8 +309,7 @@ namespace Managing.Application.Backtesting
|
||||
|
||||
var score = BacktestScorer.CalculateTotalScore(scoringParams);
|
||||
|
||||
var result = new Backtest(ticker, scenario.Name, bot.Positions, bot.Signals.ToList(), timeframe, candles,
|
||||
bot.Config.BotType, account.Name)
|
||||
var result = new Backtest(config, bot.Positions, bot.Signals.ToList(), candles)
|
||||
{
|
||||
FinalPnl = finalPnl,
|
||||
WinRate = winRate,
|
||||
@@ -324,7 +319,6 @@ namespace Managing.Application.Backtesting
|
||||
WalletBalances = bot.WalletBalances.ToList(),
|
||||
Statistics = stats,
|
||||
OptimizedMoneyManagement = optimizedMoneyManagement,
|
||||
MoneyManagement = moneyManagement,
|
||||
StrategiesValues = AggregateValues(strategiesValues, bot.StrategiesValues),
|
||||
Score = score
|
||||
};
|
||||
@@ -430,9 +424,9 @@ namespace Managing.Application.Backtesting
|
||||
{
|
||||
var candles = await _exchangeService.GetCandlesInflux(
|
||||
user.Accounts.First().Exchange,
|
||||
backtest.Ticker,
|
||||
backtest.Config.Ticker,
|
||||
backtest.StartDate,
|
||||
backtest.Timeframe,
|
||||
backtest.Config.Timeframe,
|
||||
backtest.EndDate);
|
||||
|
||||
if (candles != null && candles.Count > 0)
|
||||
@@ -465,14 +459,15 @@ namespace Managing.Application.Backtesting
|
||||
try
|
||||
{
|
||||
// Get the account
|
||||
var account = new Account { Name = backtest.AccountName, Exchange = TradingExchanges.Binance };
|
||||
var account = new Account
|
||||
{ Name = backtest.Config.AccountName, Exchange = TradingExchanges.Evm };
|
||||
|
||||
// Use the stored start and end dates to retrieve candles
|
||||
var candles = _exchangeService.GetCandlesInflux(
|
||||
account.Exchange,
|
||||
backtest.Ticker,
|
||||
backtest.Config.Ticker,
|
||||
backtest.StartDate,
|
||||
backtest.Timeframe,
|
||||
backtest.Config.Timeframe,
|
||||
backtest.EndDate).Result;
|
||||
|
||||
if (candles != null && candles.Count > 0)
|
||||
|
||||
Reference in New Issue
Block a user