public void GetStdDev() { int lookbackPeriod = 10; List <StdDevResult> results = Indicator.GetStdDev(history, lookbackPeriod).ToList(); // assertions // proper quantities // should always be the same number of results as there is history Assert.AreEqual(502, results.Count); Assert.AreEqual(493, results.Where(x => x.StdDev != null).Count()); Assert.AreEqual(493, results.Where(x => x.ZScore != null).Count()); Assert.AreEqual(false, results.Any(x => x.Sma != null)); // sample values StdDevResult r1 = results[501]; Assert.AreEqual(5.4738m, Math.Round((decimal)r1.StdDev, 4)); Assert.AreEqual(0.524312m, Math.Round((decimal)r1.ZScore, 6)); Assert.AreEqual(null, r1.Sma); StdDevResult r2 = results[249]; Assert.AreEqual(0.9827m, Math.Round((decimal)r2.StdDev, 4)); Assert.AreEqual(0.783563m, Math.Round((decimal)r2.ZScore, 6)); Assert.AreEqual(null, r2.Sma); }
public void GetStdDevWithSma() { int lookbackPeriod = 10; int smaPeriod = 5; List <StdDevResult> results = Indicator.GetStdDev(history, lookbackPeriod, smaPeriod).ToList(); // assertions // proper quantities // should always be the same number of results as there is history Assert.AreEqual(502, results.Count); Assert.AreEqual(493, results.Where(x => x.StdDev != null).Count()); Assert.AreEqual(493, results.Where(x => x.ZScore != null).Count()); Assert.AreEqual(489, results.Where(x => x.Sma != null).Count()); // sample values StdDevResult r1 = results[501]; Assert.AreEqual(5.4738m, Math.Round((decimal)r1.StdDev, 4)); Assert.AreEqual(0.524312m, Math.Round((decimal)r1.ZScore, 6)); Assert.AreEqual(7.6886m, Math.Round((decimal)r1.Sma, 4)); StdDevResult r2 = results[19]; Assert.AreEqual(1.1642m, Math.Round((decimal)r2.StdDev, 4)); Assert.AreEqual(-0.065282m, Math.Round((decimal)r2.ZScore, 6)); Assert.AreEqual(1.1422m, Math.Round((decimal)r2.Sma, 4)); }
public void Removed() { List <StdDevResult> results = quotes.GetStdDev(10) .RemoveWarmupPeriods() .ToList(); // assertions Assert.AreEqual(502 - 9, results.Count); StdDevResult last = results.LastOrDefault(); Assert.AreEqual(5.4738, Math.Round((double)last.StdDev, 4)); Assert.AreEqual(242.4100, Math.Round((double)last.Mean, 4)); Assert.AreEqual(0.524312, Math.Round((double)last.ZScore, 6)); Assert.AreEqual(null, last.StdDevSma); }
public void GetStdDevTest() { int lookbackPeriod = 10; IEnumerable <StdDevResult> results = Indicator.GetStdDev(history, lookbackPeriod); // assertions // proper quantities // should always be the same number of results as there is history Assert.AreEqual(502, results.Count()); Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.StdDev != null).Count()); // sample value StdDevResult sd = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault(); Assert.AreEqual((decimal)5.4738, Math.Round((decimal)sd.StdDev, 4)); }
public void Standard() { int lookbackPeriod = 10; List <StdDevResult> results = Indicator.GetStdDev(history, lookbackPeriod) .ToList(); // assertions // proper quantities // should always be the same number of results as there is history Assert.AreEqual(502, results.Count); Assert.AreEqual(493, results.Where(x => x.StdDev != null).Count()); Assert.AreEqual(493, results.Where(x => x.ZScore != null).Count()); Assert.AreEqual(false, results.Any(x => x.StdDevSma != null)); // sample values StdDevResult r1 = results[8]; Assert.AreEqual(null, r1.StdDev); Assert.AreEqual(null, r1.Mean); Assert.AreEqual(null, r1.ZScore); Assert.AreEqual(null, r1.StdDevSma); StdDevResult r2 = results[9]; Assert.AreEqual(0.5020m, Math.Round((decimal)r2.StdDev, 4)); Assert.AreEqual(214.0140m, Math.Round((decimal)r2.Mean, 4)); Assert.AreEqual(-0.525917m, Math.Round((decimal)r2.ZScore, 6)); Assert.AreEqual(null, r2.StdDevSma); StdDevResult r3 = results[249]; Assert.AreEqual(0.9827m, Math.Round((decimal)r3.StdDev, 4)); Assert.AreEqual(257.2200m, Math.Round((decimal)r3.Mean, 4)); Assert.AreEqual(0.783563m, Math.Round((decimal)r3.ZScore, 6)); Assert.AreEqual(null, r3.StdDevSma); StdDevResult r4 = results[501]; Assert.AreEqual(5.4738m, Math.Round((decimal)r4.StdDev, 4)); Assert.AreEqual(242.4100m, Math.Round((decimal)r4.Mean, 4)); Assert.AreEqual(0.524312m, Math.Round((decimal)r4.ZScore, 6)); Assert.AreEqual(null, r4.StdDevSma); }
public void GetStdDevTest() { int lookbackPeriod = 10; IEnumerable <StdDevResult> results = Indicator.GetStdDev(history, lookbackPeriod); // assertions // proper quantities // should always be the same number of results as there is history Assert.AreEqual(502, results.Count()); Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.StdDev != null).Count()); // sample value StdDevResult r = results.Where(x => x.Index == 502).FirstOrDefault(); Assert.AreEqual(5.4738m, Math.Round((decimal)r.StdDev, 4)); Assert.AreEqual(0.524312m, Math.Round((decimal)r.ZScore, 6)); }
public void Standard() { List <StdDevResult> results = quotes.GetStdDev(10).ToList(); // assertions // proper quantities // should always be the same number of results as there is quotes Assert.AreEqual(502, results.Count); Assert.AreEqual(493, results.Where(x => x.StdDev != null).Count()); Assert.AreEqual(493, results.Where(x => x.ZScore != null).Count()); Assert.AreEqual(false, results.Any(x => x.StdDevSma != null)); // sample values StdDevResult r1 = results[8]; Assert.AreEqual(null, r1.StdDev); Assert.AreEqual(null, r1.Mean); Assert.AreEqual(null, r1.ZScore); Assert.AreEqual(null, r1.StdDevSma); StdDevResult r2 = results[9]; Assert.AreEqual(0.5020, Math.Round((double)r2.StdDev, 4)); Assert.AreEqual(214.0140, Math.Round((double)r2.Mean, 4)); Assert.AreEqual(-0.525917, Math.Round((double)r2.ZScore, 6)); Assert.AreEqual(null, r2.StdDevSma); StdDevResult r3 = results[249]; Assert.AreEqual(0.9827, Math.Round((double)r3.StdDev, 4)); Assert.AreEqual(257.2200, Math.Round((double)r3.Mean, 4)); Assert.AreEqual(0.783563, Math.Round((double)r3.ZScore, 6)); Assert.AreEqual(null, r3.StdDevSma); StdDevResult r4 = results[501]; Assert.AreEqual(5.4738, Math.Round((double)r4.StdDev, 4)); Assert.AreEqual(242.4100, Math.Round((double)r4.Mean, 4)); Assert.AreEqual(0.524312, Math.Round((double)r4.ZScore, 6)); Assert.AreEqual(null, r4.StdDevSma); }