public void GetValue() { IList <Tick> ticks = new List <Tick>(); ticks.Add(GenerateTick.From(0, 12, 15, 8)); ticks.Add(GenerateTick.From(0, 8, 11, 6)); ticks.Add(GenerateTick.From(0, 15, 17, 14)); ticks.Add(GenerateTick.From(0, 15, 17, 14)); ticks.Add(GenerateTick.From(0, 0, 0, 2)); var tr = new TrueRangeIndicator(GenerateTimeSeries.From(ticks)); TaTestsUtils.AssertDecimalEquals(tr.GetValue(0), 7); TaTestsUtils.AssertDecimalEquals(tr.GetValue(1), 6); TaTestsUtils.AssertDecimalEquals(tr.GetValue(2), 9); TaTestsUtils.AssertDecimalEquals(tr.GetValue(3), 3); TaTestsUtils.AssertDecimalEquals(tr.GetValue(4), 15); }
protected override Decimal Calculate(int index) { if (index == 0) { return(Decimal.One); } var nbPeriods = Decimal.ValueOf(_timeFrame); var nbPeriodsMinusOne = Decimal.ValueOf(_timeFrame - 1); return(GetValue(index - 1).MultipliedBy(nbPeriodsMinusOne).Plus(_tr.GetValue(index)).DividedBy(nbPeriods)); }