mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-17 01:58:06 +00:00
normalization of methods
This commit is contained in:
@@ -205,7 +205,7 @@ public class NormalizeTests
|
||||
}
|
||||
|
||||
// Static calculation
|
||||
var staticResult = Normalize.Calculate(tseries, 14);
|
||||
var staticResult = Normalize.Batch(tseries, 14);
|
||||
|
||||
// Streaming calculation
|
||||
var streamNorm = new Normalize(14);
|
||||
@@ -230,7 +230,7 @@ public class NormalizeTests
|
||||
double[] output = new double[values.Length];
|
||||
|
||||
// Span calculation
|
||||
Normalize.Calculate(values, output, 14);
|
||||
Normalize.Batch(values, output, 14);
|
||||
|
||||
// Streaming calculation
|
||||
var norm = new Normalize(14);
|
||||
@@ -247,9 +247,9 @@ public class NormalizeTests
|
||||
double[] source = { 1, 2, 3, 4, 5 };
|
||||
double[] output = new double[5];
|
||||
|
||||
Assert.Throws<ArgumentException>(() => Normalize.Calculate(Array.Empty<double>(), output));
|
||||
Assert.Throws<ArgumentException>(() => Normalize.Calculate(source, new double[3]));
|
||||
Assert.Throws<ArgumentException>(() => Normalize.Calculate(source, output, 0));
|
||||
Assert.Throws<ArgumentException>(() => Normalize.Batch(Array.Empty<double>(), output));
|
||||
Assert.Throws<ArgumentException>(() => Normalize.Batch(source, new double[3]));
|
||||
Assert.Throws<ArgumentException>(() => Normalize.Batch(source, output, 0));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -203,7 +203,7 @@ public class NormalizeValidationTests
|
||||
|
||||
// Batch
|
||||
double[] batchResults = new double[values.Length];
|
||||
Normalize.Calculate(values, batchResults, 14);
|
||||
Normalize.Batch(values, batchResults, 14);
|
||||
|
||||
// Compare all values
|
||||
for (int i = 0; i < values.Length; i++)
|
||||
@@ -233,12 +233,12 @@ public class NormalizeValidationTests
|
||||
tseries.Add(new TValue(bar.Time, bar.Close), true);
|
||||
}
|
||||
|
||||
var results2 = Normalize.Calculate(tseries, period);
|
||||
var results2 = Normalize.Batch(tseries, period);
|
||||
|
||||
// Mode 3: Static span Calculate
|
||||
double[] values = series.Select(b => b.Close).ToArray();
|
||||
double[] results3 = new double[values.Length];
|
||||
Normalize.Calculate(values, results3, period);
|
||||
Normalize.Batch(values, results3, period);
|
||||
|
||||
// Mode 4: Event-based chaining
|
||||
var source = new TSeries();
|
||||
|
||||
@@ -154,7 +154,7 @@ public sealed class Normalize : AbstractBase
|
||||
}
|
||||
}
|
||||
|
||||
public static TSeries Calculate(TSeries source, int period = 14)
|
||||
public static TSeries Batch(TSeries source, int period = 14)
|
||||
{
|
||||
var indicator = new Normalize(period);
|
||||
return indicator.Update(source);
|
||||
@@ -163,7 +163,7 @@ public sealed class Normalize : AbstractBase
|
||||
/// <summary>
|
||||
/// Calculates Min-Max Normalization over a span of values.
|
||||
/// </summary>
|
||||
public static void Calculate(ReadOnlySpan<double> source, Span<double> output, int period = 14)
|
||||
public static void Batch(ReadOnlySpan<double> source, Span<double> output, int period = 14)
|
||||
{
|
||||
if (source.Length == 0)
|
||||
{
|
||||
@@ -231,6 +231,13 @@ public sealed class Normalize : AbstractBase
|
||||
}
|
||||
}
|
||||
|
||||
public static (TSeries Results, Normalize Indicator) Calculate(TSeries source, int period = 14)
|
||||
{
|
||||
var indicator = new Normalize(period);
|
||||
TSeries results = indicator.Update(source);
|
||||
return (results, indicator);
|
||||
}
|
||||
|
||||
public override void Reset()
|
||||
{
|
||||
_buffer.Clear();
|
||||
@@ -238,4 +245,4 @@ public sealed class Normalize : AbstractBase
|
||||
_p_state = _state;
|
||||
Last = default;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user