diff --git a/.github/workflows/main_automation.yml b/.github/workflows/main_automation.yml
index e71e14c8..e45f7eb5 100644
--- a/.github/workflows/main_automation.yml
+++ b/.github/workflows/main_automation.yml
@@ -81,6 +81,8 @@ jobs:
run: dotnet build ./quantower/Averages/Averages.csproj --configuration Release --nologo
- name: Build Statistics DLL
run: dotnet build ./quantower/Statistics/Statistics.csproj --configuration Release --nologo
+ - name: Build SyntheticVendor DLL
+ run: dotnet build ./SyntheticVendor/SyntheticVendor.csproj --configuration Release --nologo
- name: DotCover Test HTML
if: ${{ github.ref == 'refs/heads/dev' }}
diff --git a/lib/averages/Dema.cs b/lib/averages/Dema.cs
index 0e810894..afd57c81 100644
--- a/lib/averages/Dema.cs
+++ b/lib/averages/Dema.cs
@@ -82,9 +82,6 @@ public class Dema : AbstractBase
ManageState(Input.IsNew);
double result, _ema1, _ema2;
-
- // dynamic k when within period; (index is zero-based, therefore +2)
- //double _dk = (_index + 1 >= _period) ? _k : 2.0 / (_index + 2);
// compensator for early ema values
_e = (_e > 1e-10) ? (1 - _k) * _e : 0;
double _invE = (_e > 1e-10) ? 1 / (1 - _e) : 1;
diff --git a/lib/averages/Epma.cs b/lib/averages/Epma.cs
index df588a7e..4d55e203 100644
--- a/lib/averages/Epma.cs
+++ b/lib/averages/Epma.cs
@@ -77,9 +77,6 @@ public class Epma : AbstractBase
kernel[i] /= weightSum;
}
- // Reverse the kernel for convolution
- //Array.Reverse(kernel);
-
return kernel;
}
}
\ No newline at end of file
diff --git a/lib/averages/Rema.cs b/lib/averages/Rema.cs
index a0c2677c..c89782c7 100644
--- a/lib/averages/Rema.cs
+++ b/lib/averages/Rema.cs
@@ -1,4 +1,4 @@
-using QuanTAlib;
+namespace QuanTAlib;
//https://user42.tuxfamily.org/chart/manual/Regularized-Exponential-Moving-Average.html
diff --git a/lib/averages/Rma.cs b/lib/averages/Rma.cs
index d712acd3..3dadbba2 100644
--- a/lib/averages/Rma.cs
+++ b/lib/averages/Rma.cs
@@ -53,7 +53,6 @@ public class Rma : AbstractBase {
rma = (_lastRMA * (_index - 1) + Input.Value) / _index;
} else {
// Wilder's smoothing method
- //rma = (_lastRMA * (_period - 1) + Input.Value) / _period;
rma = _alpha * (Input.Value - _lastRMA) + _lastRMA;
}
diff --git a/lib/averages/Sma.cs b/lib/averages/Sma.cs
index cf91c261..5cedd225 100644
--- a/lib/averages/Sma.cs
+++ b/lib/averages/Sma.cs
@@ -30,7 +30,6 @@ public class Sma : AbstractBase
public override void Init()
{
- //_buffer.Clear();
base.Init();
}
diff --git a/lib/averages/Tema.cs b/lib/averages/Tema.cs
index e87392c7..2b12f6ee 100644
--- a/lib/averages/Tema.cs
+++ b/lib/averages/Tema.cs
@@ -58,8 +58,7 @@ public class Tema : AbstractBase
{
double result, _ema1, _ema2, _ema3;
ManageState(Input.IsNew);
-
- //double _dk = (_index + 1 >= _period) ? _k : 2.0 / (_index + 2);
+
_e = (_e > 1e-10) ? (1 - _k) * _e : 0;
double _invE = (_e > 1e-10) ? 1 / (1 - _e) : 1;
diff --git a/lib/quantalib.csproj b/lib/quantalib.csproj
index a95e3c69..4c228dec 100644
--- a/lib/quantalib.csproj
+++ b/lib/quantalib.csproj
@@ -31,6 +31,9 @@
Quantitative;Historical;Quotes;
$(NoWarn);NU5104
+ false
+ false
+ false
QuanTAlib2.png
diff --git a/quantower/AbstractIndicatorBase.cs b/quantower/AbstractIndicatorBase.cs
index 28b9df3d..0f650904 100644
--- a/quantower/AbstractIndicatorBase.cs
+++ b/quantower/AbstractIndicatorBase.cs
@@ -1,9 +1,9 @@
using System.Drawing;
using TradingPlatform.BusinessLayer;
using TradingPlatform.BusinessLayer.Chart;
-using QuanTAlib;
using System.Runtime.CompilerServices;
using System.Drawing.Drawing2D;
+namespace QuanTAlib;
#pragma warning disable CA1416 // Validate platform compatibility
public abstract class AbstractIndicatorBase : Indicator
diff --git a/quantower/Averages/HmaIndicator.cs b/quantower/Averages/HmaIndicator.cs
index b2807721..2dd2b472 100644
--- a/quantower/Averages/HmaIndicator.cs
+++ b/quantower/Averages/HmaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class HmaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/HtitIndicator.cs b/quantower/Averages/HtitIndicator.cs
index a11dd37e..8d0f4009 100644
--- a/quantower/Averages/HtitIndicator.cs
+++ b/quantower/Averages/HtitIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class HtitIndicator : IndicatorBase
{
diff --git a/quantower/Averages/HwmaIndicator.cs b/quantower/Averages/HwmaIndicator.cs
index 7d2ecc6f..e777af3c 100644
--- a/quantower/Averages/HwmaIndicator.cs
+++ b/quantower/Averages/HwmaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class HwmaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/JmaIndicator.cs b/quantower/Averages/JmaIndicator.cs
index f4eca0ca..88a0a2ea 100644
--- a/quantower/Averages/JmaIndicator.cs
+++ b/quantower/Averages/JmaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class JmaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/KamaIndicator.cs b/quantower/Averages/KamaIndicator.cs
index 7ae1b343..21587ab1 100644
--- a/quantower/Averages/KamaIndicator.cs
+++ b/quantower/Averages/KamaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class KamaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/LtmaIndicator.cs b/quantower/Averages/LtmaIndicator.cs
index 65e3325d..d786d0bb 100644
--- a/quantower/Averages/LtmaIndicator.cs
+++ b/quantower/Averages/LtmaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class LtmaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/MaafIndicator.cs b/quantower/Averages/MaafIndicator.cs
index abb1115a..6cb7128c 100644
--- a/quantower/Averages/MaafIndicator.cs
+++ b/quantower/Averages/MaafIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class MaafIndicator : IndicatorBase
{
diff --git a/quantower/Averages/MamaIndicator.cs b/quantower/Averages/MamaIndicator.cs
index c47bc53d..d3e14f30 100644
--- a/quantower/Averages/MamaIndicator.cs
+++ b/quantower/Averages/MamaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class MamaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/MgdiIndicator.cs b/quantower/Averages/MgdiIndicator.cs
index 2bd6347f..a9ed0bb0 100644
--- a/quantower/Averages/MgdiIndicator.cs
+++ b/quantower/Averages/MgdiIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class MgdiIndicator : IndicatorBase
{
diff --git a/quantower/Averages/MmaIndicator.cs b/quantower/Averages/MmaIndicator.cs
index b3efcf6b..bf174265 100644
--- a/quantower/Averages/MmaIndicator.cs
+++ b/quantower/Averages/MmaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class MmaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/QemaIndicator.cs b/quantower/Averages/QemaIndicator.cs
index 083fc5fc..3434249e 100644
--- a/quantower/Averages/QemaIndicator.cs
+++ b/quantower/Averages/QemaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class QemaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/RemaIndicator.cs b/quantower/Averages/RemaIndicator.cs
index ca70773d..26193da4 100644
--- a/quantower/Averages/RemaIndicator.cs
+++ b/quantower/Averages/RemaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class RemaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/RmaIndicator.cs b/quantower/Averages/RmaIndicator.cs
index 8dbe7e9b..a89e15a6 100644
--- a/quantower/Averages/RmaIndicator.cs
+++ b/quantower/Averages/RmaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class RmaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/SinemaIndicator.cs b/quantower/Averages/SinemaIndicator.cs
index 0cd93187..2f3b231f 100644
--- a/quantower/Averages/SinemaIndicator.cs
+++ b/quantower/Averages/SinemaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class SinemaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/SmaIndicator.cs b/quantower/Averages/SmaIndicator.cs
index 113ce8b8..3cbf26fa 100644
--- a/quantower/Averages/SmaIndicator.cs
+++ b/quantower/Averages/SmaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class SmaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/SmmaIndicator.cs b/quantower/Averages/SmmaIndicator.cs
index 8d3260cf..a7516e22 100644
--- a/quantower/Averages/SmmaIndicator.cs
+++ b/quantower/Averages/SmmaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class SmmaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/T3Indicator.cs b/quantower/Averages/T3Indicator.cs
index 8eb58d77..5b8f4766 100644
--- a/quantower/Averages/T3Indicator.cs
+++ b/quantower/Averages/T3Indicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class T3Indicator : IndicatorBase
{
diff --git a/quantower/Averages/TemaIndicator.cs b/quantower/Averages/TemaIndicator.cs
index c7e2b6b7..57d50da3 100644
--- a/quantower/Averages/TemaIndicator.cs
+++ b/quantower/Averages/TemaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class TemaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/TrimaIndicator.cs b/quantower/Averages/TrimaIndicator.cs
index ac93153f..b0612356 100644
--- a/quantower/Averages/TrimaIndicator.cs
+++ b/quantower/Averages/TrimaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class TrimaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/VidyaIndicator.cs b/quantower/Averages/VidyaIndicator.cs
index 021d16a4..a9ed10ad 100644
--- a/quantower/Averages/VidyaIndicator.cs
+++ b/quantower/Averages/VidyaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class VidyaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/WmaIndicator.cs b/quantower/Averages/WmaIndicator.cs
index 882c657c..5cc6a396 100644
--- a/quantower/Averages/WmaIndicator.cs
+++ b/quantower/Averages/WmaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class WmaIndicator : IndicatorBase
{
diff --git a/quantower/Averages/ZlemaIndicator.cs b/quantower/Averages/ZlemaIndicator.cs
index 2f7fca4d..c42b045c 100644
--- a/quantower/Averages/ZlemaIndicator.cs
+++ b/quantower/Averages/ZlemaIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class ZlemaIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/EntropyIndicator.cs b/quantower/Statistics/EntropyIndicator.cs
index 6f61378f..8e141c01 100644
--- a/quantower/Statistics/EntropyIndicator.cs
+++ b/quantower/Statistics/EntropyIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class EntropyIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/KurtosisIndicator.cs b/quantower/Statistics/KurtosisIndicator.cs
index 3587bbe1..c9d78068 100644
--- a/quantower/Statistics/KurtosisIndicator.cs
+++ b/quantower/Statistics/KurtosisIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class KurtosisIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/MaxIndicator.cs b/quantower/Statistics/MaxIndicator.cs
index 4e55f05c..e0b6200a 100644
--- a/quantower/Statistics/MaxIndicator.cs
+++ b/quantower/Statistics/MaxIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class MaxIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/MedianIndicator.cs b/quantower/Statistics/MedianIndicator.cs
index ff2446e5..e2e29d98 100644
--- a/quantower/Statistics/MedianIndicator.cs
+++ b/quantower/Statistics/MedianIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class MedianIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/MinIndicator.cs b/quantower/Statistics/MinIndicator.cs
index 1c15d421..a4c14e9e 100644
--- a/quantower/Statistics/MinIndicator.cs
+++ b/quantower/Statistics/MinIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class MinIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/ModeIndicator.cs b/quantower/Statistics/ModeIndicator.cs
index 82986cd5..c293b643 100644
--- a/quantower/Statistics/ModeIndicator.cs
+++ b/quantower/Statistics/ModeIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class ModeIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/PercentileIndicator.cs b/quantower/Statistics/PercentileIndicator.cs
index b6ad324d..dacb2fd9 100644
--- a/quantower/Statistics/PercentileIndicator.cs
+++ b/quantower/Statistics/PercentileIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class PercentileIndicator : IndicatorBase
{
[InputParameter("Period", sortIndex: 1, 2, 2000, 1, 0)]
diff --git a/quantower/Statistics/SkewIndicator.cs b/quantower/Statistics/SkewIndicator.cs
index 34f66faf..7cce283e 100644
--- a/quantower/Statistics/SkewIndicator.cs
+++ b/quantower/Statistics/SkewIndicator.cs
@@ -1,6 +1,6 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class SkewIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/StddevIndicator.cs b/quantower/Statistics/StddevIndicator.cs
index 2ee7c845..6c9648c2 100644
--- a/quantower/Statistics/StddevIndicator.cs
+++ b/quantower/Statistics/StddevIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class StddevIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/VarianceIndictor.cs b/quantower/Statistics/VarianceIndictor.cs
index eb5f281e..de983873 100644
--- a/quantower/Statistics/VarianceIndictor.cs
+++ b/quantower/Statistics/VarianceIndictor.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class VarianceIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/ZscoreIndicator.cs b/quantower/Statistics/ZscoreIndicator.cs
index 68f7d45a..19727511 100644
--- a/quantower/Statistics/ZscoreIndicator.cs
+++ b/quantower/Statistics/ZscoreIndicator.cs
@@ -1,5 +1,5 @@
using TradingPlatform.BusinessLayer;
-using QuanTAlib;
+namespace QuanTAlib;
public class ZScoreIndicator : IndicatorBase
{
diff --git a/quantower/Statistics/_IndicatorBase.cs b/quantower/Statistics/_IndicatorBase.cs
index 92c88cda..aef60342 100644
--- a/quantower/Statistics/_IndicatorBase.cs
+++ b/quantower/Statistics/_IndicatorBase.cs
@@ -3,10 +3,11 @@ using TradingPlatform.BusinessLayer;
using TradingPlatform.BusinessLayer.Chart;
using System.Runtime.CompilerServices;
using System.Drawing.Drawing2D;
-using QuanTAlib;
using System.Collections;
using TradingPlatform.BusinessLayer.TimeSync;
+namespace QuanTAlib;
+
#pragma warning disable CA1416 // Validate platform compatibility
public abstract class IndicatorBase : Indicator, IWatchlistIndicator
{