30 lines
1.2 KiB
C#
30 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace FinlyticSimulation.Database.Entities;
|
|
|
|
/// <summary>
|
|
/// A saved, named-by-(Isin, StrategyKey) set of tunable indicator parameter overrides (see
|
|
/// <c>TechnicalContext.ParameterOverrides</c>), so a parameter set found useful via repeated backtest
|
|
/// experimentation can be reused without retyping it every time. Purely a backtesting-side convenience - never
|
|
/// read by live scanning (<c>FinlyticTechnicals.Services.TechnicalScoringEngine</c> never queries this table).
|
|
/// </summary>
|
|
[Table("simulation_strategy_parameters")]
|
|
public class SimulationStrategyParameterEntity
|
|
{
|
|
[Required]
|
|
[MaxLength(20)]
|
|
public string Isin { get; set; } = string.Empty;
|
|
|
|
[Required]
|
|
[MaxLength(50)]
|
|
public string StrategyKey { get; set; } = string.Empty;
|
|
|
|
/// <summary>Keyed by <c>"{StrategyKey}.{ParameterName}"</c>, matching <c>TechnicalContext.ParameterOverrides</c> 1:1.</summary>
|
|
public Dictionary<string, decimal> Parameters { get; set; } = new();
|
|
|
|
public DateTime UpdatedAtUtc { get; set; } = DateTime.UtcNow;
|
|
}
|