Remove multiple Pine Script indicators: SSFDSP, STARCHANNEL, STBANDS, STC, UBANDS, UCHANNEL, VWAPBANDS, and VWAPSD. These indicators were deleted to streamline the library and remove unused or redundant code.

This commit is contained in:
Miha Kralj
2026-02-20 18:44:56 -08:00
parent 3dd05f23e4
commit cbeefc9d64
283 changed files with 23963 additions and 3838 deletions
@@ -36,12 +36,12 @@ public class HtTrendmodeTests
{
var indicator = new HtTrendmode();
// Use a mix of trending and cycling data
var rnd = new Random(42);
for (int i = 0; i < 100; i++)
// Use GBM-generated price data
var gbm = new GBM(seed: 42);
var bars = gbm.Fetch(100, DateTime.UtcNow.Ticks, TimeSpan.FromMinutes(1));
for (int i = 0; i < bars.Count; i++)
{
double value = 100.0 + Math.Sin(i * 0.1) * 5 + rnd.NextDouble();
var result = indicator.Update(new TValue(DateTime.UtcNow.AddMinutes(i), value));
var result = indicator.Update(bars[i].C);
// After warmup, output should be 0 or 1
if (i >= 40)
+4 -13
View File
@@ -470,21 +470,12 @@ public class ImiTests
public void Update_GbmData_ReturnsValueInRange()
{
var imi = new Imi(14);
long baseTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
var random = new Random(42);
var gbm = new GBM(seed: 42);
var bars = gbm.Fetch(100, DateTime.UtcNow.Ticks, TimeSpan.FromMinutes(1));
double price = 100.0;
for (int i = 0; i < 100; i++)
for (int i = 0; i < bars.Count; i++)
{
double change = (random.NextDouble() - 0.5) * 4;
double open = price;
double high = Math.Max(open, open + Math.Abs(change) + random.NextDouble() * 2);
double low = Math.Min(open, open - Math.Abs(change) - random.NextDouble() * 2);
double close = open + change;
imi.Update(new TBar(baseTime + i * 60000, open, high, low, close, 1000));
price = close;
imi.Update(bars[i]);
// IMI should always be in [0, 100]
Assert.InRange(imi.Last.Value, 0.0, 100.0);
+4 -13
View File
@@ -498,21 +498,12 @@ public class TtmSqueezeTests
public void Update_GbmData_ProducesFiniteValues()
{
var squeeze = new TtmSqueeze(bbPeriod: 14, bbMult: 2.0, kcPeriod: 14, kcMult: 1.5, momPeriod: 14);
long baseTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
var random = new Random(42);
var gbm = new GBM(seed: 42);
var bars = gbm.Fetch(100, DateTime.UtcNow.Ticks, TimeSpan.FromMinutes(1));
double price = 100.0;
for (int i = 0; i < 100; i++)
for (int i = 0; i < bars.Count; i++)
{
double change = (random.NextDouble() - 0.5) * 4;
double open = price;
double high = Math.Max(open, open + Math.Abs(change) + random.NextDouble() * 2);
double low = Math.Min(open, open - Math.Abs(change) - random.NextDouble() * 2);
double close = open + change;
squeeze.Update(new TBar(baseTime + i * 60000, open, high, low, close, 1000));
price = close;
squeeze.Update(bars[i]);
// Momentum should always be finite
Assert.True(double.IsFinite(squeeze.Momentum.Value));