mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-21 03:58:04 +00:00
normalization of methods
This commit is contained in:
@@ -401,7 +401,7 @@ public class CointegrationTests
|
||||
seriesB.Add(barB.Time, barB.Close);
|
||||
}
|
||||
|
||||
var result = Cointegration.Calculate(seriesA, seriesB, DefaultPeriod);
|
||||
var result = Cointegration.Batch(seriesA, seriesB, DefaultPeriod);
|
||||
|
||||
Assert.Equal(seriesA.Count, result.Count);
|
||||
}
|
||||
@@ -423,7 +423,7 @@ public class CointegrationTests
|
||||
}
|
||||
|
||||
// Batch calculation
|
||||
var batchResult = Cointegration.Calculate(seriesA, seriesB, DefaultPeriod);
|
||||
var batchResult = Cointegration.Batch(seriesA, seriesB, DefaultPeriod);
|
||||
|
||||
// Streaming calculation
|
||||
var streamingIndicator = new Cointegration(DefaultPeriod);
|
||||
@@ -464,7 +464,7 @@ public class CointegrationTests
|
||||
seriesB.Add(bar.Time, bar.Close);
|
||||
}
|
||||
|
||||
var ex = Assert.Throws<ArgumentException>(() => Cointegration.Calculate(seriesA, seriesB, DefaultPeriod));
|
||||
var ex = Assert.Throws<ArgumentException>(() => Cointegration.Batch(seriesA, seriesB, DefaultPeriod));
|
||||
Assert.Equal("seriesB", ex.ParamName);
|
||||
}
|
||||
|
||||
@@ -485,7 +485,7 @@ public class CointegrationTests
|
||||
}
|
||||
|
||||
// Span calculation
|
||||
Cointegration.Calculate(seriesA, seriesB, output, DefaultPeriod);
|
||||
Cointegration.Batch(seriesA, seriesB, output, DefaultPeriod);
|
||||
|
||||
// Streaming calculation
|
||||
var streamingIndicator = new Cointegration(DefaultPeriod);
|
||||
@@ -515,7 +515,7 @@ public class CointegrationTests
|
||||
var seriesB = new double[30];
|
||||
var output = new double[50];
|
||||
|
||||
var ex = Assert.Throws<ArgumentException>(() => Cointegration.Calculate(seriesA, seriesB, output, DefaultPeriod));
|
||||
var ex = Assert.Throws<ArgumentException>(() => Cointegration.Batch(seriesA, seriesB, output, DefaultPeriod));
|
||||
Assert.Equal("seriesB", ex.ParamName);
|
||||
}
|
||||
|
||||
@@ -526,7 +526,7 @@ public class CointegrationTests
|
||||
var seriesB = new double[50];
|
||||
var output = new double[30];
|
||||
|
||||
var ex = Assert.Throws<ArgumentException>(() => Cointegration.Calculate(seriesA, seriesB, output, DefaultPeriod));
|
||||
var ex = Assert.Throws<ArgumentException>(() => Cointegration.Batch(seriesA, seriesB, output, DefaultPeriod));
|
||||
Assert.Equal("output", ex.ParamName);
|
||||
}
|
||||
|
||||
@@ -537,7 +537,7 @@ public class CointegrationTests
|
||||
var seriesB = new double[50];
|
||||
var output = new double[50];
|
||||
|
||||
var ex = Assert.Throws<ArgumentException>(() => Cointegration.Calculate(seriesA, seriesB, output, 1));
|
||||
var ex = Assert.Throws<ArgumentException>(() => Cointegration.Batch(seriesA, seriesB, output, 1));
|
||||
Assert.Equal("period", ex.ParamName);
|
||||
}
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ public class CointegrationValidationTests
|
||||
}
|
||||
|
||||
// Batch calculation
|
||||
var batchResult = Cointegration.Calculate(seriesA, seriesB, 20);
|
||||
var batchResult = Cointegration.Batch(seriesA, seriesB, 20);
|
||||
|
||||
// Streaming calculation
|
||||
var streamingIndicator = new Cointegration(20);
|
||||
@@ -160,7 +160,7 @@ public class CointegrationValidationTests
|
||||
}
|
||||
|
||||
// Span calculation
|
||||
Cointegration.Calculate(seriesA, seriesB, output, 20);
|
||||
Cointegration.Batch(seriesA, seriesB, output, 20);
|
||||
|
||||
// Streaming calculation
|
||||
var streamingIndicator = new Cointegration(20);
|
||||
|
||||
@@ -127,7 +127,7 @@ public sealed class Cointegration : AbstractBase
|
||||
/// <remarks>Not supported for bi-input indicator. Use Calculate(seriesA, seriesB, period) instead.</remarks>
|
||||
public override TSeries Update(TSeries source)
|
||||
{
|
||||
throw new NotSupportedException("Cointegration requires two inputs. Use Calculate(seriesA, seriesB, period).");
|
||||
throw new NotSupportedException("Cointegration requires two inputs. Use Batch(seriesA, seriesB, period).");
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
@@ -472,7 +472,7 @@ public sealed class Cointegration : AbstractBase
|
||||
/// <summary>
|
||||
/// Calculates cointegration for two time series.
|
||||
/// </summary>
|
||||
public static TSeries Calculate(TSeries seriesA, TSeries seriesB, int period = 20)
|
||||
public static TSeries Batch(TSeries seriesA, TSeries seriesB, int period = 20)
|
||||
{
|
||||
if (seriesA.Count != seriesB.Count)
|
||||
{
|
||||
@@ -499,7 +499,7 @@ public sealed class Cointegration : AbstractBase
|
||||
/// <summary>
|
||||
/// Static batch calculation for span-based processing.
|
||||
/// </summary>
|
||||
public static void Calculate(
|
||||
public static void Batch(
|
||||
ReadOnlySpan<double> seriesA,
|
||||
ReadOnlySpan<double> seriesB,
|
||||
Span<double> output,
|
||||
@@ -528,4 +528,12 @@ public sealed class Cointegration : AbstractBase
|
||||
output[i] = result.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static (TSeries Results, Cointegration Indicator) Calculate(TSeries seriesA, TSeries seriesB, int period = 20)
|
||||
{
|
||||
var indicator = new Cointegration(period);
|
||||
TSeries results = Batch(seriesA, seriesB, period);
|
||||
return (results, indicator);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user