Add Kahan-Babuška Summation Algorithm and Enhance Variance Indicator Tests

- Introduced a new `Sum` class implementing the Kahan-Babuška algorithm for high-precision rolling summation.
- Added comprehensive documentation for the `Sum` class, detailing its mathematical foundation, performance profile, and use cases.
- Refactored `VarianceIndicator` tests to improve clarity and coverage, including checks for different source types and the ability to change properties.
- Enhanced `UsfIndicator` tests to validate initialization, processing of updates, and property changes.
- Updated `UsfIndicator` implementation to simplify source handling and improve short name generation.
- Modified Qodana configuration to exclude unused auto property accessor warnings.
This commit is contained in:
Miha Kralj
2025-12-29 18:56:10 -08:00
parent bfa92e554b
commit 4dbb093892
28 changed files with 4125 additions and 241 deletions
@@ -51,6 +51,9 @@ public sealed class VarianceIndicator : Indicator, IWatchlistIndicator
[MethodImpl(MethodImplOptions.AggressiveInlining)]
protected override void OnUpdate(UpdateArgs args)
{
if (args.Reason != UpdateReason.NewBar && args.Reason != UpdateReason.HistoricalBar)
return;
var item = this.HistoricalData[this.Count - 1, SeekOriginHistory.Begin];
double value = _priceSelector!(item);
var time = this.HistoricalData.Time();