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
}
}