corrections

This commit is contained in:
Miha Kralj
2024-10-13 17:18:31 -07:00
parent 2236f5f483
commit bbefc72d73
65 changed files with 669 additions and 1087 deletions
+15 -7
View File
@@ -6,14 +6,11 @@ namespace QuanTAlib;
public class JmaIndicator : Indicator, IWatchlistIndicator
{
[InputParameter("Periods", sortIndex: 1, 1, 1000, 1, 0)]
public int Periods { get; set; } = 14;
public int Periods { get; set; } = 10;
[InputParameter("Phase", sortIndex: 2, -100, 100, 1, 0)]
public double Phase { get; set; } = 0;
[InputParameter("VShort", sortIndex: 3, 1, 100, 1, 0)]
public int VShort { get; set; } = 10;
[InputParameter("Data source", sortIndex: 4, variants: [
"Open", SourceType.Open,
"High", SourceType.High,
@@ -28,12 +25,17 @@ public class JmaIndicator : Indicator, IWatchlistIndicator
])]
public SourceType Source { get; set; } = SourceType.Close;
[InputParameter("Show cold values", sortIndex: 21)]
public bool ShowColdValues { get; set; } = true;
private Jma? ma;
protected LineSeries? Series;
protected string? SourceName;
public int MinHistoryDepths => Periods * 2;
public int MinHistoryDepths => Math.Max(65,Periods * 2);
int IWatchlistIndicator.MinHistoryDepths => MinHistoryDepths;
public override string ShortName => $"JMA {Periods}:{Phase}:{SourceName}";
public JmaIndicator()
{
OnBackGround = true;
@@ -47,7 +49,7 @@ public class JmaIndicator : Indicator, IWatchlistIndicator
protected override void OnInit()
{
ma = new Jma(Periods, Phase, VShort);
ma = new Jma(Periods, Phase);
SourceName = Source.ToString();
base.OnInit();
}
@@ -58,7 +60,13 @@ public class JmaIndicator : Indicator, IWatchlistIndicator
TValue result = ma!.Calc(input);
Series!.SetValue(result.Value);
Series!.SetMarker(0, Color.Transparent); //OnPaintChart draws the line, hidden here
}
public override string ShortName => $"JMA {Periods}:{Phase}:{VShort}:{SourceName}";
public override void OnPaintChart(PaintChartEventArgs args)
{
base.OnPaintChart(args);
this.PaintSmoothCurve(args, Series!, ma!.WarmupPeriod, showColdValues: ShowColdValues, tension: 0.2);
this.DrawText(args, Description);
}
}