Remove candle from getBacktestsForUser

This commit is contained in:
2025-07-09 16:55:47 +07:00
parent b2ccd63201
commit 387948a107
7 changed files with 9 additions and 38 deletions

View File

@@ -63,7 +63,7 @@ public class BacktestController : BaseController
public async Task<ActionResult<IEnumerable<Backtest>>> Backtests()
{
var user = await GetUser();
return Ok(await _backtester.GetBacktestsByUser(user));
return Ok(_backtester.GetBacktestsByUser(user));
}
/// <summary>

View File

@@ -44,7 +44,7 @@ namespace Managing.Application.Abstractions.Services
// Additional methods for backtest management
bool DeleteBacktest(string id);
bool DeleteBacktests();
Task<IEnumerable<Backtest>> GetBacktestsByUser(User user);
IEnumerable<Backtest> GetBacktestsByUser(User user);
Backtest GetBacktestByIdForUser(User user, string id);
bool DeleteBacktestByUser(User user, string id);
bool DeleteBacktestsByUser(User user);

View File

@@ -388,35 +388,9 @@ namespace Managing.Application.Backtesting
}
}
public async Task<IEnumerable<Backtest>> GetBacktestsByUser(User user)
public IEnumerable<Backtest> GetBacktestsByUser(User user)
{
var backtests = _backtestRepository.GetBacktestsByUser(user).ToList();
foreach (var backtest in backtests)
{
if (backtest.Candles == null || backtest.Candles.Count == 0 || backtest.Candles.Count < 10)
{
try
{
var candles = await _exchangeService.GetCandlesInflux(
user.Accounts.First().Exchange,
backtest.Config.Ticker,
backtest.StartDate,
backtest.Config.Timeframe,
backtest.EndDate);
if (candles != null && candles.Count > 0)
{
backtest.Candles = candles;
}
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to retrieve candles for backtest {Id}", backtest.Id);
}
}
}
return backtests;
}

View File

@@ -17,12 +17,12 @@ public class Backtest
TradingBotConfig config,
List<Position> positions,
List<Signal> signals,
List<Candle> candles)
List<Candle> candles = null)
{
Config = config;
Positions = positions;
Signals = signals;
Candles = candles;
Candles = candles != null ? candles : new List<Candle>();
WalletBalances = new List<KeyValuePair<DateTime, decimal>>();
IndicatorsValues = new Dictionary<IndicatorType, IndicatorsResultBase>();

View File

@@ -14,7 +14,6 @@ namespace Managing.Infrastructure.Databases.MongoDb.Collections
public TradingBotConfigDto Config { get; set; }
public List<PositionDto> Positions { get; set; }
public List<SignalDto> Signals { get; set; }
public List<CandleDto> Candles { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public MoneyManagementDto MoneyManagement { get; internal set; }

View File

@@ -137,8 +137,7 @@ public static class MongoMappers
var bTest = new Backtest(
config,
b.Positions?.Select(p => Map(p)).ToList() ?? new List<Position>(),
b.Signals?.Select(s => Map(s)).ToList() ?? new List<Signal>(),
b.Candles?.Select(c => Map(c)).ToList() ?? new List<Candle>())
b.Signals?.Select(s => Map(s)).ToList() ?? new List<Signal>())
{
FinalPnl = b.FinalPnl,
WinRate = b.WinRate,
@@ -171,7 +170,6 @@ public static class MongoMappers
Config = Map(result.Config),
Positions = Map(result.Positions),
Signals = result.Signals.Select(s => Map(s)).ToList(),
Candles = result.Candles.Select(c => Map(c)).ToList(),
MoneyManagement = Map(result.Config.MoneyManagement),
OptimizedMoneyManagement = Map(result.OptimizedMoneyManagement),
User = Map(result.User),

View File

@@ -2,7 +2,7 @@ import {ArrowDownIcon, ArrowUpIcon} from '@heroicons/react/solid'
import React from 'react'
import {useExpanded, useFilters, usePagination, useSortBy, useTable,} from 'react-table'
import type {TableInstanceWithHooks} from '../../../global/type'
import type {TableInstanceWithHooks} from '../../../global/type.tsx'
// Define a default UI for filtering
function DefaultColumnFilter({