feat(simulation): add quant simulation microservice with virtual backtest broker and replay engine
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using FinlyticCore.Dtos.Simulation;
|
||||
|
||||
namespace FinlyticSimulation.Database.Entities;
|
||||
|
||||
[Table("simulation_runs")]
|
||||
public class SimulationRunEntity
|
||||
{
|
||||
[Key]
|
||||
public Guid Id { get; set; } = Guid.NewGuid();
|
||||
|
||||
[Required]
|
||||
[MaxLength(20)]
|
||||
public string Isin { get; set; } = string.Empty;
|
||||
|
||||
[MaxLength(30)]
|
||||
public string Symbol { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[MaxLength(50)]
|
||||
public string StrategyKey { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[MaxLength(10)]
|
||||
public string Timeframe { get; set; } = "15m";
|
||||
|
||||
public DateTime StartDateUtc { get; set; }
|
||||
|
||||
public DateTime EndDateUtc { get; set; }
|
||||
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal StartingCapital { get; set; }
|
||||
|
||||
public int TotalTrades { get; set; }
|
||||
|
||||
public int WinningTrades { get; set; }
|
||||
|
||||
public int LosingTrades { get; set; }
|
||||
|
||||
[Column(TypeName = "decimal(6,2)")]
|
||||
public decimal WinRatePercent { get; set; }
|
||||
|
||||
[Column(TypeName = "decimal(8,4)")]
|
||||
public decimal ProfitFactor { get; set; }
|
||||
|
||||
[Column(TypeName = "decimal(6,2)")]
|
||||
public decimal MaxDrawdownPercent { get; set; }
|
||||
|
||||
[Column(TypeName = "decimal(8,2)")]
|
||||
public decimal TotalReturnPercent { get; set; }
|
||||
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal ExpectancyEur { get; set; }
|
||||
|
||||
[Column(TypeName = "decimal(8,4)")]
|
||||
public decimal SharpeRatio { get; set; }
|
||||
|
||||
public BacktestReportDto ReportJson { get; set; } = null!;
|
||||
|
||||
public DateTime CreatedAtUtc { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
Reference in New Issue
Block a user