mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-18 18:48:05 +00:00
[CodeFactor] Apply fixes to commit 0606491
This commit is contained in:
@@ -68,7 +68,7 @@ public sealed class BbsTests
|
||||
// Constant price => stddev = 0 => BB width = 0 => bandwidth = 0
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
bbs.Update(new TBar(baseTime + i * 60000, 100, 100, 100, 100, 1000));
|
||||
bbs.Update(new TBar(baseTime + (i * 60000), 100, 100, 100, 100, 1000));
|
||||
}
|
||||
|
||||
Assert.Equal(0.0, bbs.Last.Value, 10);
|
||||
@@ -86,7 +86,7 @@ public sealed class BbsTests
|
||||
// Close is always 100, but high/low create ATR
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
bbs.Update(new TBar(baseTime + i * 60000, 100, 102, 98, 100, 1000));
|
||||
bbs.Update(new TBar(baseTime + (i * 60000), 100, 102, 98, 100, 1000));
|
||||
}
|
||||
|
||||
// With constant close and non-zero ATR, BB bands (based on close stddev) should be
|
||||
@@ -110,7 +110,7 @@ public sealed class BbsTests
|
||||
double c = closes[i];
|
||||
// H/L track actual price so TR ≈ close-to-close gap (ATR stays proportional)
|
||||
// but BB mult * stddev >> KC mult * ATR when kcMult is small
|
||||
bbs.Update(new TBar(baseTime + i * 60000, c, c + 0.5, c - 0.5, c, 1000));
|
||||
bbs.Update(new TBar(baseTime + (i * 60000), c, c + 0.5, c - 0.5, c, 1000));
|
||||
}
|
||||
|
||||
// BB bands (3 * stddev) should exceed KC bands (0.5 * ATR)
|
||||
@@ -127,7 +127,7 @@ public sealed class BbsTests
|
||||
// Feed initial bars
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
bbs.Update(new TBar(baseTime + i * 60000, 100 + i, 102 + i, 98 + i, 100 + i, 1000));
|
||||
bbs.Update(new TBar(baseTime + (i * 60000), 100 + i, 102 + i, 98 + i, 100 + i, 1000));
|
||||
}
|
||||
|
||||
// Save state after bar 5 for reference
|
||||
@@ -135,11 +135,11 @@ public sealed class BbsTests
|
||||
_ = bbs.SqueezeOn;
|
||||
|
||||
// Update with new bar
|
||||
bbs.Update(new TBar(baseTime + 5 * 60000, 110, 112, 108, 110, 1000), isNew: true);
|
||||
bbs.Update(new TBar(baseTime + (5 * 60000), 110, 112, 108, 110, 1000), isNew: true);
|
||||
double afterBar6 = bbs.Last.Value;
|
||||
|
||||
// Roll back with isNew=false
|
||||
bbs.Update(new TBar(baseTime + 5 * 60000, 105, 107, 103, 105, 1000), isNew: false);
|
||||
bbs.Update(new TBar(baseTime + (5 * 60000), 105, 107, 103, 105, 1000), isNew: false);
|
||||
double corrected = bbs.Last.Value;
|
||||
|
||||
// Corrected value should differ from bar 6 (different price) but be valid
|
||||
@@ -156,7 +156,7 @@ public sealed class BbsTests
|
||||
// Phase 1: Tight range (squeeze on)
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
bbs.Update(new TBar(baseTime + i * 60000, 100, 102, 98, 100, 1000));
|
||||
bbs.Update(new TBar(baseTime + (i * 60000), 100, 102, 98, 100, 1000));
|
||||
}
|
||||
|
||||
_ = bbs.SqueezeOn; // capture pre-breakout state
|
||||
@@ -164,8 +164,8 @@ public sealed class BbsTests
|
||||
// Phase 2: Breakout with huge price movement (squeeze off)
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
double price = 100 + (i + 1) * 20; // 120, 140, 160, 180, 200
|
||||
bbs.Update(new TBar(baseTime + (5 + i) * 60000, price, price + 1, price - 1, price, 1000));
|
||||
double price = 100 + ((i + 1) * 20); // 120, 140, 160, 180, 200
|
||||
bbs.Update(new TBar(baseTime + ((5 + i) * 60000), price, price + 1, price - 1, price, 1000));
|
||||
}
|
||||
|
||||
// If squeeze was on and now off, SqueezeFired should have been true at transition
|
||||
@@ -181,8 +181,8 @@ public sealed class BbsTests
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
double price = 100 + Math.Sin(i) * 5;
|
||||
bbs.Update(new TBar(baseTime + i * 60000, price, price + 2, price - 2, price, 1000));
|
||||
double price = 100 + (Math.Sin(i) * 5);
|
||||
bbs.Update(new TBar(baseTime + (i * 60000), price, price + 2, price - 2, price, 1000));
|
||||
}
|
||||
|
||||
// With varying prices, bandwidth should be positive
|
||||
@@ -214,7 +214,7 @@ public sealed class BbsTests
|
||||
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
bbs.Update(new TBar(baseTime + i * 60000, 100 + i, 102 + i, 98 + i, 100 + i, 1000));
|
||||
bbs.Update(new TBar(baseTime + (i * 60000), 100 + i, 102 + i, 98 + i, 100 + i, 1000));
|
||||
}
|
||||
|
||||
Assert.True(bbs.IsHot);
|
||||
@@ -236,7 +236,7 @@ public sealed class BbsTests
|
||||
|
||||
for (int i = 0; i < 20; i++)
|
||||
{
|
||||
series.Add(new TBar(baseTime + i * 60000, 100 + i, 110 + i, 90 + i, 105 + i, 1000));
|
||||
series.Add(new TBar(baseTime + (i * 60000), 100 + i, 110 + i, 90 + i, 105 + i, 1000));
|
||||
}
|
||||
|
||||
var result = Bbs.Batch(series);
|
||||
@@ -259,7 +259,7 @@ public sealed class BbsTests
|
||||
|
||||
for (int i = 0; i < 20; i++)
|
||||
{
|
||||
series.Add(new TBar(baseTime + i * 60000, 100 + i, 110 + i, 90 + i, 105 + i, 1000));
|
||||
series.Add(new TBar(baseTime + (i * 60000), 100 + i, 110 + i, 90 + i, 105 + i, 1000));
|
||||
}
|
||||
|
||||
var result = Bbs.Batch(series, bbPeriod: 10, bbMult: 1.5, kcPeriod: 10, kcMult: 2.0);
|
||||
@@ -275,8 +275,8 @@ public sealed class BbsTests
|
||||
|
||||
for (int i = 0; i < 50; i++)
|
||||
{
|
||||
double price = 100 + Math.Sin(i * 0.5) * 10;
|
||||
series.Add(new TBar(baseTime + i * 60000, price, price + 3, price - 3, price, 1000));
|
||||
double price = 100 + (Math.Sin(i * 0.5) * 10);
|
||||
series.Add(new TBar(baseTime + (i * 60000), price, price + 3, price - 3, price, 1000));
|
||||
}
|
||||
|
||||
// Streaming
|
||||
@@ -383,7 +383,7 @@ public sealed class BbsTests
|
||||
|
||||
for (int i = 0; i < 30; i++)
|
||||
{
|
||||
series.Add(new TBar(baseTime + i * 60000, 100 + i, 110 + i, 90 + i, 105 + i, 1000));
|
||||
series.Add(new TBar(baseTime + (i * 60000), 100 + i, 110 + i, 90 + i, 105 + i, 1000));
|
||||
}
|
||||
|
||||
var (results, indicator) = Bbs.Calculate(series, bbPeriod: 5, bbMult: 2.0, kcPeriod: 5, kcMult: 1.5);
|
||||
@@ -403,7 +403,7 @@ public sealed class BbsTests
|
||||
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
bbs.Update(new TBar(baseTime + i * 60000, 100 + i, 102 + i, 98 + i, 100 + i, 1000));
|
||||
bbs.Update(new TBar(baseTime + (i * 60000), 100 + i, 102 + i, 98 + i, 100 + i, 1000));
|
||||
}
|
||||
|
||||
Assert.Equal(5, eventCount);
|
||||
|
||||
Reference in New Issue
Block a user