mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-14 16:48:04 +00:00
Refactor event handling and improve argument validation across indicators
- Updated event handler signatures to use TValueEventArgs for consistency in Mama, Mgdi, Pwma, Rma, Sma, Ssf, Super, T3, Tema, Trima, Usf, Vidya, Wma, and Atr classes. - Enhanced argument validation by specifying parameter names in exceptions for clarity. - Adjusted tests to align with new event handler signatures. - Improved code readability and maintainability by using structured records and lambda expressions.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace QuanTAlib;
|
||||
|
||||
@@ -15,6 +16,7 @@ public sealed class Super : ITValuePublisher
|
||||
private TBar _lastInput;
|
||||
private int _sampleCount;
|
||||
|
||||
[StructLayout(LayoutKind.Auto)]
|
||||
private record struct State
|
||||
{
|
||||
public bool IsBullish;
|
||||
@@ -33,7 +35,7 @@ public sealed class Super : ITValuePublisher
|
||||
/// </summary>
|
||||
public string Name => $"Super({_period},{_multiplier})";
|
||||
|
||||
public event Action<TValue>? Pub;
|
||||
public event TValuePublishedHandler? Pub;
|
||||
|
||||
/// <summary>
|
||||
/// Current SuperTrend value.
|
||||
@@ -213,7 +215,7 @@ public sealed class Super : ITValuePublisher
|
||||
UpperBand = new TValue(input.Time, upperBand);
|
||||
LowerBand = new TValue(input.Time, lowerBand);
|
||||
|
||||
Pub?.Invoke(Last);
|
||||
Pub?.Invoke(this, new TValueEventArgs { Value = Last, IsNew = true });
|
||||
return Last;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user