public void FillBackwardThenForwardTest() { var sp = new StockPrices(new[] { float.NaN, 1, float.NaN, 2, float.NaN }); sp.ReplaceNanFill(FillDirection.Backward).ReplaceNanFill(FillDirection.Forward); var expected = new[] { 1f, 1f, 2f, 2f, 2f }; CollectionAssert.AreEqual(expected, sp.Prices); }
public static StockPrices ReadStock(string symbol, string dataColumnName, TimeSeries dayOffsets) { var prices = new StockPrices(dayOffsets.Count); string filePath = DataAccess.GetInstance().GetFilePath(symbol); using (var csv = new CsvReader2(filePath)) { while (csv.Read()) { var date = csv.GetDateTime("Date"); int offset = dayOffsets.GetOffsetDaysFromStart(date); if (offset < 0) continue; var price = csv.GetFloat(dataColumnName); prices.Set(offset, price); } } return prices; }
private void Add(string symbol, StockPrices stockPrices) { tickerToIndex.Add(symbol, allPrices.Count); allPrices.Add(stockPrices); }