using System; using System.Collections.Generic; namespace NT8.Core.Analytics { /// /// Base report model. /// public class Report { public string ReportName { get; set; } public DateTime GeneratedAtUtc { get; set; } public PerformanceMetrics SummaryMetrics { get; set; } public Report() { GeneratedAtUtc = DateTime.UtcNow; SummaryMetrics = new PerformanceMetrics(); } } /// /// Daily report. /// public class DailyReport : Report { public DateTime Date { get; set; } public Dictionary GradePnL { get; set; } public DailyReport() { ReportName = "Daily"; GradePnL = new Dictionary(); } } /// /// Weekly report. /// public class WeeklyReport : Report { public DateTime WeekStart { get; set; } public DateTime WeekEnd { get; set; } public Dictionary StrategyPnL { get; set; } public WeeklyReport() { ReportName = "Weekly"; StrategyPnL = new Dictionary(); } } /// /// Monthly report. /// public class MonthlyReport : Report { public int Year { get; set; } public int Month { get; set; } public Dictionary SymbolPnL { get; set; } public MonthlyReport() { ReportName = "Monthly"; SymbolPnL = new Dictionary(); } } /// /// Trade blotter representation. /// public class TradeBlotterReport { public DateTime GeneratedAtUtc { get; set; } public List Trades { get; set; } public TradeBlotterReport() { GeneratedAtUtc = DateTime.UtcNow; Trades = new List(); } } /// /// Equity curve point series. /// public class EquityCurve { public List Points { get; set; } public EquityCurve() { Points = new List(); } } /// /// Equity point model. /// public class EquityPoint { public DateTime Time { get; set; } public double Equity { get; set; } public double Drawdown { get; set; } } /// /// Sort direction. /// public enum SortDirection { Asc, Desc } }