mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-21 20:18:05 +00:00
Vidya fix
This commit is contained in:
@@ -10,10 +10,10 @@ public class Vidya : AbstractBase
|
|||||||
private readonly int _longPeriod;
|
private readonly int _longPeriod;
|
||||||
private readonly double _alpha;
|
private readonly double _alpha;
|
||||||
private double _lastVIDYA, _p_lastVIDYA;
|
private double _lastVIDYA, _p_lastVIDYA;
|
||||||
private CircularBuffer? _shortBuffer;
|
private readonly CircularBuffer? _shortBuffer;
|
||||||
private CircularBuffer? _longBuffer;
|
private readonly CircularBuffer? _longBuffer;
|
||||||
|
|
||||||
public Vidya(int shortPeriod, int longPeriod = 0, double alpha = 0.2) : base()
|
public Vidya(int shortPeriod, int longPeriod = 0, double alpha = 0.2)
|
||||||
{
|
{
|
||||||
if (shortPeriod < 1)
|
if (shortPeriod < 1)
|
||||||
{
|
{
|
||||||
@@ -39,8 +39,6 @@ public class Vidya : AbstractBase
|
|||||||
{
|
{
|
||||||
base.Init();
|
base.Init();
|
||||||
_lastVIDYA = 0;
|
_lastVIDYA = 0;
|
||||||
_shortBuffer = new CircularBuffer(_shortPeriod);
|
|
||||||
_longBuffer = new CircularBuffer(_longPeriod);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ManageState(bool isNew)
|
protected override void ManageState(bool isNew)
|
||||||
@@ -60,7 +58,7 @@ public class Vidya : AbstractBase
|
|||||||
protected override double Calculation()
|
protected override double Calculation()
|
||||||
{
|
{
|
||||||
ManageState(Input.IsNew);
|
ManageState(Input.IsNew);
|
||||||
|
|
||||||
_shortBuffer!.Add(Input.Value, Input.IsNew);
|
_shortBuffer!.Add(Input.Value, Input.IsNew);
|
||||||
_longBuffer!.Add(Input.Value, Input.IsNew);
|
_longBuffer!.Add(Input.Value, Input.IsNew);
|
||||||
|
|
||||||
@@ -84,7 +82,7 @@ public class Vidya : AbstractBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
private double CalculateStdDev(CircularBuffer buffer)
|
private static double CalculateStdDev(CircularBuffer buffer)
|
||||||
{
|
{
|
||||||
double mean = buffer.Average();
|
double mean = buffer.Average();
|
||||||
double sumSquaredDiff = buffer.Sum(x => Math.Pow(x - mean, 2));
|
double sumSquaredDiff = buffer.Sum(x => Math.Pow(x - mean, 2));
|
||||||
|
|||||||
Reference in New Issue
Block a user