mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-25 22:08:05 +00:00
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:
+10
-10
@@ -201,8 +201,8 @@ public sealed class Skew : AbstractBase
|
||||
{
|
||||
double val = span[i];
|
||||
sum += val;
|
||||
sumSq += val * val;
|
||||
sumCu += val * val * val;
|
||||
sumSq = Math.FusedMultiplyAdd(val, val, sumSq);
|
||||
sumCu = Math.FusedMultiplyAdd(val * val, val, sumCu);
|
||||
}
|
||||
_sum = sum;
|
||||
_sumSq = sumSq;
|
||||
@@ -312,8 +312,8 @@ public sealed class Skew : AbstractBase
|
||||
}
|
||||
|
||||
sum = sum - oldVal + val;
|
||||
sumSq = sumSq - (oldVal * oldVal) + (val * val);
|
||||
sumCu = sumCu - (oldVal * oldVal * oldVal) + (val * val * val);
|
||||
sumSq = sumSq - oldVal * oldVal + val * val;
|
||||
sumCu = sumCu - oldVal * oldVal * oldVal + val * val * val;
|
||||
|
||||
output[i] = CalculateSkewFromSums(sum, sumSq, sumCu, period, isPopulation);
|
||||
|
||||
@@ -334,8 +334,8 @@ public sealed class Skew : AbstractBase
|
||||
}
|
||||
|
||||
recalcSum += v;
|
||||
recalcSumSq += v * v;
|
||||
recalcSumCu += v * v * v;
|
||||
recalcSumSq = Math.FusedMultiplyAdd(v, v, recalcSumSq);
|
||||
recalcSumCu = Math.FusedMultiplyAdd(v * v, v, recalcSumCu);
|
||||
}
|
||||
sum = recalcSum;
|
||||
sumSq = recalcSumSq;
|
||||
@@ -533,8 +533,8 @@ public sealed class Skew : AbstractBase
|
||||
{
|
||||
double v = Unsafe.Add(ref srcRef, startIdx + k);
|
||||
recalcSum += v;
|
||||
recalcSumSq += v * v;
|
||||
recalcSumCu += v * v * v;
|
||||
recalcSumSq = Math.FusedMultiplyAdd(v, v, recalcSumSq);
|
||||
recalcSumCu = Math.FusedMultiplyAdd(v * v, v, recalcSumCu);
|
||||
}
|
||||
sum = recalcSum;
|
||||
sumSq = recalcSumSq;
|
||||
@@ -548,8 +548,8 @@ public sealed class Skew : AbstractBase
|
||||
double oldVal = Unsafe.Add(ref srcRef, i - period);
|
||||
|
||||
sum = sum - oldVal + val;
|
||||
sumSq = sumSq - (oldVal * oldVal) + (val * val);
|
||||
sumCu = sumCu - (oldVal * oldVal * oldVal) + (val * val * val);
|
||||
sumSq = Math.FusedMultiplyAdd(val, val, Math.FusedMultiplyAdd(-oldVal, oldVal, sumSq));
|
||||
sumCu = Math.FusedMultiplyAdd(val * val, val, Math.FusedMultiplyAdd(-(oldVal * oldVal), oldVal, sumCu));
|
||||
|
||||
Unsafe.Add(ref outRef, i) = CalculateSkewFromSums(sum, sumSq, sumCu, n, isPopulation);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// The MIT License (MIT)
|
||||
// Licensed under the Apache License, Version 2.0
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
indicator("Skewness (SKEW)", "SKEW", overlay=false, precision=6)
|
||||
|
||||
Reference in New Issue
Block a user