using TradingPlatform.BusinessLayer;
namespace QuanTAlib;

public class QemaIndicator : IndicatorBase
{
    [InputParameter("alpha 1", sortIndex: 1, minimum: 0.01, maximum: 1.0, increment: 0.01, decimalPlaces: 2)]
    public double k1 { get; set; } = 0.2;

    [InputParameter("alpha 2", sortIndex: 2, minimum: 0.01, maximum: 1.0, increment: 0.01, decimalPlaces: 2)]
    public double k2 { get; set; } = 0.3;
    [InputParameter("alpha 3", sortIndex: 3, minimum: 0.01, maximum: 1.0, increment: 0.01, decimalPlaces: 2)]
    public double k3 { get; set; } = 0.4;
    [InputParameter("alpha 4", sortIndex: 4, minimum: 0.01, maximum: 1.0, increment: 0.01, decimalPlaces: 2)]
    public double k4 { get; set; } = 0.5;
    private Qema? ma;
    protected override AbstractBase QuanTAlib => ma!;
    public override string ShortName => $"QEMA {k1:F2} : {k2:F2} : {k3:F2} : {k4:F2} :{SourceName}";

    public QemaIndicator() : base()
    {
        Name = "QEMA - Quad Exponential Moving Average";
        Description = "Quad Exponential Moving Average";
    }

    protected override void InitIndicator()
    {
        base.InitIndicator();
        ma = new Qema(k1, k2, k3, k4);
    }
}
