Remove candle from getBacktestsForUser
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -284,14 +284,14 @@ namespace Managing.Application.Backtesting
|
||||
var score = backtest.Score;
|
||||
var tradeCount = backtest.Positions?.Count ?? 0;
|
||||
var winRate = backtest.WinRate;
|
||||
|
||||
|
||||
// Calculate risk-reward ratio from money management settings
|
||||
var riskRewardRatio = 0.0;
|
||||
if (backtest.Config.MoneyManagement != null)
|
||||
{
|
||||
var stopLoss = (double)backtest.Config.MoneyManagement.StopLoss;
|
||||
var takeProfit = (double)backtest.Config.MoneyManagement.TakeProfit;
|
||||
|
||||
|
||||
if (stopLoss > 0 && takeProfit > 0)
|
||||
{
|
||||
riskRewardRatio = takeProfit / stopLoss;
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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>();
|
||||
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user