feat: add new indicators (Decay, Edecay, MinusDi, MinusDm, PlusDi, PlusDm, Maxindex, Minindex, Sarext) and update pine scripts, core libs, validation tests, and python bindings

This commit is contained in:
Miha Kralj
2026-03-09 13:45:46 -07:00
parent 8e43d62cbb
commit 031f1b5fe6
491 changed files with 6156 additions and 5590 deletions
+4 -4
View File
@@ -12,7 +12,7 @@ public class RingBufferTests
Assert.Equal(0, buffer.Count);
Assert.False(buffer.IsFull);
Assert.Equal(0, buffer.Sum);
Assert.Equal(0, buffer.Average);
Assert.True(double.IsNaN(buffer.Average));
}
[Fact]
@@ -192,7 +192,7 @@ public class RingBufferTests
Assert.Equal(0, buffer.Count);
Assert.Equal(0, buffer.Sum);
Assert.Equal(0, buffer.Average);
Assert.True(double.IsNaN(buffer.Average));
Assert.False(buffer.IsFull);
}
@@ -453,11 +453,11 @@ public class RingBufferTests
}
[Fact]
public void Average_EmptyBuffer_ReturnsZero()
public void Average_EmptyBuffer_ReturnsNaN()
{
var buffer = new RingBuffer(5);
Assert.Equal(0, buffer.Average);
Assert.True(double.IsNaN(buffer.Average));
}
[Fact]
+2 -2
View File
@@ -141,12 +141,12 @@ public sealed class RingBuffer : IEnumerable<double>
/// <summary>
/// Average of all elements in the buffer.
/// Returns 0 if buffer is empty.
/// Returns <see langword="double.NaN"/> if buffer is empty.
/// </summary>
public double Average
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get => _count > 0 ? _sum / _count : 0;
get => _count > 0 ? _sum / _count : double.NaN;
}
/// <summary>