using Exilion.TradingAtomics; using Managing.Infrastructure.Databases.MongoDb.Attributes; using Managing.Infrastructure.Databases.MongoDb.Configurations; using static Managing.Common.Enums; namespace Managing.Infrastructure.Databases.MongoDb.Collections { [BsonCollection("Backtests")] public class BacktestDto : Document { public decimal FinalPnl { get; set; } public int WinRate { get; set; } public decimal GrowthPercentage { get; set; } public decimal HodlPercentage { get; set; } public List Positions { get; set; } public List Signals { get; set; } public List Candles { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public MoneyManagementDto MoneyManagement { get; internal set; } public MoneyManagementDto OptimizedMoneyManagement { get; internal set; } public UserDto User { get; set; } public PerformanceMetrics Statistics { get; set; } public double Score { get; set; } // TradingBotConfig properties public string AccountName { get; set; } public Ticker Ticker { get; set; } public string ScenarioName { get; set; } public Timeframe Timeframe { get; set; } public bool IsForWatchingOnly { get; set; } public decimal BotTradingBalance { get; set; } public BotType BotType { get; set; } public bool IsForBacktest { get; set; } public int CooldownPeriod { get; set; } public int MaxLossStreak { get; set; } } }