Skip to content

Commit

Permalink
chores: cleanup (#50)
Browse files Browse the repository at this point in the history
* fix typos
* make test file names consistent
* use consistent aliases in tests
  • Loading branch information
DaveSkender authored Jul 6, 2020
1 parent db0c4d0 commit ddd063c
Show file tree
Hide file tree
Showing 27 changed files with 85 additions and 87 deletions.
6 changes: 3 additions & 3 deletions Indicators/HeikinAshi/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ IEnumerable<HeikinAshiResult>

The first period will have `null` values since there's not enough data to calculate. We always return the same number of elements as there are in the historical quotes.

### HeikinResult
### HeikinAshiResult

| name | type | notes
| -- |-- |--
Expand All @@ -46,9 +46,9 @@ IEnumerable<HeikinAshiResult> results = Indicator.GetHeikinAshi(history);
// use results as needed
DateTime evalDate = DateTime.Parse("12/31/2018");
HeikinAshiResult result = results.Where(x=>x.Date==evalDate).FirstOrDefault();
Console.WriteLine("HeikinAshi open price on {0} was ${1}", result.Date, result.Open);
Console.WriteLine("Heikin-Ashi open price on {0} was ${1}", result.Date, result.Open);
```

```bash
HeikinAshi open price on 12/31/2018 was $241.3
Heikin-Ashi open price on 12/31/2018 was $241.3
```
2 changes: 1 addition & 1 deletion Indicators/Obv/Obv.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ private static void ValidateObv(IEnumerable<Quote> history)
int minHistory = 2;
if (qtyHistory < minHistory)
{
throw new BadHistoryException("Insufficient history provided for Heikin-Ashi. " +
throw new BadHistoryException("Insufficient history provided for On-balance Volume. " +
string.Format("You provided {0} periods of history when at least {1} is required.", qtyHistory, minHistory));
}

Expand Down
8 changes: 5 additions & 3 deletions Indicators/Obv/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,23 @@ The first period OBV will have `0` value since there's not enough data to calcul
| -- |-- |--
| `Index` | int | Sequence of dates
| `Date` | DateTime | Date
| `Obv` | long | On-balance Volume. Warning: absolute values in OBV are somewhat meaningless, so use with caution.
| `Obv` | long | On-balance Volume

**Warning**: absolute values in OBV are somewhat meaningless, so use with caution.

## Example

```csharp
// fetch historical quotes from your favorite feed, in Quote format
IEnumerable<Quote> history = GetHistoryFromFeed("MSFT");
IEnumerable<Quote> history = GetHistoryFromFeed("SPY");

// calculate
IEnumerable<ObvResult> results = Indicator.GetObv(history);

// use results as needed
DateTime evalDate = DateTime.Parse("12/31/2018");
ObvResult result = results.Where(x=>x.Date==evalDate).FirstOrDefault();
Console.WriteLine("OBV on {0} was {1}", result.Date, result.Open);
Console.WriteLine("OBV on {0} was {1}", result.Date, result.Obv);
```

```bash
Expand Down
2 changes: 1 addition & 1 deletion Indicators/ParabolicSar/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Parabolic SAR

Parabolic SAR is a price-time based indicator.
Parabolic SAR (stop and reverse) is a price-time based indicator.
[More info ...](https://school.stockcharts.com/doku.php?id=technical_indicators:parabolic_sar)

```csharp
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 4 additions & 4 deletions IndicatorsTests/Test.Aroon.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ public void GetAroonTest()
Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.AroonUp != null).Count());

// sample value
AroonResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)28.0000, Math.Round((decimal)result.AroonUp, 4));
Assert.AreEqual((decimal)88.0000, Math.Round((decimal)result.AroonDown, 4));
Assert.AreEqual((decimal)-60.0000, Math.Round((decimal)result.Oscillator, 4));
AroonResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)28.0000, Math.Round((decimal)r.AroonUp, 4));
Assert.AreEqual((decimal)88.0000, Math.Round((decimal)r.AroonDown, 4));
Assert.AreEqual((decimal)-60.0000, Math.Round((decimal)r.Oscillator, 4));
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace StockIndicators.Tests
{
[TestClass]
public class AdxTests : TestBase
public class AvgDirectionalTests : TestBase
{

[TestMethod()]
Expand All @@ -24,10 +24,10 @@ public void GetAdxTest()
Assert.AreEqual(502 - 2 * lookbackPeriod + 1, results.Where(x => x.Adx != null).Count());

// sample value
AdxResult atr = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)17.7565, Math.Round((decimal)atr.Pdi, 4));
Assert.AreEqual((decimal)31.1510, Math.Round((decimal)atr.Mdi, 4));
Assert.AreEqual((decimal)34.2987, Math.Round((decimal)atr.Adx, 4));
AdxResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)17.7565, Math.Round((decimal)r.Pdi, 4));
Assert.AreEqual((decimal)31.1510, Math.Round((decimal)r.Mdi, 4));
Assert.AreEqual((decimal)34.2987, Math.Round((decimal)r.Adx, 4));
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace StockIndicators.Tests
{
[TestClass]
public class AtrTests : TestBase
public class AvgTrueRangeTests : TestBase
{

[TestMethod()]
Expand All @@ -24,10 +24,10 @@ public void GetAtrTest()
Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.Atr != null).Count());

// sample value
AtrResult atr = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)2.67, Math.Round((decimal)atr.Tr, 4));
Assert.AreEqual((decimal)6.1497, Math.Round((decimal)atr.Atr, 4));
Assert.AreEqual((decimal)2.5072, Math.Round((decimal)atr.Atrp, 4));
AtrResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)2.67, Math.Round((decimal)r.Tr, 4));
Assert.AreEqual((decimal)6.1497, Math.Round((decimal)r.Atr, 4));
Assert.AreEqual((decimal)2.5072, Math.Round((decimal)r.Atrp, 4));
}


Expand Down
10 changes: 4 additions & 6 deletions IndicatorsTests/Test.Beta.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public class BetaTests : TestBase
public void GetBetaTest()
{
int lookbackPeriod = 20;

IEnumerable<BetaResult> results = Indicator.GetBeta(history, historyOther, lookbackPeriod);

// assertions
Expand All @@ -25,8 +24,8 @@ public void GetBetaTest()
Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.Beta != null).Count());

// sample value
BetaResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)1.6759, Math.Round((decimal)result.Beta, 4));
BetaResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)1.6759, Math.Round((decimal)r.Beta, 4));
}


Expand All @@ -35,7 +34,6 @@ public void GetBetaSameTest()
{
// Beta should be 1 if evaluating against self
int lookbackPeriod = 20;

IEnumerable<BetaResult> results = Indicator.GetBeta(history, history, lookbackPeriod);

// assertions
Expand All @@ -46,8 +44,8 @@ public void GetBetaSameTest()
Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.Beta != null).Count());

// sample value
BetaResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual(1, Math.Round((decimal)result.Beta, 4));
BetaResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual(1, Math.Round((decimal)r.Beta, 4));
}


Expand Down
14 changes: 7 additions & 7 deletions IndicatorsTests/Test.BollingerBands.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ public void GetBollingerBandsTest()
Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.LowerBand != null).Count());

// sample value
BollingerBandsResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
BollingerBandsResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();

Assert.AreEqual((decimal)251.8600, Math.Round((decimal)result.Sma, 4));
Assert.AreEqual((decimal)273.7004, Math.Round((decimal)result.UpperBand, 4));
Assert.AreEqual((decimal)230.0196, Math.Round((decimal)result.LowerBand, 4));
Assert.AreEqual((decimal)-0.602552, Math.Round((decimal)result.ZScore, 6));
Assert.AreEqual((decimal)0.173433, Math.Round((decimal)result.Width, 6));
Assert.AreEqual(false, result.IsDiverging);
Assert.AreEqual((decimal)251.8600, Math.Round((decimal)r.Sma, 4));
Assert.AreEqual((decimal)273.7004, Math.Round((decimal)r.UpperBand, 4));
Assert.AreEqual((decimal)230.0196, Math.Round((decimal)r.LowerBand, 4));
Assert.AreEqual((decimal)-0.602552, Math.Round((decimal)r.ZScore, 6));
Assert.AreEqual((decimal)0.173433, Math.Round((decimal)r.Width, 6));
Assert.AreEqual(false, r.IsDiverging);
}


Expand Down
4 changes: 2 additions & 2 deletions IndicatorsTests/Test.Cci.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ public void GetCciTest()
Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.Cci != null).Count());

// sample value
CciResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)-52.9946, Math.Round((decimal)result.Cci, 4));
CciResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)-52.9946, Math.Round((decimal)r.Cci, 4));
}


Expand Down
1 change: 1 addition & 0 deletions IndicatorsTests/Test.ChaikinOscillator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public void GetChaikinOscTest()

// sample value
ChaikinOscResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)3439986548.42, Math.Round(r.Adl, 2));
Assert.AreEqual((decimal)-19135200.72, Math.Round((decimal)r.Oscillator, 2));
}

Expand Down
5 changes: 2 additions & 3 deletions IndicatorsTests/Test.Correlation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public class CorrelationTests : TestBase
public void GetCorrelationTest()
{
int lookbackPeriod = 20;

IEnumerable<CorrResult> results = Indicator.GetCorrelation(history, historyOther, lookbackPeriod);

// assertions
Expand All @@ -25,8 +24,8 @@ public void GetCorrelationTest()
Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.Correlation != null).Count());

// sample value
CorrResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)0.8460, Math.Round((decimal)result.Correlation, 4));
CorrResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)0.8460, Math.Round((decimal)r.Correlation, 4));
}


Expand Down
4 changes: 2 additions & 2 deletions IndicatorsTests/Test.Ema.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ public void GetEmaTest()
Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.Ema != null).Count());

// sample value
EmaResult ema = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)249.3519, Math.Round((decimal)ema.Ema, 4));
EmaResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)249.3519, Math.Round((decimal)r.Ema, 4));
}


Expand Down
14 changes: 7 additions & 7 deletions IndicatorsTests/Test.HeikinAshi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ public void GetHeikinAshiTest()
Assert.AreEqual(502, results.Count());

// sample value
HeikinAshiResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)241.3018, Math.Round(result.Open, 4));
Assert.AreEqual((decimal)245.54, Math.Round(result.High, 4));
Assert.AreEqual((decimal)241.3018, Math.Round(result.Low, 4));
Assert.AreEqual((decimal)244.6525, Math.Round(result.Close, 4));
Assert.AreEqual(true, result.IsBullish);
Assert.AreEqual(0, Math.Round(result.Weakness, 4));
HeikinAshiResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)241.3018, Math.Round(r.Open, 4));
Assert.AreEqual((decimal)245.54, Math.Round(r.High, 4));
Assert.AreEqual((decimal)241.3018, Math.Round(r.Low, 4));
Assert.AreEqual((decimal)244.6525, Math.Round(r.Close, 4));
Assert.AreEqual(true, r.IsBullish);
Assert.AreEqual(0, Math.Round(r.Weakness, 4));
}


Expand Down
12 changes: 6 additions & 6 deletions IndicatorsTests/Test.Macd.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ public void GetMacdTest()
Assert.AreEqual(502 - slowPeriod - signalPeriod, results.Where(x => x.IsDiverging != null).Count());

// sample value
MacdResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)-6.2198, Math.Round((decimal)result.Macd, 4));
Assert.AreEqual((decimal)-5.8569, Math.Round((decimal)result.Signal, 4));
Assert.AreEqual((decimal)-0.3629, Math.Round((decimal)result.Histogram, 4));
Assert.AreEqual(false, result.IsBullish);
Assert.AreEqual(false, result.IsDiverging);
MacdResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)-6.2198, Math.Round((decimal)r.Macd, 4));
Assert.AreEqual((decimal)-5.8569, Math.Round((decimal)r.Signal, 4));
Assert.AreEqual((decimal)-0.3629, Math.Round((decimal)r.Histogram, 4));
Assert.AreEqual(false, r.IsBullish);
Assert.AreEqual(false, r.IsDiverging);
}


Expand Down
5 changes: 2 additions & 3 deletions IndicatorsTests/Test.Obv.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,8 @@ public void GetObvTest()
Assert.AreEqual(502, results.Count());

// sample value
ObvResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();

Assert.AreEqual(539843504, result.Obv);
ObvResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual(539843504, r.Obv);
}


Expand Down
8 changes: 4 additions & 4 deletions IndicatorsTests/Test.ParabolicSar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ public void GetParabolicSarTest()
Assert.AreEqual(501, results.Where(x => x.Sar != null).Count());

// sample value
ParabolicSarResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)229.7662, Math.Round((decimal)result.Sar, 4));
Assert.AreEqual(true, result.IsRising);
Assert.AreEqual(false, result.IsReversal);
ParabolicSarResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)229.7662, Math.Round((decimal)r.Sar, 4));
Assert.AreEqual(true, r.IsRising);
Assert.AreEqual(false, r.IsReversal);
}


Expand Down
7 changes: 3 additions & 4 deletions IndicatorsTests/Test.Rsi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public class RsiTests : TestBase
public void GetRsiTest()
{
int lookbackPeriod = 14;

IEnumerable<RsiResult> results = Indicator.GetRsi(history, lookbackPeriod);

// assertions
Expand All @@ -26,9 +25,9 @@ public void GetRsiTest()
Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.IsIncreasing != null).Count());

// sample value
RsiResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)42.0773, Math.Round((decimal)result.Rsi, 4));
Assert.AreEqual(true, result.IsIncreasing);
RsiResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)42.0773, Math.Round((decimal)r.Rsi, 4));
Assert.AreEqual(true, r.IsIncreasing);
}


Expand Down
10 changes: 5 additions & 5 deletions IndicatorsTests/Test.Sma.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ public void GetSmaTest()
Assert.AreEqual(502 - lookbackPeriod + 1, results.Where(x => x.Sma != null).Count());

// sample value
SmaResult sma = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)251.86, sma.Sma);
Assert.AreEqual((decimal)9.45, sma.Mad);
Assert.AreEqual((double)119.2510, Math.Round((double)sma.Mse, 4));
Assert.AreEqual((double)0.037637, Math.Round((double)sma.Mape, 6));
SmaResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)251.86, r.Sma);
Assert.AreEqual((decimal)9.45, r.Mad);
Assert.AreEqual((double)119.2510, Math.Round((double)r.Mse, 4));
Assert.AreEqual((double)0.037637, Math.Round((double)r.Mape, 6));
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace StockIndicators.Tests
{
[TestClass]
public class StdDevTests : TestBase
public class StandardDevTests : TestBase
{

[TestMethod()]
Expand All @@ -24,10 +24,10 @@ public void GetStdDevTest()
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();
StdDevResult r = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();

Assert.AreEqual((decimal)5.4738, Math.Round((decimal)sd.StdDev, 4));
Assert.AreEqual((decimal)0.524312, Math.Round((decimal)sd.ZScore, 6));
Assert.AreEqual((decimal)5.4738, Math.Round((decimal)r.StdDev, 4));
Assert.AreEqual((decimal)0.524312, Math.Round((decimal)r.ZScore, 6));
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace StockIndicators.Tests
{
[TestClass]
public class StochTests : TestBase
public class StochasticTests : TestBase
{

[TestMethod()]
Expand All @@ -28,10 +28,10 @@ public void GetStochTest()
Assert.AreEqual(502 - lookbackPeriod + 1 - smoothPeriod - signalPeriod, results.Where(x => x.Signal != null).Count());

// sample value
StochResult result = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)43.1354, Math.Round((decimal)result.Oscillator, 4));
Assert.AreEqual((decimal)35.5674, Math.Round((decimal)result.Signal, 4));
Assert.AreEqual(true, result.IsIncreasing);
StochResult r1 = results.Where(x => x.Date == DateTime.Parse("12/31/2018")).FirstOrDefault();
Assert.AreEqual((decimal)43.1354, Math.Round((decimal)r1.Oscillator, 4));
Assert.AreEqual((decimal)35.5674, Math.Round((decimal)r1.Signal, 4));
Assert.AreEqual(true, r1.IsIncreasing);

// no signal period
IEnumerable<StochResult> results2 = Indicator.GetStoch(history, 5, 1);
Expand Down
Loading

0 comments on commit ddd063c

Please sign in to comment.