mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-16 01:28:05 +00:00
chore: repo cleanup and code quality improvements
- Remove global.json (SDK pinning unnecessary) - Remove nuget.config, move MyGet source to .csproj RestoreAdditionalProjectSources - Gitignore ndepend/ entirely, move badges to docs/img/ - Update README.md and docs/ndepend.md badge paths - Add NDepend project property to QuanTAlib.slnx - Expand .editorconfig ReSharper/diagnostic suppressions - Use ArgumentOutOfRangeException instead of ArgumentException - Use discard _ for unused event sender parameters - Remove quantalib.code-workspace and sonar-suppressions.json - Add filter signature SVGs
This commit is contained in:
@@ -208,8 +208,8 @@ public sealed class Ichimoku : ITValuePublisher
|
||||
_p_state = _state;
|
||||
Array.Fill(_highBuffer, double.NaN);
|
||||
Array.Fill(_lowBuffer, double.NaN);
|
||||
Array.Copy(_highBuffer, _p_highBuffer!, _highBuffer.Length);
|
||||
Array.Copy(_lowBuffer, _p_lowBuffer!, _lowBuffer.Length);
|
||||
Array.Copy(_highBuffer, _p_highBuffer, _highBuffer.Length);
|
||||
Array.Copy(_lowBuffer, _p_lowBuffer, _lowBuffer.Length);
|
||||
Tenkan = default;
|
||||
Kijun = default;
|
||||
SenkouA = default;
|
||||
@@ -299,14 +299,14 @@ public sealed class Ichimoku : ITValuePublisher
|
||||
if (isNew)
|
||||
{
|
||||
_p_state = _state;
|
||||
Array.Copy(_highBuffer, _p_highBuffer!, _highBuffer.Length);
|
||||
Array.Copy(_lowBuffer, _p_lowBuffer!, _lowBuffer.Length);
|
||||
Array.Copy(_highBuffer, _p_highBuffer, _highBuffer.Length);
|
||||
Array.Copy(_lowBuffer, _p_lowBuffer, _lowBuffer.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
_state = _p_state;
|
||||
Array.Copy(_p_highBuffer!, _highBuffer, _highBuffer.Length);
|
||||
Array.Copy(_p_lowBuffer!, _lowBuffer, _lowBuffer.Length);
|
||||
Array.Copy(_p_highBuffer, _highBuffer, _highBuffer.Length);
|
||||
Array.Copy(_p_lowBuffer, _lowBuffer, _lowBuffer.Length);
|
||||
}
|
||||
|
||||
var (high, low, close) = GetValidHLC(bar);
|
||||
|
||||
@@ -198,8 +198,6 @@ public sealed class Pfe : AbstractBase
|
||||
PubEvent(Last, isNew);
|
||||
return Last;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override TSeries Update(TSeries source)
|
||||
{
|
||||
if (source.Count == 0)
|
||||
@@ -225,8 +223,6 @@ public sealed class Pfe : AbstractBase
|
||||
Last = new TValue(tSpan[len - 1], vSpan[len - 1]);
|
||||
return new TSeries(t, v);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override void Prime(ReadOnlySpan<double> source, TimeSpan? step = null)
|
||||
{
|
||||
if (source.Length == 0)
|
||||
@@ -457,8 +453,6 @@ public sealed class Pfe : AbstractBase
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public override void Reset()
|
||||
{
|
||||
|
||||
@@ -184,8 +184,6 @@ public sealed class Ravi : AbstractBase
|
||||
PubEvent(Last, isNew);
|
||||
return Last;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override TSeries Update(TSeries source)
|
||||
{
|
||||
if (source.Count == 0)
|
||||
@@ -211,8 +209,6 @@ public sealed class Ravi : AbstractBase
|
||||
Last = new TValue(tSpan[len - 1], vSpan[len - 1]);
|
||||
return new TSeries(t, v);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override void Prime(ReadOnlySpan<double> source, TimeSpan? step = null)
|
||||
{
|
||||
if (source.Length == 0)
|
||||
@@ -465,8 +461,6 @@ public sealed class Ravi : AbstractBase
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public override void Reset()
|
||||
{
|
||||
|
||||
@@ -49,7 +49,7 @@ public class TtmSqueezeValidationTests
|
||||
}
|
||||
|
||||
// Momentum should be near zero since price = midline
|
||||
Assert.True(System.Math.Abs(squeeze.Momentum.Value) < 1.0);
|
||||
Assert.True(Math.Abs(squeeze.Momentum.Value) < 1.0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -250,7 +250,7 @@ public class TtmSqueezeValidationTests
|
||||
|
||||
for (int i = 0; i < 50; i++)
|
||||
{
|
||||
double price = 100 + System.Math.Sin(i * 0.2) * 10;
|
||||
double price = 100 + Math.Sin(i * 0.2) * 10;
|
||||
double high = price + 2;
|
||||
double low = price - 2;
|
||||
source.Add(new TBar(baseTime + i * 60000, price, high, low, price + 0.5, 1000));
|
||||
@@ -306,7 +306,7 @@ public class TtmSqueezeValidationTests
|
||||
|
||||
Assert.True(double.IsFinite(squeeze.Momentum.Value));
|
||||
// With constant price, donchian midline = price, so momentum should be near 0
|
||||
Assert.True(System.Math.Abs(squeeze.Momentum.Value) < 0.01);
|
||||
Assert.True(Math.Abs(squeeze.Momentum.Value) < 0.01);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -184,8 +184,6 @@ public sealed class Vhf : AbstractBase
|
||||
PubEvent(Last, isNew);
|
||||
return Last;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override TSeries Update(TSeries source)
|
||||
{
|
||||
if (source.Count == 0)
|
||||
@@ -211,8 +209,6 @@ public sealed class Vhf : AbstractBase
|
||||
Last = new TValue(tSpan[len - 1], vSpan[len - 1]);
|
||||
return new TSeries(t, v);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override void Prime(ReadOnlySpan<double> source, TimeSpan? step = null)
|
||||
{
|
||||
if (source.Length == 0)
|
||||
@@ -461,8 +457,6 @@ public sealed class Vhf : AbstractBase
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public override void Reset()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user