mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-22 20:48:04 +00:00
normalization of methods
This commit is contained in:
@@ -277,7 +277,7 @@ public class CvTests
|
||||
{
|
||||
ts.Add(new TValue(times[i], close[i]));
|
||||
}
|
||||
var batchResult = Cv.Calculate(ts, 20);
|
||||
var batchResult = Cv.Batch(ts, 20);
|
||||
|
||||
Assert.Equal(iterativeResult, batchResult[batchResult.Count - 1].Value, 1e-8);
|
||||
}
|
||||
@@ -295,7 +295,7 @@ public class CvTests
|
||||
ts.Add(new TValue(times[i], close[i]));
|
||||
}
|
||||
|
||||
var result = Cv.Calculate(ts, 20);
|
||||
var result = Cv.Batch(ts, 20);
|
||||
|
||||
Assert.Equal(100, result.Count);
|
||||
Assert.True(double.IsFinite(result[result.Count - 1].Value));
|
||||
@@ -310,10 +310,10 @@ public class CvTests
|
||||
ts.Add(new TValue(DateTime.UtcNow.AddMinutes(i), 100 + i));
|
||||
}
|
||||
|
||||
Assert.Throws<ArgumentException>(() => Cv.Calculate(ts, 0));
|
||||
Assert.Throws<ArgumentException>(() => Cv.Calculate(ts, -1));
|
||||
Assert.Throws<ArgumentException>(() => Cv.Calculate(ts, 5, 0.0)); // alpha = 0
|
||||
Assert.Throws<ArgumentException>(() => Cv.Calculate(ts, 5, 0.5, 0.6)); // alpha + beta >= 1
|
||||
Assert.Throws<ArgumentException>(() => Cv.Batch(ts, 0));
|
||||
Assert.Throws<ArgumentException>(() => Cv.Batch(ts, -1));
|
||||
Assert.Throws<ArgumentException>(() => Cv.Batch(ts, 5, 0.0)); // alpha = 0
|
||||
Assert.Throws<ArgumentException>(() => Cv.Batch(ts, 5, 0.5, 0.6)); // alpha + beta >= 1
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -229,13 +229,13 @@ public class CvValidationTests
|
||||
streamingCv.Update(new TValue(times[i], close[i]));
|
||||
}
|
||||
|
||||
// Batch calculation using Calculate (TSeries -> TSeries)
|
||||
// Batch calculation using Batch(TSeries -> TSeries)
|
||||
var source = new TSeries();
|
||||
for (int i = 0; i < bars.Count; i++)
|
||||
{
|
||||
source.Add(times[i], close[i]);
|
||||
}
|
||||
var batchResult = Cv.Calculate(source, 20, 0.2, 0.7);
|
||||
var batchResult = Cv.Batch(source, 20, 0.2, 0.7);
|
||||
|
||||
// Compare last values
|
||||
Assert.Equal(batchResult.Last.Value, streamingCv.Last.Value, 8);
|
||||
@@ -266,7 +266,7 @@ public class CvValidationTests
|
||||
}
|
||||
|
||||
// TSeries batch using Calculate
|
||||
var batch = Cv.Calculate(source, 20, 0.2, 0.7);
|
||||
var batch = Cv.Batch(source, 20, 0.2, 0.7);
|
||||
|
||||
// Compare
|
||||
Assert.Equal(batch.Last.Value, streaming.Last.Value, 10);
|
||||
|
||||
@@ -286,7 +286,7 @@ public sealed class Cv : AbstractBase
|
||||
/// <summary>
|
||||
/// Calculates CV for entire series.
|
||||
/// </summary>
|
||||
public static TSeries Calculate(TSeries source, int period = 20, double alpha = 0.2, double beta = 0.7)
|
||||
public static TSeries Batch(TSeries source, int period = 20, double alpha = 0.2, double beta = 0.7)
|
||||
{
|
||||
if (period <= 0)
|
||||
{
|
||||
@@ -430,4 +430,11 @@ public sealed class Cv : AbstractBase
|
||||
output[i] = double.IsFinite(result) ? result : 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
public static (TSeries Results, Cv Indicator) Calculate(TSeries source, int period = 20, double alpha = 0.2, double beta = 0.7)
|
||||
{
|
||||
var indicator = new Cv(period, alpha, beta);
|
||||
TSeries results = indicator.Update(source);
|
||||
return (results, indicator);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user