event tests

This commit is contained in:
Miha Kralj
2024-10-08 09:25:01 -07:00
parent b7b5a4a1bf
commit af234594cc
15 changed files with 391 additions and 200 deletions
+8 -4
View File
@@ -5,22 +5,26 @@ namespace QuanTAlib;
public class Frama : AbstractBase
{
private readonly int _period;
private readonly double _fc;
private readonly CircularBuffer _buffer;
private double _lastFrama;
private double _prevLastFrama;
public Frama(int period, double fc = 0.5)
public Frama(int period)
{
if (period < 2)
throw new ArgumentException("Period must be at least 2", nameof(period));
_period = period;
_fc = fc;
_buffer = new CircularBuffer(period);
WarmupPeriod = period;
}
public Frama(object source, int period) : this(period)
{
var pubEvent = source.GetType().GetEvent("Pub");
pubEvent?.AddEventHandler(source, new ValueSignal(Sub));
}
public override void Init()
{
base.Init();
@@ -95,4 +99,4 @@ public class Frama : AbstractBase
{
return _lastFrama;
}
}
}
+6
View File
@@ -35,6 +35,12 @@ public class Jma : AbstractBase
Init();
}
public Jma(object source, int period, double phase = 0, int vshort = 10) : this(period, phase, vshort)
{
var pubEvent = source.GetType().GetEvent("Pub");
pubEvent?.AddEventHandler(source, new ValueSignal(Sub));
}
public override void Init()
{
_upperBand = _lowerBand = _prevMa1 = _prevDet0 = _prevDet1 = _prevJma = 0.0;
+5 -1
View File
@@ -25,7 +25,11 @@ public class Rema : AbstractBase
WarmupPeriod = period;
Init();
}
public Rema(object source, int period, double lambda = 0.5) : this(period, lambda)
{
var pubEvent = source.GetType().GetEvent("Pub");
pubEvent?.AddEventHandler(source, new ValueSignal(Sub));
}
public override void Init()
{
base.Init();