Refactor code structure for improved readability and maintainability

This commit is contained in:
Miha Kralj
2025-12-17 07:51:53 -08:00
parent 8cec2fec8d
commit 612d2d2c89
4 changed files with 24 additions and 532 deletions
+1
View File
@@ -47,6 +47,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="JetBrains.Annotations" Version="2025.2.4" />
</ItemGroup>
<ItemGroup>
+18 -3
View File
@@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using QuanTAlib;
namespace QuanTAlib;
@@ -87,11 +86,19 @@ public sealed class Mgdi : AbstractBase
if (Math.Abs(prev) > double.Epsilon)
{
double ratio = price / prev;
ratio = Math.Clamp(ratio, 0.3, 3.0);
double ratio4 = ratio * ratio;
ratio4 *= ratio4;
double denominator = _k * _period * ratio4;
_state.LastMgdi = prev + (price - prev) / denominator;
if (Math.Abs(denominator) < 1e-9)
{
_state.LastMgdi = price;
}
else
{
_state.LastMgdi = prev + (price - prev) / denominator;
}
}
else
{
@@ -167,11 +174,19 @@ public sealed class Mgdi : AbstractBase
if (Math.Abs(lastMgdi) > double.Epsilon)
{
double ratio = price / lastMgdi;
ratio = Math.Clamp(ratio, 0.3, 3.0);
double ratio4 = ratio * ratio;
ratio4 *= ratio4;
double denominator = k * period * ratio4;
lastMgdi += (price - lastMgdi) / denominator;
if (Math.Abs(denominator) < 1e-9)
{
lastMgdi = price;
}
else
{
lastMgdi += (price - lastMgdi) / denominator;
}
}
else
{