using TradingPlatform.BusinessLayer;
using QuanTAlib;

public class EmaIndicator : IndicatorBase
{
    [InputParameter("Period", sortIndex: 1, 1, 2000, 1, 0)]
    public int Period { get; set; } = 10;

    [InputParameter("Use SMA for warmup", sortIndex: 5)]
    public bool UseSma { get; set; } = false;

    private Ema? ma;
    protected override AbstractBase QuanTAlib => ma!;
    public override string ShortName => $"EMA {Period} : {SourceName}";

    public EmaIndicator() : base()
    {
        Name = "EMA - Exponential Moving Average";
        Description = "Exponential Moving Average";
    }

    protected override void InitIndicator()
    {
        base.InitIndicator();
        ma = new Ema(period: Period, useSma: UseSma);
    }
}
