private void GenerateHigh() { var HighData = new HighestHigh(this.Candles.Select(y => y.Candle), 12).Compute(); if (HighData.Last().Tick != null) { this.HighestHigh.Add(HighData.Last().Tick.ChangeType <double>()); if (this.HighestHigh.Count() > 1) { switch (this.High.HasChange()) { ///Raise signal and update index case List.GenericChangeType.Down: IndexHighestHigh = this.HighestHigh.Count() - 1; break; case List.GenericChangeType.Up: IndexHighestHigh = this.HighestHigh.Count() - 1; break; case List.GenericChangeType.Same: break; } } } }
public async Task TestHighestHighAsync() { var candles = await ImportCandlesAsync(); var indicator = new HighestHigh(candles, 10); var result = indicator[candles.Count - 1]; Assert.IsTrue(140.34m.IsApproximatelyEquals(result.Value)); }
public async Task TestHighestHighAsync() { var equity = await ImportEquityAsync(); var indicator = new HighestHigh(equity, 10); var result = indicator.ComputeByIndex(equity.Count - 1); Assert.IsTrue(140.34m.IsApproximatelyEquals(result.HighestHigh.Value)); }
public IList <BaseIndicatorValue> ComputeHighestMaxPrices(IList <Candle> candles, Int32 period) { var indicator = new HighestHigh(candles.Select(candle => candle.ToInnerModel()), period); var innerValues = indicator.Compute(); var outputValues = new List <BaseIndicatorValue>(); outputValues.AddRange(innerValues .Where(value => value.DateTime.HasValue) .Select(value => value.ToOuterModel())); return(outputValues); }