using static Managing.Common.Enums; namespace Managing.Domain.Backtests; public class BacktestScoringParams { public double SharpeRatio { get; } public double GrowthPercentage { get; } public double HodlPercentage { get; } public double WinRate { get; } public double TotalPnL { get; } public double Fees { get; } public int TradeCount { get; } public TimeSpan MaxDrawdownRecoveryTime { get; } // New properties for enhanced scoring public decimal MaxDrawdown { get; } public decimal InitialBalance { get; } public decimal TradingBalance { get; } public DateTime StartDate { get; } public DateTime EndDate { get; } public Timeframe Timeframe { get; } public LightMoneyManagement MoneyManagement { get; } public BacktestScoringParams( double sharpeRatio, double growthPercentage, double hodlPercentage, double winRate, double totalPnL, double fees, int tradeCount, TimeSpan maxDrawdownRecoveryTime, decimal maxDrawdown = 0, decimal initialBalance = 0, decimal tradingBalance = 0, DateTime startDate = default, DateTime endDate = default, Timeframe timeframe = Timeframe.OneHour, LightMoneyManagement moneyManagement = null) { SharpeRatio = sharpeRatio; GrowthPercentage = growthPercentage; HodlPercentage = hodlPercentage; WinRate = winRate; TotalPnL = totalPnL; Fees = fees; TradeCount = tradeCount; MaxDrawdownRecoveryTime = maxDrawdownRecoveryTime; MaxDrawdown = maxDrawdown; InitialBalance = initialBalance; TradingBalance = tradingBalance; StartDate = startDate; EndDate = endDate; Timeframe = timeframe; MoneyManagement = moneyManagement; } }