normalization of methods

This commit is contained in:
Miha Kralj
2026-02-10 21:33:16 -08:00
parent 915d7a007b
commit 6d6259a47d
527 changed files with 10525 additions and 2123 deletions
+7 -7
View File
@@ -465,7 +465,7 @@ public class HvTests
const int dataCount = 50;
var priceSeries = GeneratePriceSeries(dataCount);
var result = Hv.Calculate(priceSeries, period: 10);
var result = Hv.Batch(priceSeries, period: 10);
Assert.Equal(dataCount, result.Count);
}
@@ -657,7 +657,7 @@ public class HvTests
{
var prices = GeneratePriceSeries(100);
var result = Hv.Calculate(prices, period: 14);
var result = Hv.Batch(prices, period: 14);
Assert.Equal(100, result.Count);
Assert.True(double.IsFinite(result[result.Count - 1].Value));
@@ -668,7 +668,7 @@ public class HvTests
{
var bars = GenerateTestData(100);
var result = Hv.Calculate(bars, period: 14);
var result = Hv.Batch(bars, period: 14);
Assert.Equal(100, result.Count);
Assert.True(double.IsFinite(result[result.Count - 1].Value));
@@ -679,10 +679,10 @@ public class HvTests
{
var prices = GeneratePriceSeries(10);
Assert.Throws<ArgumentException>(() => Hv.Calculate(prices, period: 1));
Assert.Throws<ArgumentException>(() => Hv.Calculate(prices, period: 0));
Assert.Throws<ArgumentException>(() => Hv.Calculate(prices, period: -1));
Assert.Throws<ArgumentException>(() => Hv.Calculate(prices, period: 10, annualize: true, annualPeriods: 0));
Assert.Throws<ArgumentException>(() => Hv.Batch(prices, period: 1));
Assert.Throws<ArgumentException>(() => Hv.Batch(prices, period: 0));
Assert.Throws<ArgumentException>(() => Hv.Batch(prices, period: -1));
Assert.Throws<ArgumentException>(() => Hv.Batch(prices, period: 10, annualize: true, annualPeriods: 0));
}
[Fact]
+1 -1
View File
@@ -192,7 +192,7 @@ public class HvValidationTests
}
// Batch calculation
var batchResult = Hv.Calculate(prices, 14);
var batchResult = Hv.Batch(prices, 14);
// Compare last values
Assert.Equal(batchResult.Last.Value, streamingHv.Last.Value, 8);
+11 -3
View File
@@ -335,7 +335,7 @@ public sealed class Hv : AbstractBase
/// <param name="annualize">Whether to annualize.</param>
/// <param name="annualPeriods">Periods per year.</param>
/// <returns>A TSeries containing the volatility values.</returns>
public static TSeries Calculate(TSeries source, int period = 20, bool annualize = true, int annualPeriods = 252)
public static TSeries Batch(TSeries source, int period = 20, bool annualize = true, int annualPeriods = 252)
{
if (period < 2)
{
@@ -364,7 +364,7 @@ public sealed class Hv : AbstractBase
/// <summary>
/// Calculates HV for a bar series (static).
/// </summary>
public static TSeries Calculate(TBarSeries source, int period = 20, bool annualize = true, int annualPeriods = 252)
public static TSeries Batch(TBarSeries source, int period = 20, bool annualize = true, int annualPeriods = 252)
{
var hv = new Hv(period, annualize, annualPeriods);
return hv.Update(source);
@@ -492,4 +492,12 @@ public sealed class Hv : AbstractBase
output[i] = volatility;
}
}
}
public static (TSeries Results, Hv Indicator) Calculate(TSeries source, int period = 20, bool annualize = true, int annualPeriods = 252)
{
var indicator = new Hv(period, annualize, annualPeriods);
TSeries results = indicator.Update(source);
return (results, indicator);
}
}