feat: Add new CodeQL extension for C# and SonarLint configuration

- Introduced a new CodeQL extension for C# in `.github/codeql/extensions/quantalib-csharp/codeql-pack.yml`.
- Added SonarLint configuration in `.sonarlint/CSharp/SonarLint.xml` and `.sonarlint/csharp.ruleset` to suppress specific rules for high-performance indicators.
- Removed outdated `.vscode/launch.json` configurations.
- Updated `.vscode/tasks.json` to streamline build and test tasks, including renaming and consolidating tasks.
- Modified `Directory.Build.props` to enhance SARIF output directory handling and integrate SonarLint rules.
- Refactored various indicator classes to improve code clarity and maintainability, including updates to method parameters for consistency.
- Added XML documentation comments to several classes and methods for better code understanding.
- Improved numerical stability in calculations by replacing direct comparisons with `double.Epsilon` checks in multiple classes.
This commit is contained in:
Miha Kralj
2026-01-21 23:05:38 -06:00
parent 32f3366952
commit da4e56bf40
32 changed files with 187 additions and 187 deletions
+6 -6
View File
@@ -39,8 +39,8 @@ public sealed class Vama : AbstractBase
{
public static VamaState New() => new()
{
ShortAtr = new RmaState(0, 1.0, false),
LongAtr = new RmaState(0, 1.0, false),
ShortAtr = new RmaState(Ema: 0, E: 1.0, IsCompensated: false),
LongAtr = new RmaState(Ema: 0, E: 1.0, IsCompensated: false),
PrevClose = double.NaN,
BufferHead = 0,
BufferSum = 0,
@@ -244,7 +244,7 @@ public sealed class Vama : AbstractBase
newHead,
bufferSum,
validCount,
true);
IsInitialized: true);
Last = new TValue(input.Time, result);
PubEvent(Last, isNew);
@@ -285,7 +285,7 @@ public sealed class Vama : AbstractBase
for (int i = 0; i < len; i++)
{
var bar = source[i];
var result = Update(bar, true);
var result = Update(bar, isNew: true);
tSpan[i] = bar.Time;
vSpan[i] = result.Value;
}
@@ -314,7 +314,7 @@ public sealed class Vama : AbstractBase
for (int i = 0; i < len; i++)
{
var result = Update(new TValue(sourceTimes[i], sourceValues[i]), true);
var result = Update(new TValue(sourceTimes[i], sourceValues[i]), isNew: true);
tSpan[i] = sourceTimes[i];
vSpan[i] = result.Value;
}
@@ -330,7 +330,7 @@ public sealed class Vama : AbstractBase
Reset();
foreach (double val in source)
{
Update(new TValue(DateTime.MinValue, val), true);
Update(new TValue(DateTime.MinValue, val), isNew: true);
}
}