[CodeFactor] Apply fixes to commit 9697fac

This commit is contained in:
codefactor-io
2026-03-14 05:03:08 +00:00
parent 9697facfb4
commit e35ff7fa3f
164 changed files with 458 additions and 530 deletions
+1 -2
View File
@@ -223,7 +223,7 @@ public sealed class Bbands : AbstractBase
for (int i = 0; i < source.Length; i++)
{
Update(new TValue(startTime + i * step.Value, source[i]), isNew: true);
Update(new TValue(startTime + (i * step.Value), source[i]), isNew: true);
}
}
@@ -367,5 +367,4 @@ public sealed class Bbands : AbstractBase
TSeries results = indicator.Update(source);
return (results, indicator);
}
}
+1 -1
View File
@@ -23,7 +23,7 @@ public sealed class JbandsIndicator : Indicator, IWatchlistIndicator
private Jbands? _indicator;
public int MinHistoryDepths => (int)Math.Ceiling(20.0 + 80.0 * Math.Pow(Period, 0.36));
public int MinHistoryDepths => (int)Math.Ceiling(20.0 + (80.0 * Math.Pow(Period, 0.36)));
public override string ShortName => $"Jbands({Period},{Phase})";
public JbandsIndicator()
+1 -1
View File
@@ -99,7 +99,7 @@ public sealed class Jbands : ITValuePublisher, IDisposable
_logLengthDivider = Math.Log(Math.Max(_lengthDivider, 1e-12));
_logSqrtDivider = Math.Log(Math.Max(sqrtDivider, 1e-12));
WarmupPeriod = (int)Math.Ceiling(20.0 + 80.0 * Math.Pow(period, 0.36));
WarmupPeriod = (int)Math.Ceiling(20.0 + (80.0 * Math.Pow(period, 0.36)));
_handler = Handle;
Name = $"Jbands({period},{phase})";
+2 -2
View File
@@ -197,7 +197,7 @@ public sealed class Kchannel : ITValuePublisher
double trueRange = Math.Max(tr1, Math.Max(tr2, tr3));
// ATR using RMA with warmup compensation
double newRawRma = (_state.RawRma * (_period - 1) + trueRange) / _period;
double newRawRma = ((_state.RawRma * (_period - 1)) + trueRange) / _period;
double newE = (1.0 - _atrAlpha) * _state.E;
double atrValue = newE > Epsilon ? newRawRma / (1.0 - newE) : newRawRma;
@@ -360,7 +360,7 @@ public sealed class Kchannel : ITValuePublisher
double tr = Math.Max(tr1, Math.Max(tr2, tr3));
// ATR (RMA with warmup)
rawRma = (rawRma * (period - 1) + tr) / period;
rawRma = ((rawRma * (period - 1)) + tr) / period;
e = (1.0 - atrAlpha) * e;
double atr = e > Epsilon ? rawRma / (1.0 - e) : rawRma;
+2 -2
View File
@@ -192,7 +192,7 @@ public sealed class Starchannel : ITValuePublisher
double trueRange = Math.Max(tr1, Math.Max(tr2, tr3));
// ATR using RMA with warmup compensation (uses _atrPeriod for separate ATR smoothing)
double newRawRma = (_state.RawRma * (_atrPeriod - 1) + trueRange) / _atrPeriod;
double newRawRma = ((_state.RawRma * (_atrPeriod - 1)) + trueRange) / _atrPeriod;
double newE = (1.0 - _atrAlpha) * _state.E;
double atrValue = newE > Epsilon ? newRawRma / (1.0 - newE) : newRawRma;
@@ -406,7 +406,7 @@ public sealed class Starchannel : ITValuePublisher
double tr = Math.Max(tr1, Math.Max(tr2, tr3));
// ATR (RMA with warmup compensation, uses effectiveAtrPeriod)
rawRma = (rawRma * (effectiveAtrPeriod - 1) + tr) / effectiveAtrPeriod;
rawRma = ((rawRma * (effectiveAtrPeriod - 1)) + tr) / effectiveAtrPeriod;
e = (1.0 - atrAlpha) * e;
double atr = e > Epsilon ? rawRma / (1.0 - e) : rawRma;
+1 -2
View File
@@ -279,7 +279,7 @@ public sealed class Stbands : AbstractBase
for (int i = 0; i < source.Length; i++)
{
// Treat as close price only
Update(new TValue(startTime + i * step.Value, source[i]), isNew: true);
Update(new TValue(startTime + (i * step.Value), source[i]), isNew: true);
}
}
@@ -406,5 +406,4 @@ public sealed class Stbands : AbstractBase
TSeries results = indicator.Update(source);
return (results, indicator);
}
}
+16 -16
View File
@@ -136,9 +136,9 @@ public sealed class TtmLrc : ITValuePublisher
// sumX = 0 + 1 + ... + (n-1) = n(n-1)/2
_sumX = 0.5 * period * (period - 1);
// sumX² = 0² + 1² + ... + (n-1)² = (n-1)n(2n-1)/6
double sumX2 = (period - 1.0) * period * (2.0 * period - 1.0) / 6.0;
double sumX2 = (period - 1.0) * period * ((2.0 * period) - 1.0) / 6.0;
// denominator = n * sumX² - sumX²
_denominator = period * sumX2 - _sumX * _sumX;
_denominator = (period * sumX2) - (_sumX * _sumX);
Reset();
}
@@ -253,8 +253,8 @@ public sealed class TtmLrc : ITValuePublisher
if (count < _period)
{
sx = 0.5 * n * (n - 1);
double sx2 = (n - 1.0) * n * (2.0 * n - 1.0) / 6.0;
denom = n * sx2 - sx * sx;
double sx2 = (n - 1.0) * n * ((2.0 * n) - 1.0) / 6.0;
denom = (n * sx2) - (sx * sx);
}
double slope, intercept, regression;
@@ -267,8 +267,8 @@ public sealed class TtmLrc : ITValuePublisher
}
else
{
slope = (n * sumXY - sx * sumY) / denom;
intercept = (sumY - slope * sx) / n;
slope = ((n * sumXY) - (sx * sumY)) / denom;
intercept = (sumY - (slope * sx)) / n;
// Regression value at current point (x = count - 1)
regression = Math.FusedMultiplyAdd(slope, count - 1, intercept);
}
@@ -304,8 +304,8 @@ public sealed class TtmLrc : ITValuePublisher
Midline = new TValue(input.Time, regression);
Upper1 = new TValue(input.Time, regression + stdDev);
Lower1 = new TValue(input.Time, regression - stdDev);
Upper2 = new TValue(input.Time, regression + 2.0 * stdDev);
Lower2 = new TValue(input.Time, regression - 2.0 * stdDev);
Upper2 = new TValue(input.Time, regression + (2.0 * stdDev));
Lower2 = new TValue(input.Time, regression - (2.0 * stdDev));
PubEvent(Midline, isNew);
return Midline;
@@ -412,8 +412,8 @@ public sealed class TtmLrc : ITValuePublisher
// Precompute constants for full period
double sumXFull = 0.5 * period * (period - 1);
double sumX2Full = (period - 1.0) * period * (2.0 * period - 1.0) / 6.0;
double denomFull = period * sumX2Full - sumXFull * sumXFull;
double sumX2Full = (period - 1.0) * period * ((2.0 * period) - 1.0) / 6.0;
double denomFull = (period * sumX2Full) - (sumXFull * sumXFull);
// Track last valid value for NaN substitution
double lastValid = double.NaN;
@@ -483,8 +483,8 @@ public sealed class TtmLrc : ITValuePublisher
if (count < period)
{
sx = 0.5 * n * (n - 1);
double sx2 = (n - 1.0) * n * (2.0 * n - 1.0) / 6.0;
denom = n * sx2 - sx * sx;
double sx2 = (n - 1.0) * n * ((2.0 * n) - 1.0) / 6.0;
denom = (n * sx2) - (sx * sx);
}
else
{
@@ -502,8 +502,8 @@ public sealed class TtmLrc : ITValuePublisher
}
else
{
slope = (n * sumXY - sx * sumY) / denom;
intercept = (sumY - slope * sx) / n;
slope = ((n * sumXY) - (sx * sumY)) / denom;
intercept = (sumY - (slope * sx)) / n;
regression = Math.FusedMultiplyAdd(slope, count - 1, intercept);
}
@@ -533,8 +533,8 @@ public sealed class TtmLrc : ITValuePublisher
midline[i] = regression;
upper1[i] = regression + stdDev;
lower1[i] = regression - stdDev;
upper2[i] = regression + 2.0 * stdDev;
lower2[i] = regression - 2.0 * stdDev;
upper2[i] = regression + (2.0 * stdDev);
lower2[i] = regression - (2.0 * stdDev);
}
}
+3 -4
View File
@@ -100,7 +100,7 @@ public sealed class Ubands : AbstractBase
// Precompute coefficients for FMA optimization
_k0 = 1.0 - c1; // coefficient for val
_k1 = 2.0 * c1 - _c2; // coefficient for PrevInput1
_k1 = (2.0 * c1) - _c2; // coefficient for PrevInput1
_k2 = -(c1 + _c3); // coefficient for PrevInput2
WarmupPeriod = period;
@@ -261,7 +261,7 @@ public sealed class Ubands : AbstractBase
for (int i = 0; i < source.Length; i++)
{
Update(new TValue(startTime + i * step.Value, source[i]), isNew: true);
Update(new TValue(startTime + (i * step.Value), source[i]), isNew: true);
}
}
@@ -316,7 +316,7 @@ public sealed class Ubands : AbstractBase
double c1 = (1.0 + c2 - c3) / 4.0;
double k0 = 1.0 - c1;
double k1 = 2.0 * c1 - c2;
double k1 = (2.0 * c1) - c2;
double k2 = -(c1 + c3);
// Use stackalloc for residual buffer if small enough
@@ -404,5 +404,4 @@ public sealed class Ubands : AbstractBase
TSeries results = indicator.Update(source);
return (results, indicator);
}
}
+5 -5
View File
@@ -217,7 +217,7 @@ public sealed class Uchannel : AbstractBase
{
// USF: (1-c1)*s0 + (2*c1-c2)*s1 - (c1+c3)*s2 + c2*usf1 + c3*usf2
strValue = Math.FusedMultiplyAdd(1 - _c1_str, str_s0,
Math.FusedMultiplyAdd(2 * _c1_str - _c2_str, str_s1,
Math.FusedMultiplyAdd((2 * _c1_str) - _c2_str, str_s1,
Math.FusedMultiplyAdd(-(_c1_str + _c3_str), str_s2,
Math.FusedMultiplyAdd(_c2_str, usStr1, _c3_str * usStr2))));
}
@@ -237,7 +237,7 @@ public sealed class Uchannel : AbstractBase
else
{
cenValue = Math.FusedMultiplyAdd(1 - _c1_cen, cen_s0,
Math.FusedMultiplyAdd(2 * _c1_cen - _c2_cen, cen_s1,
Math.FusedMultiplyAdd((2 * _c1_cen) - _c2_cen, cen_s1,
Math.FusedMultiplyAdd(-(_c1_cen + _c3_cen), cen_s2,
Math.FusedMultiplyAdd(_c2_cen, usCen1, _c3_cen * usCen2))));
}
@@ -337,7 +337,7 @@ public sealed class Uchannel : AbstractBase
for (int i = 0; i < source.Length; i++)
{
// Treat as close price only
Update(new TValue(startTime + i * step.Value, source[i]), isNew: true);
Update(new TValue(startTime + (i * step.Value), source[i]), isNew: true);
}
}
@@ -471,7 +471,7 @@ public sealed class Uchannel : AbstractBase
else
{
strValue = Math.FusedMultiplyAdd(1 - c1_str, str_s0,
Math.FusedMultiplyAdd(2 * c1_str - c2_str, str_s1,
Math.FusedMultiplyAdd((2 * c1_str) - c2_str, str_s1,
Math.FusedMultiplyAdd(-(c1_str + c3_str), str_s2,
Math.FusedMultiplyAdd(c2_str, usStr1, c3_str * usStr2))));
}
@@ -489,7 +489,7 @@ public sealed class Uchannel : AbstractBase
else
{
cenValue = Math.FusedMultiplyAdd(1 - c1_cen, cen_s0,
Math.FusedMultiplyAdd(2 * c1_cen - c2_cen, cen_s1,
Math.FusedMultiplyAdd((2 * c1_cen) - c2_cen, cen_s1,
Math.FusedMultiplyAdd(-(c1_cen + c3_cen), cen_s2,
Math.FusedMultiplyAdd(c2_cen, usCen1, c3_cen * usCen2))));
}
+11 -11
View File
@@ -206,9 +206,9 @@ public sealed class Vwapbands : AbstractBase
{
_state = _state with
{
SumPV = _state.SumPV + price * vol,
SumPV = _state.SumPV + (price * vol),
SumVol = _state.SumVol + vol,
SumPV2 = _state.SumPV2 + price * price * vol,
SumPV2 = _state.SumPV2 + (price * price * vol),
Count = _state.Count + 1
};
}
@@ -228,10 +228,10 @@ public sealed class Vwapbands : AbstractBase
double stdev = Math.Sqrt(variance);
// Calculate bands
double upper1 = vwap + _multiplier * stdev;
double lower1 = vwap - _multiplier * stdev;
double upper2 = vwap + 2.0 * _multiplier * stdev;
double lower2 = vwap - 2.0 * _multiplier * stdev;
double upper1 = vwap + (_multiplier * stdev);
double lower1 = vwap - (_multiplier * stdev);
double upper2 = vwap + (2.0 * _multiplier * stdev);
double lower2 = vwap - (2.0 * _multiplier * stdev);
// Update output values
Vwap = new TValue(input.Time, vwap);
@@ -316,7 +316,7 @@ public sealed class Vwapbands : AbstractBase
for (int i = 0; i < source.Length; i++)
{
Update(new TValue(startTime + i * step.Value, source[i]), 1.0, isNew: true, reset: false);
Update(new TValue(startTime + (i * step.Value), source[i]), 1.0, isNew: true, reset: false);
}
}
@@ -423,10 +423,10 @@ public sealed class Vwapbands : AbstractBase
vwap[i] = vwapVal;
stdDev[i] = stdev;
upper1[i] = vwapVal + multiplier * stdev;
lower1[i] = vwapVal - multiplier * stdev;
upper2[i] = vwapVal + 2.0 * multiplier * stdev;
lower2[i] = vwapVal - 2.0 * multiplier * stdev;
upper1[i] = vwapVal + (multiplier * stdev);
lower1[i] = vwapVal - (multiplier * stdev);
upper2[i] = vwapVal + (2.0 * multiplier * stdev);
lower2[i] = vwapVal - (2.0 * multiplier * stdev);
}
}
}
+7 -7
View File
@@ -200,9 +200,9 @@ public sealed class Vwapsd : AbstractBase
{
_state = _state with
{
SumPV = _state.SumPV + price * vol,
SumPV = _state.SumPV + (price * vol),
SumVol = _state.SumVol + vol,
SumPV2 = _state.SumPV2 + price * price * vol,
SumPV2 = _state.SumPV2 + (price * price * vol),
Count = _state.Count + 1
};
}
@@ -222,8 +222,8 @@ public sealed class Vwapsd : AbstractBase
double stdev = Math.Sqrt(variance);
// Calculate bands
double upper = vwap + _numDevs * stdev;
double lower = vwap - _numDevs * stdev;
double upper = vwap + (_numDevs * stdev);
double lower = vwap - (_numDevs * stdev);
// Update output values
Vwap = new TValue(input.Time, vwap);
@@ -302,7 +302,7 @@ public sealed class Vwapsd : AbstractBase
for (int i = 0; i < source.Length; i++)
{
Update(new TValue(startTime + i * step.Value, source[i]), 1.0, isNew: true, reset: false);
Update(new TValue(startTime + (i * step.Value), source[i]), 1.0, isNew: true, reset: false);
}
}
@@ -405,8 +405,8 @@ public sealed class Vwapsd : AbstractBase
vwap[i] = vwapVal;
stdDev[i] = stdev;
upper[i] = vwapVal + numDevs * stdev;
lower[i] = vwapVal - numDevs * stdev;
upper[i] = vwapVal + (numDevs * stdev);
lower[i] = vwapVal - (numDevs * stdev);
}
}
}