refactor: Simplify TSeries and Dema constructors, and streamline benchmark methods for improved readability

This commit is contained in:
Miha Kralj
2025-12-08 18:43:23 -05:00
parent 53a2dd2c05
commit 5f57cbbe74
9 changed files with 20 additions and 67 deletions
+7 -12
View File
@@ -11,12 +11,12 @@ namespace QuanTAlib;
/// </summary>
public class TBarSeries : IReadOnlyList<TBar>
{
protected readonly List<long> _t = new();
protected readonly List<double> _o = new();
protected readonly List<double> _h = new();
protected readonly List<double> _l = new();
protected readonly List<double> _c = new();
protected readonly List<double> _v = new();
protected readonly List<long> _t;
protected readonly List<double> _o;
protected readonly List<double> _h;
protected readonly List<double> _l;
protected readonly List<double> _c;
protected readonly List<double> _v;
public string Name { get; set; } = "Bar";
public event Action<TBar>? Pub;
@@ -34,13 +34,8 @@ public class TBarSeries : IReadOnlyList<TBar>
public TSeries C => Close;
public TSeries V => Volume;
public TBarSeries()
public TBarSeries() : this(0)
{
Open = new TSeries(_t, _o) { Name = "Open" };
High = new TSeries(_t, _h) { Name = "High" };
Low = new TSeries(_t, _l) { Name = "Low" };
Close = new TSeries(_t, _c) { Name = "Close" };
Volume = new TSeries(_t, _v) { Name = "Volume" };
}
public TBarSeries(int capacity)
+1 -3
View File
@@ -20,10 +20,8 @@ namespace QuanTAlib;
public event Action<TValue>? Pub;
public TSeries()
public TSeries() : this(0)
{
_t = new List<long>();
_v = new List<double>();
}
public TSeries(int capacity)
+1 -1
View File
@@ -120,7 +120,7 @@ public sealed class Dema : ITValuePublisher
public TSeries Update(TSeries source)
{
if (source.Count == 0) return new TSeries(new List<long>(), new List<double>());
if (source.Count == 0) return new TSeries();
int len = source.Count;
var t = new List<long>(len);
+2 -2
View File
@@ -149,7 +149,7 @@ public sealed class Ema : ITValuePublisher
public TSeries Update(TSeries source)
{
if (source.Count == 0) return new TSeries(new List<long>(), new List<double>());
if (source.Count == 0) return new TSeries();
int len = source.Count;
var t = new List<long>(len);
@@ -291,7 +291,7 @@ public sealed class Ema : ITValuePublisher
if (source.Length == 0) return;
State state = State.New();
var state = State.New();
double lastValid = 0;
CalculateCore(source, output, alpha, ref state, ref lastValid);
+1 -1
View File
@@ -137,7 +137,7 @@ public sealed class Sma : ITValuePublisher
public TSeries Update(TSeries source)
{
if (source.Count == 0) return new TSeries(new List<long>(), new List<double>());
if (source.Count == 0) return new TSeries();
int len = source.Count;
var t = new List<long>(len);
+1 -1
View File
@@ -129,7 +129,7 @@ public sealed class Tema : ITValuePublisher
public TSeries Update(TSeries source)
{
if (source.Count == 0) return new TSeries(new List<long>(), new List<double>());
if (source.Count == 0) return new TSeries();
int len = source.Count;
var t = new List<long>(len);
+1 -1
View File
@@ -141,7 +141,7 @@ public sealed class Trima : ITValuePublisher
public TSeries Update(TSeries source)
{
if (source.Count == 0) return new TSeries(new List<long>(), new List<double>());
if (source.Count == 0) return new TSeries();
int len = source.Count;
var t = new List<long>(len);
+1 -1
View File
@@ -141,7 +141,7 @@ public sealed class Wma : ITValuePublisher
public TSeries Update(TSeries source)
{
if (source.Count == 0) return new TSeries(new List<long>(), new List<double>());
if (source.Count == 0) return new TSeries();
int len = source.Count;
var t = new List<long>(len);